Kunal Grover, Developer in Bengaluru, Karnataka, India
Kunal is available for hire
Hire Kunal

Kunal Grover

Verified Expert  in Engineering

Full-stack Developer

Bengaluru, Karnataka, India

Toptal member since September 4, 2019

Bio

Kunal is a software engineer experienced in working with large companies, startups, and freelancing. He has strong skills in full-stack web and mobile app development, as well as machine learning, which helps him devise solutions for real-world business problems. He enjoys creating end-to-end products, and solving complex engineering challenges.

Portfolio

Amazon
Java
LeanAgri
Angular, Ionic, MySQL, Python, Django
Amazon
Apache Tomcat, Java

Experience

  • Machine Learning - 4 years
  • Java - 4 years
  • Django - 4 years
  • Python - 4 years
  • Full-stack - 4 years
  • React - 2 years
  • Angular - 2 years
  • Vue - 2 years

Availability

Part-time

Preferred Environment

MacOS, Linux

The most amazing...

...project I've built was a high-performing polygon algorithm for finding the area from geo coordinates using TSP heuristics.

Work Experience

Software Development Engineer

2019 - PRESENT
Amazon
  • Developed the post-purchase experience for the Amazon shopping website. This involved understanding customer behavior and optimizing the experience to enable customers to shop without limits.
  • Supported the purchasing of large customer orders by working across the domains of the shipping and ordering services.
Technologies: Java

Technology Head

2018 - 2018
LeanAgri
  • Worked on the growth phase of an early agri-tech startup, scaling it from 100 to 2000 farmers in various regions.
  • Owned end-to-end product development from customer requirements, wireframes, UI/UX, to delivery of all four products delivered by the company.
  • Modeled complex real-world data in a LeanAgri back-end system with a Relational Database Management System (RDBMS). Created high-performance customer apps with offline support, internationalization, GIS tooling, analytics, and hot app updates.
  • Managed the technical team, and implemented high-quality software development with code reviews, and unit and integration testing CI suites. Followed sprint-based task planning and tracking.
  • Oversaw the high availability setup with nearly 100% uptime. Performance testing and optimization helped serve over 100 concurrent users with two servers and P99.9 latencies under one second in production servers.
  • Led machine learning research initiatives: Crop detection using satellite imagery, detection of pests using imagery, and price formulation algorithms using Time Series analysis (extension of SARIMAX algorithm).
Technologies: Angular, Ionic, MySQL, Python, Django

Software Development Engineer

2016 - 2018
Amazon
  • Developed a highly scalable and performant infrastructure solution responsible for handling all incoming traffic to the Amazon shopping website.
  • Developed load testing, evaluation of risks related to performance and high availability, and created solutions targeted to add redundancy.
  • Worked extensively on the server-side rendering a Reactive framework developed on top of Java 8 CompletableFutures.
  • Satisfied project requirements. The success of these high availability designs was great. No downtime was noted even with unexpected peaks and running at extremely high efficiency.
  • Implemented a circuit breaker mechanism leading to a fault-tolerant solution able to serve when dependencies are unavailable. Presented at Rootconf 2016 about my work.
Technologies: Apache Tomcat, Java

Experience

RNN Implementation Using Amazon SageMaker

Implemented an RNN using TensorFlow. The dataset was comprised of many cocktail recipes. We wanted to generate a recipe based on user input.

Try it out: http://tensorflow-frontend.s3-website-us-east-1.amazonaws.com/

How does it work?
We used RNN because we were trying to train what comes next given part of a word. We know that the context of the next character depends on previous characters. Trained data for an RNN uses X number of characters as training data with a prediction value as the next character. Now, we know that RNNs have gradient problems, and we also require a longer context (e.g., what was the word ten words before this), so we used long short-term memory (LSTM) to solve these problems.

Steps:
Character tokenization into integers.
Implement a simple RNN with TensorFlow and LSTM.
For training, feed a large amount, e.g., 60 characters to predict the next character.
Next, add characters sequentially to retrieve the complete sentence.
Result: A simple Flask-based app on the back end working with a ReactJ front end as the user interface.

NLP-based Content Clustering Engine for Recommendations

Problem:
The received set of text cards displayed to the user are required to create clusters or topics for the content so that the user receives suggestions based on similar content.

Solution:
Data cleaning with stop word removal.
Keyword extraction using term frequency-inverse document frequency (tf-idf). We selected top X words that would be used to create clusters with Word2Vec pre-trained models from Wikipedia data (fastText).
A select subset of keywords helped to get our keywords and cluster vectors. Cluster sizes could be determined by using the Elbow method. We could also do hierarchical clustering to help visualize the clustering, and thereby select good clusters.
Each article can be assigned a cluster based on the mode of clusters of keywords in that article.

Alternative approach:
Doc2Vec, didn’t try it out, but fairly similar, it combines document Word2Vecs into a single vector for comparison.

Image Recognition Python-based Classifier

A classifier developed to detect and analyze the adultering of milk sample tests using Computer Vision. The classifier involved detecting areas where the samples reacted with the chemical and found the result of adulteration based on the test strip analysis.

Education

2012 - 2016

Bachelor of Technology Degree in Mechanical Engineering

Indian Institute of Technology - Chennai, India

Skills

Libraries/APIs

React, Vue

Tools

Apache Tomcat

Languages

Java, Python

Frameworks

Django, Angular, Ionic, Flutter

Paradigms

Concurrent Programming, Functional Programming

Platforms

Linux, MacOS

Storage

MySQL

Other

Full-stack, Machine Learning

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