The true story

How to get a job at Amazon

You will read some details about the Amazon hiring process.

Lorenzo Spyna

--

“A woman’s hand holding a phone over a busy surface with a laptop, a cup of tea and a half-eaten chocolate bar” by Chris Adamus on Unsplash

Some time ago a recruiter by Amazon contacted me, to schedule an interview. This is the story of the hiring process.

Disclaimer

My English is not perfect, so please tell me if you find any grammar errors.

First of all, the hiring process takes a long time. I had the first contact in January and the outcome of the interview in April. They are not slow, but the procedure is made by some different phases:

  • First Contact
  • Coding Challenge
  • Technical call with a team member
  • Call with the team Manager
  • Onsite interview
  • Get the offer
  • Negotiate the offer (optional)

First contact

The first contact happened on Linkedin. The recruiter is looking for an “experienced Full Stack software development engineer” to work at Amazon Web Services in Dublin, Ireland.

I had some doubts about relocating to Dublin, but we are talking about Amazon, and having nothing to lose, so I send her my CV.

A few days later she tells me the CV has been carefully observed and approved by the Hiring Manager, and she announces to me the first step of the hiring process: the coding challenge.

Coding challenge

The coding challenge is a programming online exercise hosted on the Codility platform. It includes 2 exercises that must be completed within 3 hours. The Rules are:

  • Once you started, you can’t stop the timer.
  • You can choose the programming language you prefer.
  • You can practice by doing some demo challenge, that will not be evaluated.
  • Once you completed the exercise (or the time is run out) the platform verifies it, with test data.
  • You can upload your personalized test data.

The recruiter attaches a precious pdf document containing the instructions and some advice:

  • Be sure to have a good network connection.
  • Use an external IDE.
  • Choose the language you are the most comfortable with.

I did the demo exercises using Javascript, and I decide to use it, even if I have more experience with Java.

I took a leave from work and started the exercises:

The first one was not that complicated. I expected the impossible, instead, in half an hour I managed to end it. Then I spent 10/20 minutes to make the code cleaner. I felt very strong and I lost another 10 minutes uploading some funny test data, to make the program prints something like: “Hi, I am Spyna” and some other foolish things.

I started the second exercise, this wasn’t impossible too, but soon I realized it was long… …I started writing some ugly code, but at least it was working. Five minutes from the deadline, I started refactoring the code… …and submitted the exercise ten seconds from the end.

Two weeks went by and everything was silent, I started thinking it went wrong, instead, a congratulation mail arrived, and the next step was scheduled: A technical call with a team member, that will took about an hour.

“Three vintage olden days telephone hanging on the wall for public use.” by Pavan Trikutam on Unsplash

Technical call with a team member

A team member interviews you by doing technical questions.

We schedule the call, but I have to postpone it. I’m stuck in the office by the snow. The day after I’m able to do it. The call format is the following: lean questions and answers regarding various arguments. For example:

Team member: What does this mean in Javascript?
Me: thisis a keyword that can mean just about anything…
Team member: What is a Proxy?
Me: The Proxy object is used to define custom behavior for fundamental operations…
Team member: How does dependency injection work in Python?
Me: Python? I’ve no idea! I never used python, but I think it works as in other languages, so…

And so on..

He tells me not to worry about if I don’t know an answer, but tell it soon, and we go on to the next question.

I heard some terms for the first time 😲, I can’t answer some questions, but I try to come up with a solution somehow.

The question topics are various and range on the whole web world, these are some I remember:

  • Closure
  • XSS
  • Polymorphism
  • Proxy
  • CSS display, float
  • differences between ==e ===
  • CORS
  • use strict
  • Interfaces

Even on simple questions, my biggest difficulty is to answer in English. At the end of the interview is my turn to make questions.

If it will happen to you, I suggest you the prepare the questions, they have a big expectation on this.

Another two weeks go by, just enough to lose hope, then an email arrives to inform the process will go on with the next step: a call with the team Manager. The recruiter tells me the call will be about the Amazon Leadership Principles.

The call with the team Manager.

I have to tell the Recruiter and the Hiring Manager really helped me through the whole process. Each step they told me exactly what I had to expect, and they gave me lots of precious advice. for example:

  • Prepare yourself and refresh all your skills
  • Learn in depth the Leadership Principles
  • We want to hear facts, not theories
  • Be honest if you don’t know the answer
  • Be sure to point out some good questions

I finally discover the team: RDS aka Relation database System. The Manager tells me the previous call went well, and now she wants to know each other better and understand if I’m a good fit for the position.

In about one hour call, there are not “technical” questions, but they are equally challenging (to me). They were about the working life and personal attitudes, here’s some of them:

  • Tell me about a time when you realized you needed to have a deeper level of subject matter expertise to do your job well.
  • Tell me about a time you learned something new and could apply it into your daily job.

This time I prepared some questions to ask, and wanted to be loose and confidential, trying to understand how the Dublin and Amazon life is, so I asked some weird questions:

  • Can I wear flipflop at work?
  • Are the vegetables good in Dublin?

The answers are: Yes, No.

After this, a little time goes by, then another congratulation email arrived, announcing the most important and final step: the Onsite interview. I have to go to Dublin.

Photo by Carl Raw on Unsplash

The onsite interview

The flight and hotel expenses are covered by Amazon, that was a good news.

The onsite interview takes place with this format:

an interview of 6 hours (yes, 6 😅 ), divided in 6 round of 1 hour, each round is “versus” 1 or 2 people, some from the team, some other not.

Three rounds are purely technical, the other three are mainly about soft skills, and they gravitate around the Amazon Leadership Principles. The last 5/10 minutes of each round, you become the interviewer and have to ask questions to them.

The Technical Sourcer explains which could be the interview arguments:

  • Data Structures
  • Array Linked List
  • Tree (Tree, Binary Tree, Binary Search Tree, Red-Black Tree, etc.)
  • Heap Hash Table Stack Queue
  • Trie
  • Graph (both directed and undirected)
  • Algorithms
  • Sorting Bubble
  • Sort Merge
  • Sort Quick Sort
  • Radix/Bucket Sort
  • Traversals (On multiple data structures)
  • Depth First Search
  • Breadth First Search
  • Object-Oriented Design
  • Distributed Computing
  • Operating Systems
  • Web Development
  • Designing Web Applications
  • Internet Topics
  • Leadership Principles

Those are the possible arguments, doesn’t mean they are all asked. I feel prepared for some of them, not about lot others. I start to study and revise all that stuff.

I also receive some advice from the Technical Sourcer:

  • Interviewers may offer tips/hints. Listen for these and collaborate with your interviewers.
  • We will never ask a trick question or mislead you in any way with intention.
  • You will not be asked questions about being stuck in a blender or about how many windows there are in New York.
  • You are encouraged to be vocal throughout the interviews.
  • Dress as you wish, we don’t have a dress code at Amazon so you can dress casual.
  • Interviewers will be taking notes on their laptops during the interviews. Try not to get distracted and don’t worry, they are listening. (This was a hard thing to me, so sometimes I stopped talking intentionally, to understand if they were listening. And yes, they did)

She also advises me to read some books, one overall: Cracking the code interview. I download it, but foolishly I decided to use some other resources to prepare myself and leave the reading for the last days: during the flight and at the park the day before the interview.

Some days before the interview, the Hiring manager scheduled a call, to prepare me as well as possible. As a follow up of the call, she sent me a list of possible questions:

  • Tell me about a time when you realized you needed to have a deeper level of subject matter expertise to do your job well?
  • Tell me about a time you learned something new and could apply it into your daily job
  • Tell me of a time when you took on work outside of your comfort area and found it rewarding?
  • Tell me about a time that you strongly disagreed with your manager on something you deemed to be very important to the business. What was it about and how did you handle it?
  • Building trust can be difficult to achieve at times. Tell me about how you have effectively built trusting working relationships with others on your team or/and customers
  • Tell me about a piece of direct feedback you recently gave to a colleague. How did s/he respond? How do you like to receive feedback from others?
  • Give me an example of a time when you didn’t think you were going to meet the commitments you promised. How did you identify the risk and communicate it to stakeholders? What was the outcome?
  • Give me an example of a time when you were able to deliver an important project under a tight deadline. What sacrifices did you have to make to meet the deadline? How did they impact the final deliverables?
  • Give me an example of a calculated risk that you have taken where speed was critical. What was the situation and how did you handle it? What steps did you take to mitigate the risk? What was the outcome?
“Two businesspeople talking at a table over a laptop with line charts” by rawpixel on Unsplash

The day of the interview

The night before I try to go to bed early. About 10:30 pm, I realized I failed and went out (with the laptop) to have a walk, one (two) beers, and to finish preparing the last things. Luckily the interview was in the afternoon.

The interview began, the Interviewers were nice, friendly, and they did everything they can to put me on my ease. I appreciated it, and after the first 10/15 minutes of being in plaster I got loose and started to hit my stride. After the first round a catering arrived, with some local “delicacy”. They forced me to eat something as if I was their guest.

The first round was about: understand, correct and refactor a code that is deliberately not working and contains some bugs, on JsFiddle. No debug or IDE, just console.log() and internet access to gather information.

We took the fourth round (data structures e algorithms) remotely. Panic and fear… …but the hour ended fast.

The last round, about web development, is the one I enjoyed the most. I’ve been getting along well from the beginning with the two interviewers. I also really appreciated the format.

We start “writing/designing” a (simple) HTML page on the whiteboard, and then adding cumulatively a billion features. CSS, JS, events, ajax calls, and so on. To end talking about performance, bundles, security, etc…

Example:

Interviewer: Write an HTML page.
Me: <!DOCTYPE html><html><head>…</head><body /></html>.
Interviewer: What does DOCTYPE mean?
Me: the DOCTYPE describes the HTML that will be used in your page…
Interviewer: Now add a title…

..and so on writing the code on the whiteboard.

What I appreciated the most is the fact they didn’t ask me questions, or better, it doesn’t feel like an exam, but it was more like a familiar chat between coworkers.

I finished exhausted but satisfied. I didn’t know how it would have played out, but I gave the 100%.

Photo by Pietro Rampazzo on Unsplash

Getting the offer

The final outcome came really punctual, I remember I was out for lunch with my colleagues and I had forgotten the scheduled call. The phone rings and after 5 minutes of unuseful chatting, here’s the result.

Yuhuu!! I did it.

After 20 seconds ( or less) of congratulations, we start talking about the offer.

You will forgive me if I don’t talk about numbers, however, the offer consists of:

  • Signing Bonus: an amount you receive after the first month. Plus another amount you receive after the first year. To give you an idea, the signing bonus was (a lot) more of an half of my annual salary in Italy.
  • Base Salary: if you are curious, have a look at glassdoor.com, let’s say they were generous.
  • Amazon stock options: an amount of stock. They become yours and you can do whatever you want: keep or sell them.
  • Amazon benefits: a long list of benefits: from healthcare coverage, to the bike to get to the office.
  • Relocation: move you and your family in Irland is a cost, they cover this cost: you can decide to receive a cash bonus (15.000 $, I don’t know why it is in dollars) or to spend it in services. The relocation bonus becomes your after 2 years, so if you resign after 1 year, you have to return them a portion of it.
  • Relo buddy: a person, that speaks your language, and have characteristics similar to you (age, family status, etc…) available for any kind of question. For example: neighborhood to live in, child schools, office life. In short: anything you can think of.
  • Financial consultant: For the first year a professional accountant (that speaks your language) helps you (for free) to fulfill taxes form, get tax deductions. In short, any financial issue.
  • Pay rise: Each year you receive a pay rise, it is not automatic, but the 90% of the employes is able to get it.
“A one dollar bill leaning against the wall on a glossy surface” by NeONBRAND on Unsplash

Final thoughts

The whole process was a great experience, I learned a lot of new stuff. I (They) tested myself, that is always a good thing.

Quoting the book Cracking the code interview, I’d like to close with a statement I found very interesting:

You could be the best engineer on earth, but after the interview, they will ask themselves: “Do I want to work every day with her/him?” and especially: “Do I want to go out and get a beer with her/him?”.

Congratulations!! 😎 You made it to the end. And if you liked 👌this article, hit that clap button below 👏. It means a lot to me and it helps other people see the story.

--

--

Lorenzo Spyna

💻Writes web2 and web3 code | 🚀 firenze.dev co-founder | 🥑 0xpolygon Advocate — https://spyna.it