Hello I'm

Varun Gupta

Don't follow the herd. Think about what you actually want to do.

B.E. Computer Science

CGPA: 8.66

EXPERIENCE

Jul 2020 - Present

Amazon

Software Engineer

I’m working as a part of the Amazon Fulfilment Technologies (AFT) team. I worked on the inventory migration project to virtually migrate inventory from 3PL warehouses to AFT warehouses. I developed APIs to rollback migration in case of any failures during the migration and created a step function workflow to delete inventory from the source warehouse after successful migration. I'm currently working on optimizing the approach to reduce the migration time from ~40 hours to ~8 hours for a million inventory units.

Jun 2020-Aug 2020

OpenMRSE

Google Summer of Code Student Developer

I worked on the FHIR v2 module of OpenMRS which deals with using the HAPI FHIR library to maintain information about patients and their medical records. I improved the search for this FHIR2 module by including an exhaustive list of search parameters as defined in the FHIR search API. I used the Criteria API of Hibernate to generate queries.

May 2019- Jul 2019

Uber

SDE Intern

I worked as a part of the Customer Obsession (CO) team, on setting up data pipelines (ETL Workflow) from Hive to MySQL. The ETL workflow for the same was written in Python and involved HQL and SQL queries as well. The data transferred to MySQL was used to implement a new feature (reduction of the average handling time for a support ticket) in a backend service written in Golang and built on an architecture involving controllers, mappers, entities etc.

QnA

I've been at Amazon for about 11 months now. I’m working on a project where we need to virtually migrate inventory from a third party Amazon warehouse (3PL) to the actual Amazon warehouse. The tools being used by the third party to store and manage inventory are not very advanced tools for managing inventory. So what the businesses want to do is to migrate that inventory to the Amazon warehouse where they have more advanced Amazon tools to manage it. When we started this project last year in September, it took around 40 hours for the migration of around 1 million inventory units. For this year, we plan to reduce the migration time to around eight hours. I’m working on this optimization.
It's basically dependent on the deadlines of the project. Like last year around September-October, when I joined it, I was new to the full-time role, so I used to get small specific tasks and I was not leading a project as such. I was able to complete all the sprint tasks in around seven hours per day. But right now, I've got ownership of this project and since then I have to manage two-three other employees along with me. My working hours have reached around 10 right now because the deadline is next month (June end) only.
Yeah, obviously everyone does that. I was not somebody who was like a pro from when I entered college. The first year, I mostly spent time doing random stuff and not working on my personal skills as such. After the first year, I started exploring Android. I kind of didn't like it at first because it was more redundant to me. Then I started working on my algorithmic skills. I liked that and then I continued with it for about 6-8 months till the internship process was completed. During the internship, I worked on mostly the backend stuff and got really interested in pursuing the same. Similarly this way, in my final year, I was able to try some new things in machine learning.
I have had a keen interest in problem solving since I was young. When I grew up, I was fascinated by these IT companies and how their products have made lives easier. Considering Uber, you've seen it has kind of revolutionized transportation. Similarly, Amazon is doing great in e-retail and Google is constantly innovating in the search space and all other technical domains as well. I thought I would want to develop a product which is beneficial for people and they continue to use it for many years. And I was always also fascinated by technology. So that is the other reason I always wanted to stay in tech.
The work culture is pretty good. They're basically using all the Advanced Technologies like Java, JavaScript, Python and Ruby primarily. The people here are very helpful and you get to work with really smart people. The hiring bar at Amazon isn't very high as compared to other companies like Google. But you get a good learning curve here because the Amazon network is expanding a lot and it's pushing boundaries in every domain now, so we have a lot of projects going on, a lot coming. Everybody gets to work on different and interesting projects. And that's the primary reason I would also recommend people to join Amazon. When it comes to perks, I would say Amazon is not the company you're looking for because they are very choosy in giving compensation as well as perks to employees.
Uber was actually very fantastic. It's one company which pays a lot, though, it's relatively small as compared to Amazon. Since they are a new company, they use newer techstack. For example, for frontend, they'll be using GraphQL and Javascript. In the backend, they'll be primarily using Java or Python, or Go language. Apart from that Uber has a very high hiring bar. The people you work with are very smart and engineers are very experienced with what they do. It's a very steep growth there basically because you get to work on a lot of good technologies and projects. Also, there is a good mix of both the frontend and backend tasks. For example at Amazon, I mostly work on the backend side but in Uber, I saw my team working on the front end, as well as the backend side of things.
Right now what has happened is that since ML is trending, everybody is like, ”I will do research”. And let's say 80% of the students are publishing papers. But when you actually test those people regarding their machine learning knowledge, you would see only 10% of them actually have the knowledge of applying machine learning correctly and the rest 90% are just experimenting with different algorithms without still knowing what algorithm to apply in what situation. So, the one advice I would like to give is don't follow the herd and think about what you actually want to do and pursue it religiously. If you want to do system design, if you want to build systems software, development is the way to go. Do not take part in any machine learning things for the sole purpose of publishing papers. If machine learning is the right thing for you, do not do anything in software and start looking for more opportunities in that domain. That’s how you can establish yourself in your area of interest. Mixing domains almost always hurts you some way or the other. Secondly, there are times when you actually feel that you're not doing well. You start feeling, “okay? Maybe this is not for me”. So, what you can really do is work hard and just keep your spirit up because eventually things will start falling into place. I would like to share my experience as well. I didn't get a PPO from Uber and I was very disappointed because I had worked hard. But then I tried to forget that and just worked on my profile. I then applied to Amazon also through PS2, and started working on a PPO conversion at Amazon. So you will have all sorts of opportunities, and it’s on you to take them. If you don't take them, you'll end up in the same spot. Thirdly, people will call you a “ghot” every time you cut-off from the social interactions to pursue your goals. Everybody is intimidated by it and I was also like that. I used to call people “ghots” but then I figured out that these are the people who have an edge over you after four years. So actually being a ghot isn’t that bad. For example, When I was preparing for my internship season Uber, all of my wingies used to simply chill. They were aiming for an internship, but they weren't preparing as hard. So I was kind of left alone in that preparation thing. I used to just lock myself in my room and work on my algorithmic skills. All the others would be sitting in the other room chatting. Then when I used to meet them, they would call me a “ghot”. But when I got a good offer, I thought my job was done. I didn't care about being called a ghot any longer. So, I think being called a ghot (so many people feel socially awkward when called by that), is not something you should be worried about. You should just focus on yourself. Fourthly, people always think that we cannot do XYZ in this much time. For example, let’s consider a student who has two months before the internships. The student thinks, “Not much time left.” Now 30 days before internship, the student feels “Not too much time left. I cannot do anything. “ And then another 15 days go by and the student feels “I cannot do anything now.” Well if the student had started two months back, he/she would have achieved the state where he/she could have done anything, right? Not losing motivation and always working hard is the key to success. And lastly, don't forget to have fun along the way. These are the golden years of your life and won’t return :)