Nikhil Bansal, Software Developer in Gurgaon, Haryana, India
Nikhil Bansal

Software Developer in Gurgaon, Haryana, India

Member since May 2, 2018
Since 2013, Nikhil’s been developing professionally with Core Java (J2EE), Spring Boot, Web MVC, AWS (S3, Autoscaling, Lambda, IAM, Redis, SQS, SNS), Elasticsearch, Kafka, and FitNesse. An automation evangelist, he automates even the simplest tasks if it is more efficient. Nikhil has worked in the finance, eCommerce, payments, search, and insurance domains with companies such as Fidelity, Paytm, and Expedia.
Nikhil is now available for hire




Gurgaon, Haryana, India



Preferred Environment

Git, Eclipse, IntelliJ IDEA, Linux

The most amazing...

...thing I’ve done was to rank the search results on Typeahead.js via a feedback loop where a suggestion’s ranking altered depending how many times it was clicked.


  • Software Development Engineer 2 (SDE-2)

    2016 - PRESENT
    Expedia Online Travel
    • Improved the search ranking of suggestions for Typeahead which decreased the bounce rate from 3.5% to 1.2%.
    • Scraped competitors typeahead boxes for Expedia’s bounce strings.
    • Designed and developed new TnLs to increase users interactions with typeahead boxes.
    • Made the application scalable by moving most of the search ranking algorithm and data from in memory to Elasticsearch.
    • Implemented data extraction, cleansing, and analysis from various internal sources and feeding it into the system.
    Technologies: Python, Elasticsearch, Apache Kafka, Git, Maven, Amazon Web Services (AWS), AWS Lambda, AWS S3, Spring Boot
  • Software Engineer

    2015 - 2016
    • Migrated a database of user transactions from MySQL to Elasticsearch for looking up user transaction history using Apache Kafka.
    • Set up Kibana and designed a dashboard to view the transaction reports.
    • Set up the cash-back systems to offer cash back to users in real time.
    Technologies: Spring, Elasticsearch, Apache Kafka, MySQL
  • Programmer

    2013 - 2015
    Fidelity International
    • Automated the front- and middle-office investment management functions across global business lines, asset classes, and currencies on a single platform for the Charles River IMS.
    • Developed major flow components such as order submission, trade-export, new security, and compliance.
    • Created batches required by various components of the Charles River System.
    • Wrote the fixtures and Wiki pages on a FitNesse tool for live testing and end-to-end integration testing.
    Technologies: WebSphere, Oracle, Spring, Apache Camel


  • Stock Advisor Ranking (Personal Use)

    This project ranks the stock advisor of CNBC intraday trading. Given the ranking of the stock advisors, I can save time by not diving into deep research on stocks and mostly followed the best stock advisors.

    Roles and Responsibilities:
    As this was for my personal use, I developed the web scrapping and data analytics part and in fact built the entire thing from scratch.

    Technologies: Python, Beautiful Soup (for scrapping), Python Pandas (for analytics)

  • Travel Route Planner (Expedia)

    The aim of the project was to plan the best possible route for the traveler when there are multiple routes to go from city X to city Y and there is no direct route from city A to city B via a single mode of transport.

    Roles and Responsibilities:
    I orchestrated the results from four major transport APIs (airplane, train, car, and bus) and wrote an algorithm to combine the results when there is no direct mode of transportation from city X to city Y.

    I also wrote the logic for sorting and filtering wherein if a user wants to sort the results based on price/time of travel or if the user wants to choose between different modes of transport than the user has the flexibility to do so.

    Technologies: Spring Boot, AWS Lambda, Redis

  • Typeahead Web Scrappers

    Bounce search words are those where a user types in a word in a typeahead (autocomplete or autosuggest) box but upon getting the suggestions, he bounces away from the typeahead box or from the website because he does not like the suggestions.

    It scrapes competitors' typeahead boxes for an input region name that has a bounce count smaller than ten. It then compares it using Python and sees which suggestion matches, which do not, and take action accordingly.

    Roles and Responsibilities:
    I scraped the competitor's website, gathered the data and analyzed it.

    Technologies: Python, Beautiful Soup, Selenium Web Driver, Jupyter, Python, Pandas

  • Timetable Scheduler

    This is an NP-complete problem.

    Project Details:
    · Uses the graph coloring algorithm (Greedy).
    · Uses a genetic algorithm.
    · Uses a FitNesse function to design the timetable possibilities based on constraints.
    · The constraints are classified into hard and soft constraints.
    · Hard constraints (the breaking of which results in an infeasible timetable) and soft constraints (which do not have to be met, but which leads to desirable timetables when
    · While using the graph coloring algorithm (Greedy), courses are assigned as nodes and time slots are used as colors. Edges are drawn to show the clashing courses, which cannot be taught at the same timeslot.

    Roles and Responsibilities:
    The whole project was developed by a team of three. I designed and developed the back-end part in Java and implemented Greedy and a genetic algorithm along with a MySQL database schema.

    Technologies: Java, Spring, MySQL, Redis

  • Observer for Monitoring and Logging Applications

    I designed a standard platform for monitoring and logging 40 microservices in insurance.

    The new piece of code acts as a servlet filter and intercepts request and response and does the required monitoring and logging boilerplate stuff for the API.

    I also designed a common jar for data-access-layer so that all the microservices which interact with third-party APIs can leverage it and do not write redundant HTTP client code to interact with third-party APIs.

  • Build with Confidence: A Guide to JUnit Tests (Publication)
    In an age of continuous delivery, Java developers have to be confident that their changes don't break existing code, hence automated testing. There's more than one valid approach to it, but how can you keep them straight?


  • Frameworks

    Spring Boot, Hibernate ORM, Spring, Apache Camel
  • Tools

    Maven, IntelliJ IDEA, AWS IAM, Git, AWS ELB, FitNesse, Kibana, GitHub
  • Paradigms

  • Platforms

    AWS Lambda, Jakarta EE, Apache Kafka, Linux, Eclipse, Amazon Web Services (AWS), Oracle, WebSphere
  • Storage

    AWS S3, Elasticsearch, MySQL
  • Languages

    Java 8, Python, Python 3, Java
  • Libraries/APIs

    Google Maps, Pandas
  • Other

    Autoscaling, Web MVC


  • B.Tech in Computer Science
    2009 - 2013
    DeenBandhu Chottu Ram University of Science & Technology, Sonepat, India - Sonepat, India


  • Course Certificate for Machine Learning by Andrew n.g
    JUNE 2016 - PRESENT
  • Oracle certified Java professional

To view more profiles

Join Toptal
Share it with others