Scroll To View More
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

Portfolio

Experience

  • Core Java (J2EE), 5 years
  • Java 8, 5 years
  • Spring Boot, 4 years
  • Apache Kafka, 3 years
  • Elasticsearch, 3 years
  • AWS S3, 2 years
  • Python 3, 2 years
  • AWS Lambda, 2 years
Gurgaon, Haryana, India

Availability

Part-time

Preferred Environment

Linux, IntelliJ IDEA, Eclipse, Git

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.

Employment

  • 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: Spring Boot, Amazon Web Services (S3, Lambda), Maven, Git, Apache Kafka, Elasticsearch, Python
  • 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: MySQL, Kafka, Elasticsearch, Spring
  • 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: Apache Camel, Spring, Oracle, WebSphere

Experience

  • Stock Advisor Ranking (Personal Use) (Development)

    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) (Development)

    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 (Development)

    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 (Development)

    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

  • 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?

Skills

  • Languages

    Core Java (J2EE), Java 8, Python 3
  • Frameworks

    Spring Boot, Hibernate ORM, Apache Camel
  • Tools

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

    Agile
  • Platforms

    AWS Lambda, Apache Kafka, WebSphere
  • Storage

    AWS S3, Elasticsearch
  • Libraries/APIs

    Google Maps, Pandas
  • Other

    Autoscaling, Web MVC

Education

  • B.Tech in Computer Science
    2009 - 2013
    DeenBandhu Chottu Ram University of Science & Technology, Sonepat, India - Sonepat, India
Certifications
  • Course Certificate for Machine Learning by Andrew n.g
    JUNE 2016 - PRESENT
    Coursera
  • Oracle certified Java professional
    SEPTEMBER 2012 - PRESENT
    Oracle
I really like this profile
Share it with others