Things I wish I knew before joining Amazon

Suras Kumar Nayak
6 min readAug 7, 2020

--

Disclaimer : This article does not tell anything about interview preparation or how to get into Amazon, it is more about what happens after.

If getting an internship opportunity at Amazon is tough then believe me working towards converting the internship to a full time offer is even tougher.

In a very limited amount of time you have to prove yourself worthy enough of being an SDE at Amazon. Believe me when I say this the hiring standards of Amazon are really high so just problem solving wont suffice it. You have to work on multiple projects and prove your potential in various areas as a software engineer.

During your internship your time is divided into two main streams the learning stream and the implementation stream.

As as intern we have very minimal knowledge and hence most of our time is lost in the learning stream leaving very little to focus on the implementation and complexity management in a project.

It is not bad, most of us follow this pattern only but life will be so much more easier if you know at least a few things before hand.

Let’s get to main part of this article for now at the end I will explain how these points will help you.

So, After working for 6 months as an SDE Intern at Amazon and successfully converting it into a full time offer here are few things I wish I had known before my internship...

If you are about to join Amazon as an intern or fresher it would be helpful to both.

1. Web Technologies and GIT

Most of us during our college life, mostly focus on Data structures, Algorithms and problem solving and spend little to no time exploring other fields.

Take it from me “DON’T DO THAT”. Spend some time on getting to learn web development, it will definitely help you because you may have solved 100 problems on leetcode but ultimately 80% of the time you will be woking on web applications or mobile applications as an engineer.

My advice is pick up a tech stack MERN, MEAN, PERN, PEAN anything and learn to build a full stack application. By doing this you will get to know almost 50–60% of things there is to know about web technologies and as a cherry on top you will have a project to show on your portfolio as well.

Also learn about version control and GIT. Your life will be so much easy if you are proficient in this.

Keywords to lookup for : Frontend , backend, database, REST, CRUD, query optimisation, authentication

2. Basic OS , DBMS, Networking

These are the most fundamental subjects of a CSE course but unfortunately most of the time we only learn them as a part of placement preparations.

Don’t do that, believe me when I say this if [‘.bash_profile’ , ’source’, ‘grep’, ‘JWT’, ’SHA’, ‘HMAC’, ‘RSA’] these don’t make sense to you make sure that you definitely learn what these are.

Don’t just learn it from the perspective of getting a job, believe me you will be embarrassed when people say “You don’t even know this ? You are a CSE student right ?”.

My advice is learn the basics of OS specifically how linux works, how applications run, shell scripting, linux commands, how authentication works, various encryption algorithms, querying in SQL and NoSQL.

Have a grip on these basics and they will be highly useful in your day to day work.

3. DevOps concepts

This a concept that most of us are not aware of because it comes only when you actually start deploying applications and maintaining versions, maintaining production and non production environments.

It is advisable to know that concepts before hand as then it will make your life really easy when you start maintaining and deploying code as an engineer.

As an SDE at Amazon DevOps is also part of the role, almost 20–25% of your time will be spent here, so you definitely don’t want to mess up.

Learning any specific tools is not mandatory since at Amazon there are internal tools so you will have to learn them anyway but at least the concepts would be the same and this will expedite your learning pace

My advice is to learn at least the theory concepts for now, there are tons of videos present on youtube you can learn from. This is a very versatile topic so I wont be giving and specific sub topics to look out for.

But yes let me leave you with this term Continuous Integration and Continuous Deployment.

4. Cloud concepts and AWS

This is a very overrated concept. When we hear the term cloud technologies we think its very hard and only professional cloud developers can work on this, its all a myth.

It is definitely not easy because this is not something that you can learn in a week or two. It requires lot of patience and time. If you start learning about cloud technologies today you will definitely get a hang of it soon.

Amazon developers are the biggest customer of AWS. Almost all the work is done using AWS only, not a day goes by without hearing the terms “lambda”, “step functions” , “S3” etc.

If you don’t understand these terms don’t worry even I was there once, so it is advisable to learn at least the basics about AWS before hand, and believe me this will make your life really easy.

My advice is to start with the overview of cloud technologies, then slowly move to basics of AWS, network services, compute services, storage services.

Keyword to look out for : Availability Zones, VPC, lambda, EC2, S3, IAM, RDS

Let’s talk about how these will help you out as an SDE intern.

As a summer intern you have 8–10 weeks and as a winter intern you will have 22–24 weeks. So how we utilise and manage this time is really important.

You may work 12–14 hours a day but almost 5–7 hours will be spent learning and as a result your most productive time is utilised here which may effect you in delivering the results.

So take my advice learn what ever you can before the start of your internship itself so that you can put your productive work hours into implementation and reducing complexity, as a result you will be able to get more work done in less time and that to in an efficient manner.

Believe me when I say this ultimately the results you have delivered is given more priority than your learning.

Take it from this person who was finally able to cross all hurdles and made his way into Amazon.

Bonus Section :

Thank you for reading till the end. So I guess you are really motivated to bag that PPO. So here are some additional treats for you :

1. Tech stack and tools used at Amazon that you should be familiar with

Let me give you some tech tools and stack that is generally used widely across Amazon development teams.

Backend : (Extensively)Java, (Extensively)Spring, (not that big)Scala.

Frontend : Javascript, React and Redux, AngularJS (also known as Angular 1), (used in some legacy projects)JSP

Testing tools : JUnit + Mockito for Java, Jest + react-testing-library for React.

Database and storage : RDS in AWS, DynamoDB in AWS, S3 in AWS.

--

--