JS Guide
HomeQuestionsTopicsCompaniesResources
BookmarksSearch

Built for developers preparing for JavaScript, React & TypeScript interviews.

ResourcesQuestionsSupport
HomeQuestionsSearchProgress
HomeCompaniesAmazon

Amazon

Amazon's frontend teams build experiences for Amazon.com, AWS Console, Prime Video, Alexa, and internal tools. They use a mix of frameworks and emphasize the Leadership Principles heavily.

Big Tech
JavaScript
TypeScript
React
Angular
Node.js
Careers pageCompensation data

26

Questions

21

Day Plan

4

Stages

12

Topics

Frontend Roles

Front End Engineer

SDE I-III (L4-L6)

Builds feature-rich websites and web applications using modern JavaScript, React, or Angular frameworks across Amazon.com, AWS Console, and Prime Video.

Software Development Engineer (SDE)

SDE I-III (L4-L6)

General software engineer role that often includes significant frontend work. Full-stack with both backend and frontend responsibilities.

Interview Process

Based on publicly available information. Actual processes may vary by team and role.

1

Recruiter Screen

30 minutes

Initial discussion about your experience and the role.

2

Online Assessment

~2 hours

A timed coding assessment on HackerRank with two technical problems, system design scenarios, and a work-style survey based on Leadership Principles.

Coding
System design
Leadership Principles
3

Phone Screen

45-60 minutes

Technical coding interview with a mix of algorithmic and frontend questions.

JavaScript
Problem solving
Leadership Principles
4

Onsite / Virtual Loop

5-6 hours

Typically 4-5 rounds with coding, system design, and behavioral questions tied to Leadership Principles.

Coding
System design
Leadership Principles
Bar raiser

Total process duration: 3-6 weeks

Amazon's interview process is heavily structured around their Leadership Principles. Every interview round includes behavioral questions.

Study Plan

21-day study plan across 3 phases

1
JavaScript Essentials
Days 1-7
Variables & scope
Closures
Promises
Async/await
Event loop
Error handling

Questions to practice:

  • What is the difference between var, let, and const in JavaScript?
  • What is a closure in JavaScript and why are they useful?
  • What are Promises in JavaScript and how do they work?
  • How do async/await work and how do they relate to Promises?
  • Explain the JavaScript Event Loop and how it handles asynchronous operations.
  • How does try/catch work in JavaScript and when should you use it?

Topics to study:

Closures
Promises & Async/Await
Error Handling
2
React & TypeScript
Days 8-14
Hooks
State management
Context API
Error boundaries
TypeScript basics

Questions to practice:

  • Explain the useState and useEffect hooks and their common patterns.
  • What is state in React and how is it different from props?
  • What is React Context and when should you use it?
  • How do Error Boundaries work in React and what are their limitations?
  • What is TypeScript and what benefits does it provide over JavaScript?
  • What is the difference between interfaces and type aliases in TypeScript?

Topics to study:

Hooks
State
Error Boundaries
TypeScript Fundamentals
Interfaces vs Type Aliases
3
Performance, Testing & CSS
Days 15-21
Web Vitals
Loading performance
Caching strategies
Testing fundamentals
Responsive design

Questions to practice:

  • What are Core Web Vitals and why do they matter?
  • What is lazy loading and how do you implement it?
  • What are the different types of caching for web applications?
  • What is unit testing and why is it important?
  • What is the difference between unit tests and integration tests?
  • How do you make a website responsive using CSS?

Topics to study:

Lazy Loading Techniques
Caching Strategies
Unit Testing Fundamentals
Responsive Design Fundamentals

Questions to Practice (26)

Questions relevant to preparing for frontend interviews at Amazon, based on their known tech stack and common frontend interview patterns.

How does try/catch work in JavaScript and when should you use it?

javascript
junior

What is a closure in JavaScript and why are they useful?

javascript
mid

What are Promises in JavaScript and how do they work?

javascript
mid

How do async/await work and how do they relate to Promises?

javascript
mid

What are Promise.all, Promise.race, Promise.allSettled, and Promise.any, and when do you use each?

javascript
mid

How do you implement data polling in JavaScript?

javascript
mid

How would you implement a simplified Promise from scratch?

javascript
senior

How would you implement Promise.all and Promise.race from scratch?

javascript
senior

What is state in React and how is it different from props?

react
junior

Explain the useState and useEffect hooks and their common patterns.

react
mid

What are custom hooks and how do you create them?

react
mid

What is useRef and when should you use it?

react
mid

How would you implement a useLocalStorage custom hook?

react
mid

How would you implement a useFetch custom hook?

react
mid

How do React component lifecycle methods map to hooks in functional components?

react
mid

Build an autocomplete/typeahead search component in React that fetches suggestions from an API with debouncing, keyboard navigation, and highlighted matching text.

react
mid

How do Error Boundaries work in React and what are their limitations?

react
senior

Implement a basic version of useState from scratch.

react
senior

Implement a basic version of useEffect from scratch.

react
senior

What is TypeScript and what benefits does it provide over JavaScript?

typescript
junior

What is the difference between interfaces and type aliases in TypeScript?

typescript
junior

What is unit testing and why is it important?

testing
junior

What is lazy loading and how do you implement it?

performance
junior

What are the different types of caching for web applications?

performance
junior

How do service workers improve performance and what caching strategies exist?

performance
senior

How do you make a website responsive using CSS?

css
junior

Recommended Topics (12)

Closures

A closure is a function that retains access to variables from its outer (enclosing) scope even after the outer function has returned, enabled by JavaScript's lexical scoping.

Promises & Async/Await

Promises represent eventual completion or failure of async operations with three states (pending, fulfilled, rejected), and async/await provides syntactic sugar for writing promise-based code that reads like synchronous code.

Error Handling

JavaScript provides try/catch/finally for synchronous error handling and .catch() or try/catch with async/await for asynchronous errors, with built-in error types like TypeError, ReferenceError, and SyntaxError.

Hooks

Hooks let functional components manage state (useState), run side effects (useEffect), access refs (useRef), and extract reusable logic into custom hooks — all following strict rules about call order.

State

State is internal, mutable data owned by a component — updates must be immutable (creating new objects, not mutating existing ones) and are batched asynchronously in React 18+ for performance.

Error Boundaries

Error boundaries are class components that catch JavaScript errors during rendering and lifecycle methods, displaying a fallback UI instead of crashing the entire app — but they don't catch errors in event handlers, async code, or SSR.

TypeScript Fundamentals

TypeScript is a typed superset of JavaScript that compiles to plain JS — it catches type errors at compile time rather than runtime, enables intelligent IDE tooling (autocomplete, refactoring, go-to-definition), and has become the industry standard for production JavaScript applications.

Interfaces vs Type Aliases

Interfaces define object shapes and can be extended with extends or merged via declaration merging — type aliases can represent any type (unions, tuples, primitives) but can't be merged, and the practical rule is to use interface for objects and type for everything else.

Lazy Loading Techniques

Lazy loading defers the loading of non-critical resources until they are needed, reducing initial page weight and improving Time to Interactive through native attributes, Intersection Observer, and dynamic imports.

Caching Strategies

Web caching stores previously fetched resources at various layers (browser, CDN, service worker) to reduce network requests, lower latency, and enable offline access in production applications.

Unit Testing Fundamentals

Why testing matters, what unit tests are, what to test versus what to skip, and how automated tests improve code quality, enable safe refactoring, and serve as living documentation.

Responsive Design Fundamentals

Responsive design combines the viewport meta tag, media queries, fluid units (%, vw, rem, clamp()), and mobile-first methodology to create layouts that adapt gracefully from mobile screens to large desktops.

Interview Tips

  • Prepare stories for Amazon's Leadership Principles — every round has behavioral questions
  • Key principles to focus on: Customer Obsession, Ownership, Dive Deep, Bias for Action
  • Use the STAR method (Situation, Task, Action, Result) for behavioral answers
  • Coding interviews value working, testable solutions over optimal algorithms
  • System design rounds may involve designing e-commerce or streaming frontend features

Job Search Tips

  • Apply through amazon.jobs — search for 'Front End Engineer' or 'Software Development Engineer'
  • Referrals significantly boost your chances — reach out to Amazon engineers via LinkedIn or mutual connections
  • Amazon hires year-round, but new grad and intern roles often open in late summer and fall — check amazon.jobs regularly for new postings
  • Keep your resume short and precise — recruiters scan quickly, so highlight impact and metrics
  • Focus heavily on Amazon's Leadership Principles, especially Customer Obsession — prepare STAR stories for each principle
  • Prepare for the Online Assessment (OA) which includes coding problems, system design scenarios, and a work-style survey

Interview information is curated from publicly available sources and may not reflect current processes.

All company names and trademarks are the property of their respective owners. JS Guide is not affiliated with, endorsed by, or sponsored by any of the companies listed. Use of company names is for informational and educational purposes only.