The Internship — Amazon, Bangalore

The experience of a budding Software Engineer

Moi

For people who don’t know me, I am a computer engineer at NSIT, Delhi University. I was one of the people who started coding on Online Judges early, and more importantly was one of those who enjoyed every minute spent there. I was always a decent competitive coder on Codeforces, et al.

I had the good fortune of interning in the summer of 2016 as a Software Development Engineer at Amazon, Bangalore where I learnt that there was much more to Software Engineering than plain coding. It turned out to be an experience like no other.

Amazon’s Bangalore office — the World Trade Centre. Source: YouTube

À Amazon

Having some experience with Android Application development, it was a happy moment when I got assigned to the team which sends you the “spam” notifications on your Android phones.

Some of the key takeaways from my time at Amazon were:

  1. There is an awesome learning environment in place at Amazon.
    When I started working, my mentor pointed me to the package and the entry point in the code I needed to deal with. From there, I started figuring out the control flow in the huge Android application code base, until I understood where exactly I needed to have my code perform its intended action. By the time I wrapped up my project, I had a fairly good understanding of how push notifications worked, and several of the idiosyncrasies involved. 
    Something which I found particularly amazing was the Code Review system — every code written by a developer needs to be peer reviewed before it can be pushed to production. Though this sounds like it would impair developer productivity, it turns out to be an extraordinary way to learn while you are at your job. The code I wrote was reviewed by my mentor and other developers. This was repeated several times, and with each review, the code quality and my Dev skills went up significantly. The time and effort spent on improving code quality were most rewarding. By the time my code was Production-ready, I had learnt so much about Software Engineering, that I had begun to question what I had been doing in college for so long.
  2. Incredibly smart and approachable people around.
    Thanks to the extremely cool work environment, you can walk up to anyone and talk to him about a problem you’re facing. The flat hierarchy Amazon boasts off, does exist. There were times when I approached extremely senior people from other teams with issues I was facing with the code/API they had written. They would be polite, helpful and wouldn’t mind giving me some of their time, regardless of what I asked.
  3. A helpful mentor+manager combination 
    My mentor, manager and my team, were the reason I could make quick progress on my project. In the beginning of my internship, I was completely new to Software Engineering, and they helped me out in an ever so patient manner. To give you an instance: the noob that I was, I asked my mentor Rohan Bathla on my first day what the difference between Client Side and Server Side processing was. And he didn’t mind at all 😜
  4. Each developer has complete independence, and consequently responsibility
    One of the principles which set Amazon apart from the rest, is that you yourself are completely responsible for the code you push. You can’t put the blame on another team if your code crashes. You need to take care of the edge cases in your code, to cover the scenarios where the input you receive is not proper.
  5. Work Life balance
    One of the fabled articles in New York Times attacked the work life balance at Amazon. Being new to the Software world, I often put in long hours to work on my project. However, I could see my senior engineers, who had a comfortable life, putting in the traditional 8 hours from 9AM-5PM. Of course, when they were “on-call”, these hours would be longer, but that happened only once in a while. 
    Overall, I could see a rewarding Work Life balance, more inclined towards the Work, rather than the Life. The steep learning curve allows you to rapidly build a career in Software Development.

The summer of 2016 was definitely the most productive summer I’ve had yet. The two months were an amazing experience, and I’m glad I’ll be joining Amazon soon as an FTE 😁