Understanding Amazon’s Front-End Engineering Interview

Amazon Lists 2,417 Open Front-End Engineer Positions

Note: I’m not representing Amazon in any way with this post, it’s just my personal opinion.

Front-End Engineering in a Back-end World

Watch Out for the Wrong Job Title

At Amazon the FEE (front-end engineer) interview is a lot different from an SDE (software development engineer) interview, I know Facebook similarly has a completely different recruiting process for UI Engineers. For Google, I think UX Engineer is the FEE equivalent with its own interview process. When you’re interviewing for what you think is a front-end role, make sure the recruiter and everyone you talk to is on the same page.

Check out Some of These Books on Data Structures and Algorithms

  • De-Coding The Technical Interview Process — This is a brand new book by Emma Bastion about technical interviews that is tailored for front-end engineers. The content is very approachable. It’s a great place to start.
  • The Impostor’s Handbook (#1 and #2) — This book helped me become familiar with a bunch of algorithms and concepts I didn’t know much about before. Not enough to nail an FEE interview, but enough to learn what I was missing.
  • The Algorithm Design Manual — A popular CS textbook, I read a few parts to better understand some algorithms in detail.
  • Cracking the Coding Interview — Ignore the code examples, but the intro chapters help cover some key technical concepts.
  • Grokking Algorithms — Covers a lot of algorithms with cute pictures. I preferred the way these algorithms were covered by the Impostor’s Handbook, but this might work better some some people.

Consider Practicing Example Interview Questions

Let me give you an example:

Let’s say in an interview you’re asked to parse a log file with JavaScript to determine the top 5 and bottom 5 referrers to a site. So you make two functions called getTop5() and getBottom5(). Then you have a choice to make. How frequently should you actually be parsing that file? What if it’s 2 or 3gb? Your best bet is probably to create some kind of intermediary data structure that contains the referrers and a count and nothing else. Maybe even sort it. Once you have that it should be relatively simple (and fast) to get your top and bottom 5 referrers formatted however you want.

When people talk about “data structures” in the front-end environment, this is all they mean. Purpose-built objects (or classes) with keys and values that make it easy to perform whatever action is needed. You don’t need to memorize anything.

It often helps to work backwards. Ignore, for now, that the data is in a giant log file, think instead, “if I wanted to efficiently look up the top 5 entries, what would be the best way to do that? What shape should the data be in?” And then work out how to get the data into that shape before coding your solution.

Remember, you’ll only have about 30 minutes in an interview to complete most of these questions, so practicing getting to the right approach quickly with these exercises, will make a big difference.

Prepare Answers for “Soft-Skills” Type Questions

Here’s an example of what one might look like:

Tell me about a time you went outside the scope of your job to solve a problem affecting a customer?

In this question you’d be demonstrating your customer obsession and willingness to learn & be curious, two important leadership principles. Other leadership principles you’re likely to be asked about in the front-end interview at Amazon are Insist on the Highest Standards, Hire & Develop The Best, Think Big, Deliver Results, Have Backbone; Disagree and Commit. Focus on those, but be aware that any of them may come up in an interview loop.

Brush Up On JavaScript & CSS Fundamentals

It’s also fairly common to be asked how to make utility methods like debounce or clone or merge or even how to build a “chaining” API similar to jQuery’s. You might get asked how to build a Map or Set class from scratch. All of these types of questions can be classified as “JavaScript fundamentals” and a thorough understanding of the language will help immensely.

For that I actually recommend studying from books. Here are a few frequently recommended options in this space:

The Interview Loop (or “on-site”)

It’s not uncommon during an interview for a candidate to get flustered and a little bit lost in their thoughts. Sometimes it can help to pause, take a deep breath, and re-consider the approach you’ve taken. Talk through your thoughts out loud and make sure to ask questions to better understand the problem. Often times the interviewer will provide subtle or specific hints to keep you going in the right direction.

The System Design Question

Sometimes it’s more of a full stack question like “How Would You Build a Website That Sells Tickets to Events?” Other times it will be more focused on the UI such as “Tell me What Components You’d Need to Power an App like Twitter”.

Here are a few suggestions for doing well in these questions:

  • For fullstack questions make sure to think about stability and scalability (logging, monitoring, caching, etc.)
  • For the UI component type questions make sure to mention theming, extensibility, accessibility, requiring a specific framework, etc.
  • Both answers need to consider performance, mobile friendliness and security.
  • Be as specific as possible (there’s no right answer, so make some choices and defend them!)

Conclusion

What has your experience been like interviewing for front-end roles at big tech companies? Was it worth the effort you put into preparing for the interview? I’d love to hear about it.

UI Engineering Leader

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store