Nikhil Bansal
Verified Expert in Engineering
Software Developer
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
Experience
- Spring Boot - 9 years
- Jakarta EE - 5 years
- Java 8 - 5 years
- Elasticsearch - 3 years
- Apache Kafka - 3 years
- Amazon S3 (AWS S3) - 2 years
- Python 3 - 2 years
- AWS Lambda - 2 years
Availability
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)
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.
Software Engineer
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.
Programmer
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.
Experience
Stock Advisor Ranking (Personal Use)
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)
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
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
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
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.
Education
B.Tech in Computer Science
DeenBandhu Chottu Ram University of Science & Technology, Sonepat, India - Sonepat, India
Certifications
Course Certificate for Machine Learning by Andrew n.g
Coursera
Oracle certified Java professional
Oracle
Skills
Libraries/APIs
REST APIs, Google Maps, Pandas
Tools
Apache Maven, IntelliJ IDEA, AWS IAM, Git, AWS ELB, FitNesse, Kibana, GitHub
Languages
Java, Java 8, Python, Python 3
Frameworks
Spring Boot, Hibernate, Spring, Apache Camel
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring