Nikhil Bansal, Developer in Gurgaon, Haryana, India
Nikhil is available for hire
Hire Nikhil

Nikhil Bansal

Verified Expert  in Engineering

Software Developer

Location
Gurgaon, Haryana, India
Toptal Member Since
November 27, 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.

Portfolio

Expedia Online Travel
Python, Elasticsearch, Apache Kafka, Git, Apache Maven...
Paytm
Spring, Elasticsearch, Apache Kafka, MySQL, Spring Boot, Java, REST APIs...
Fidelity International
WebSphere, Oracle, Spring, Apache Camel, Spring Boot, Java, REST APIs...

Experience

Availability

Part-time

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.

Work Experience

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, Apache Maven, Amazon Web Services (AWS), AWS Lambda, Amazon S3 (AWS S3), Spring Boot, Java, REST APIs, PostgreSQL, Microservices, Kubernetes

Software Engineer

2015 - 2016
Paytm
  • 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, Spring Boot, Java, REST APIs, Microservices, Amazon Web Services (AWS)

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, Spring Boot, Java, REST APIs, Microservices

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
met).
· 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.

Languages

Java, Java 8, Python, Python 3

Frameworks

Spring Boot, Hibernate, Spring, Apache Camel

Libraries/APIs

REST APIs, Google Maps, Pandas

Tools

Apache Maven, IntelliJ IDEA, AWS IAM, Git, AWS ELB, FitNesse, Kibana, GitHub

Paradigms

Agile, Microservices

Platforms

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

Storage

Amazon S3 (AWS S3), Elasticsearch, PostgreSQL, MySQL

Other

Autoscaling, Web MVC

2009 - 2013

B.Tech in Computer Science

DeenBandhu Chottu Ram University of Science & Technology, Sonepat, India - Sonepat, India

JUNE 2016 - PRESENT

Course Certificate for Machine Learning by Andrew n.g

Coursera

SEPTEMBER 2012 - PRESENT

Oracle certified Java professional

Oracle

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring