First Contact: Development Engineer" To Work at

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 12

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.

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.

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?

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%.

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.

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?”.

You might also like