Amazon Internship – Takeaways

I finished my 2 month internship with Amazon on the 5th of July. I was able to complete the coding part of the project assigned to me but the testing & deployment phase took longer than anticipated. So I spend the last week doing knowledge transfer sessions to a new hire to take over the project. The fact that I couldn’t see my code reach production was slightly disappointing but hopefully it will be in use by this month end. 🙂

Let me straight away get down to how the experience at Amazon has impacted me.

  • Industry standard programming methods and paradigms

I was able to understand and see top class programming practices in action (related to Java & more general ones). These include coding conventions to use of interfaces, hibernate, factory patterns, logging mechanisms etc. I was also able to understand how important planning is to the timely completion of projects – sprint plannings, daily scrums etc. Each code goes through thorough peer review process after which it gets a ‘Ship It’. Amazon also had home made building and deployment tools as well as systems for version management, RESTful web services etc.

  • Effective use of data structures

Each design decision was carefully taken – the bigger ones were taking over series of meetings, consulting with UI designers, principal engineers, senior developers etc whereas even the smallest ones are made with much forward thinking – the efficiency of chosen data structure in terms of time & space complexities, relevance to the use case etc are considered. Hash Maps, Hash Sets, Array Lists etc were put to regular use.

  • Testing frameworks

I was totally new to software testing. At Amazon, I had to write test cases for each change that I made and thus got the opportunity to extensively use JUnit testing, DBUnit testing and the concepts of mocking classes using EasyMock, PowerMock etc.

  • Familiarisation with AWS – SQS, EC2 etc.

Our team was making the transition from other platforms to AWS for most purposes. Thus I got to see how the various services are put to use.

  • High level understanding of various interesting programming fields – distributed computing, machine learning etc

Our team used to have a weekly technical speaking session – anyone could take a session on upcoming technologies. I was able to know about Apache Hadoop for big data processing, R for machine learning etc. These sessions were really informative and interesting.

  • Lots of fun time and good memories 🙂

I was lucky to be part of an awesome team. Everyone was really good at what they do and were also really fun people to hang out with. There was a lot to get done in the last two weeks – I had to stay late at the office. Once I remember leaving office at 5am only to return by 9am again. But it was fun. There was also the Amazon Global Intern Hackathon which as a 24 hour hackathon for interns across the globe. We were given a real life challenge and asked to come up with efficient solutions. I had missed the registration for the event but I joined a team (interns had to form teams of 5 for the hack) simply to see them work on it – Team ThinkOutOfTheBox. It was an awesome experience – their team had got internship at Amazon after topping the Amazon Ninja Coding contest conducted all over India, so yea pretty much a mean team. 🙂

Our team (the actual project team) always had lunch together – with interesting discussions. Also, on Fridays we used to order lunch from outside – pizzas at times. 🙂  We had a team outing the day before I left – very memorable. We went out for bowling, dinner etc and partied hard that night. I ended up sleeping at a team mates place since we were really late.

To sum up, after the internship Amazon’s motto makes perfect sense to me:

Work Hard. Have fun. Make history

2 thoughts on “Amazon Internship – Takeaways

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s