Engineering Interview Process and Resources

Guide to landing a new job as a junior, mid or senior IC position in front-end, backend, full-stack roles as an engineer or developer in a technology company.

Step 1 – Preparation

Coding Practice – coding interviews need coding practice. Pick up one programming language  you are most comfortable with and solve 30-40 coding/algorithm questions (mix of easy, medium, hard) – so that you are able to solve coding/algorithm problems reasonably quickly, understand big-O analysis, optimizations and apply the principles to similar types of problems. Resources: Leetcode.com, GeeksForGreeks

Shortlist Companies create a list of companies you want to work for. Classify them in three groups: (A) you will be excited to join any company in this list (B) this is your fallback list of companies you’d be okay to work at but you would go to work at an (A) companies if you ever get an opportunity (Z) companies you don’t want to work for but may be great for loop practice and as a stepping stone opportunity if nothing works out (your current job is in this list too). Use a simple tool such as a Google Sheet to organize this step. Put name of the company – date you applied and track followups.  Resources: Hacker News (monthly thread on ‘who is hiring’), breakout list.

Profile Update and Review – Update your LinkedIn profile. Update your resume: add your github profile and add concrete results (with numbers/percentages, if applicable) of what you accomplished by yourself and through your team. Be truthful, but be expressive and impressive. If you add links to documents, projects or demos, make sure they are functional. When you feel you are ready with your best work, have a few people critically review your resume – use a real-time collaboration tool like Google Docs and ask reviewers to leave comments.

There is no finishing Step 1. Each of these three things will continue to evolve as you move through rest of steps. Feel free to evolve your shortlist of companies, tweak your resume and practice more questions through rest of steps.

Step 2 – Apply

Startups (and public companies) – Check out AList, Triplebyte, Hired – take time to make an impressive profile.

Public companies – apply directly through their websites. If it is an (A) list company, take the time to write a personalized cover letter (even if optional).

It is highly recommended you get your resume forwarded through someone you know at the company; this fast-tracks your application.

Step 3 – Intro call

If you go through A-List or Hired – you may directly speak to a hiring manager as the first call but in most other cases it will be a recruiter. This is simply an intro call. The recruiter will speak to you to assess: 1) your basic communication skills 2) what team you may be a good fit for 3) any visa requirements or special situations 4) salary expectation. They will give you background on the company and the opportunity. At the end of call, they will have concrete next steps which most likely would be to schedule the tech screen. You should have a few dates and times in mind but if you need to figure it out, you can always get back through email.

Step 4 – Technical Screen(s)

This is a test to check to your coding and problem solving skills. Different companies have different bar for this test but expect to solve a coding/algorithm problem on a code sharing live environment, produce running code and run against some test cases by the interviewer. It helps to get familiar with an online coding environment. It is important to ask clarification questions and discuss edge case conditions. When you’re done with coding the solution make sure to review it and test it against few edge cases before declaring your code is ready. This step is usually binary – you go on if you do good – you’re out if you do bad here. The core reason for this is companies with healthy candidate flow can live with false negatives. Borderline is usually ‘no’, in many cases there will be a second screen. Resources: How to talk about yourself in an interview

Step 5 – Onsite Loop

Onsite loops vary a lot. Expect a full day of coding, systems design, culture-fit, behavior questions etc. For junior and mid-level engineers, the interview is more focused on coding and algorithms. For senior engineers, system design may carry more weight than the coding interview.

Small companies and startups prefer that you bring your own laptop to the interview with your coding environment already set up and will give you a coding problem and after you discuss your approach and the pros/cons they would like you to code it up. The expectation is that you’ll write a runnable and working code. Many companies will expect you to write extremely clean and modular code with edge cases validation. The intention is judge how good a code you’ll write if you joined the team the next day as there isn’t ample time for ramp up in startups. Bigger companies are also adapting bring your laptop but a large number of them still rely on whiteboard coding which can be quite intimidating if you don’t practice it a bit in advance.

The key is to communicate with the interviewer and clarify the problem as much as you can before you start to solve it and make sure you agree on the general approach before you start to coding anything. If you are looking to write pseudo code first to writing a working algorithm, make sure to communicate it to the interviewer. If you’re going to handle the edge cases in the end, make sure you communicate to the interviewer.

System design interviews are open-ended and will require you to clarify the requirements thoroughly before you can design a system. Imagine that you’re in a hackathon and you have 45-minutes to 1 hour to come up with a design of something the company may eventually ship. Read this guide and check out system design primer.

Culture interviews are mainly designed to validate your working style with the values of the company. Expect to answer what you learned from past experiences, why you left your previous positions, why do you want to work for this company etc. Read this and this.

If you did everything right but did not get an offer, don’t worry and move on. If you can get the recruiter on the call, you may be able to get some feedback which could be useful for your next onsite.

Step 6 – Negotiate and Accept

You can always negotiate an offer. The easiest way to negotiate a better offer is to have competing offers from similar companies or competitors. You can negotiate your joining bonus, relocation, salary, equity and pretty much everything else. It is important to understand that this is your chance to ask for what you want and will make you comfortable. Resources: Guide to equity compensation 

Step 7 – Make the best out of this opportunity – kick butt!

Now that you have decided to take this opportunity, give it your all! Don’t hold back. Learn, grow and enjoy!

If this guide helped you or if you have any comments or suggestions, please let us know at hello@zenterview.com.

Amazon Interview Questions and Leadership Principles

Amazon interviews – though well documented online – are evaluated in a complex and somewhat unconventional way.  We get candidates for coaching who have already been turned down by Amazon. These candidates are all well qualified and intelligent.  They’ve spent time preparing the standard questions types (algorithms, data structures for devs, product design, market sizing for PM, etc.) and it shows. “What am I doing wrong?”  I get this question a lot.  Not surprisingly, they’ve missed out on a key piece of the puzzle which they are being evaluated on. Let me tell you what.

Amazon’s leadership principles are critical components of every (full time and internship) interview that Amazon conducts.  Give them a good read.  Think about your answers, and how you tackle your questions. Then read them again.

Regardless of role or seniority, you must incorporate these principles into your responses.  The reason is simple: when folks at Amazon meet to debrief and discuss your interview feedback, these principles are used as a framework.  Your responses are evaluated and you are rated based on how well you performed according to the leadership principles.  As such, often candidates who are otherwise competent and would do very well, may get rejected simply because they did not demonstrate these skills.

Following are 3 key strategies you can employ to ensure this isn’t the reason you are rejected:

1) Read and internalize the principles:  The first half of this is obvious. The second – not so much.  Reading the principles is easy, however if you want to work at Amazon you need to understand that these aren’t just fancy words or a mission statement that many other companies like to put out in a nice press release.  Amazonians live and breath this stuff and they appear in every aspect of the culture.  From hiring, to document discussions even to annual reviews, the principles hold a critical place. As such, after reading these, take the time to understand them, to reflect and to think about how you embody (or need to work on) some of these areas.  This reflection will help significantly when trying to tailor your responses to include them.

2) Focus on customer: While all of the leadership principles are important, some are more important than others.  None however are more important than Customer obsession.  I’ve seen more candidates rejected because of lack of customer focus than any other reason. What’s more, whenever you answer a behavioral question, starting with the customer is a sure fire way to make the interviewer happy (by giving them something to write) and also and also give you a structured way to start your response.  In general this is a good thing, but for Amazon interviews it is critical.

3) Understand this is poker – look for the tell: Every interviewer on the loop has at least one leadership principle they are in charge of evaluating. As such, you should be able to tell pretty quickly (from the kinds of questions you’re being asked) which principle they are evaluating you on.  Be alert and once you figure it out, make sure in each and every one of your answers you tie in that principle. Make it clear that you excel in the area.  This will result in this interviewer positioning themselves as an advocate for you in the debrief session simply because you nailed their principle (assuming you don’t bomb the rest of the loop).

Obviously there are a number of other things involved in a loop, but at Amazon in particular you want to make sure that whenever your interviewer is asking you questions, you keep the leadership principles in mind.  Weaving them into your answers and making sure your responses sound tailored and natural is a bit more of a challenge. Something that comes with practice, preparation and repetition.

Good luck!