amazon prep
Introduction
Positions: software-engineer-new-aws-initiative-seattle
Amazon Ways
- Earn Trust with the customer by making precise, high-bar promises and then keep them.
- Make long-term investments - sometimes at the expense of short term gains.
- Share the good and the bad to help customers make informed decisions.
- Avoid the bland personality that customers typically associate with the big homogenous, corporate Borg.
- Take credit for the impressive things the you do in a way that is subtle and sophisticated.
- Speak to the customer in a tone that is neither boastful nor boring.
- Use specificity when possible and sensible.
- Title the features factually, with a degree of precision.
- Don’t make content look like an Ad.
- Stay away from creating new icons.
Amazon Divisions
- Amazon Devices and Services
- Amazon Marketplace
- Amazon Web Services
- Business Development
- eCommerce
- Kindle, Digital Content and Publishing
- Retail
- Worldwide Operations and Customer Service
Interview Tips
- Be prepared to discuss technologies listed on your resume
- Ask Questions where necessary - collaborate
- Be concise and detailed in your responses - pause and see if the interviewer still wants to hear more on the topic?
- Reflect on how you think a career with Amazon would be mutually beneficial?
- Answer “Why Amazon?” properly - not just a checkbox question.
- Take time and prepare a couple questions for the interviewer.
Leadership Principles
Customer Obsession
Ownership
Invent and Simplify
Are Right, A Lot
Learn and Be Curious
Hire and Develop the Best
Insist on the Highest Standards
Think Big
Bias for Action
Frugality
Earn Trust
Dive Deep
Have Backbone; Disagree and Commit
Deliver Results
SDE Principles
Drive Quality
Have Excellent Functional Skills
Deliver Results
Innovate and Simplify
Have Operational & Customer Focus
Communicate Clearly
Exercise Judgement
Demonstrate Engagement and Teamwork
STAR Approach
Situation / Task
- Describe situation and context of the story
- Where did it occur?
- When did it happen?
- Why is it important?
- Probing
- Why is it important? What was the goal?
- What was the initial scope of the project? What were the challenges?
- What were the risks and potential consequences if nothing happened?
- Challenge
- Why did you choose this story to illustrate a xyz accomplishment?
- What other stories can you think of, to demonstrate xyz?
- Could you come up with a more recent example?
Action
- What actions did you take?
- What did you personally own?
- How did you do it?
- Who else was involved?
- Probing
- Deep probe functional expertise and/or assigned core competency.
- Were you the key driver or project owner?
- What was your biggest contribution? What unique value did you bring?
- What were the most significant obstacles you faced? How did you overcome them?
- Challenge
- What did you do specifically versus the team?
- How did you set priorities… deal with xyz problem… or get manager buy-in?
- What decisions did you challenge? Why? How did you influence the right outcome?
Results
- How did you measure success? What results did you achieve?
- Cost Savings, revenue generation
- Quantify to understand volume, size, scale?
- Percentage change, YoY improvements?
- Time to market, implementation time, time savings?
- Impact on the customer, the team?
- Quality Improvements
- Probing
- Why did you choose to focus on these results? What other results were important?
- You mentioned revenue, what percentage change is that year over year?
- What trade-offs did you have to make to achieve this? (quality, cost, time)
- I’m concerned about… (The time it took, the volume, the customer impact), tell me more…
- Challenge
- What were the lessons learned? What would you have done differently?
- How would you improve the process or result today?
- How would you implement this at Amazon?
- How did these results compare to your actual goals? (refer back to goal stated in Situation)
Technical Topics
Programming Languages:
- Java / Python Syntax
- memory management
- commonly used collections, libraries etc.
Data Structures:
- storing and accessing data efficiently
- inner workings or common data structures and be able to compare and contrast their usage
- runtimes of common operations
- memory usage of common operations
Algorithms
- understanding of common algorithms
- traversals, divide and conquer, other common algos,
- when to use DFS vs BFS, tradeoffs?
- Runtimes, theoretical limitations
- basic implementation strategies of different classes of algorithms
Coding
- Syntactically correct code
- code with pen and paper to practice
- scalable, robust, well tested code
- main criteria for interview, so practice well
- handle edge cases, validate bad inputs
- as close to production as possible.
Object-Oriented Design
- extensible, long-lived, bug free code
- good software design is critical for success
- use object-oriented design principles
- know common and useful design patterns
- use inheritance and aggregation
- not asked how each design pattern works, but should be able to defend.
Databases
- Most software is backed by a data store
- efficiently retrieve and store data
- non relational DB movement, DynamoDB for All
- tradeoffs between relational and non relational DBs
- no expertise assumed
Distributed Computing
- Systems at Amazon run with strict tolerance and high load
- basic distributed systems concepts
- service oriented architectures, map-reduce, distributed caching, load balancing etc.
Operating Systems
- no designing an OS from scratch
- memory management, processes, threads, synchronization, paging, multithreading etc.
Internet Topics
- Amazon is an online business
- how internet works
- browsers, DNS lookups, TCP/IP, socket connections - know basic networking
Machine Learning and AI
- data driven modeling, train/ test protocols, error analysis, statistical significance
- formulate problem as a machine learning problem and propose a solution - include ideas for data sources, annotation, modeling approaches, and potential issues.
- understand basic AI/ML methods and algos
Coding Practice
Leetcode - Amazon top 50 Problems
- Easy - 1: Two Sum
- Easy - 21: Merge Two Sorted Lists
- Easy - 20: Valid Parentheses
- Easy - 121: Best Time to Buy and Sell Stock
- Easy - 937: Reorder Data in Log Files
- Easy - 994: Rotting Oranges
- Easy - 572: Subtree of Another Tree
- Easy - 819: Most Common Word
- Easy - 1099: Two Sum Less Than K
- Medium - 200: Number of Islands
- Medium - 146: LRU Cache
- Medium - 5: Longest Palindromic Substring
- Medium - 3: Longest Substring Without Repeating Characters
- Medium - 138: Copy List with Random Pointer
- Medium - 253: Meeting Rooms II
- Medium - 973: K Closest Points to Origin
- Medium - 380: Insert Delete GetRandom O(1)
- Medium - 49: Group Anagrams
- Medium - 240: Search a 2D Matrix II
- Medium - 127: Word Ladder
- Medium - 348: Design Tic-Tac-Toe
- Medium - 347: Top K Frequent Elements
- Medium - 692: Top K Frequent Words
- Medium - 957: Prison Cells After N Days
- Medium - 103: Binary Tree Zigzag Level Order Traversal
- Medium - 545: Boundary of Binary Tree
- Medium - 456: 132 Pattern
- Medium - 1268: Search Suggestions System
- Medium - 694: Number of Distinct Islands
- Medium - 1167: Minimum Cost to Connect Sticks
- Medium - 866: Prime Palindrome
- Medium - 1102: Path With Maximum Minimum Value
- Medium - 1152: Analyze User Website Visit Pattern
- Hard - 42: Trapping Rain Water
- Hard - 1192: Critical Connections in a Network
- Hard - 23: Merge k Sorted Lists
- Hard - 273: Integer to English Words
- Hard - 297: Serialize and Deserialize Binary Tree
- Hard - 642: Design Search Autocomplete System
- Hard - 295: Find Median from Data Stream
- Hard - 212: Word Search II
- Hard - 140: Word Break II
- Hard - 460: LFU Cache
- Hard - 239: Sliding Window Maximum
- Hard - 126: Word Ladder II
- Hard - 472: Concatenated Words
- Hard - 99: Recover Binary Search Tree
- Hard - 588: Design In-Memory File System
- Hard - 1044: Longest Duplicate Substring
- Hard - 1000: Minimum Cost to Merge Stones