0% found this document useful (0 votes)
204 views1 page

Systems Design Preparation

The document provides guidance on preparing for and answering systems design questions during interviews for software engineering roles at Amazon. It emphasizes that the interview will involve interactively designing a software system in response to questions from the interviewer. Candidates should practice designing systems by hand and consider scalability, distributed systems, and software architecture concepts. When answering, candidates should ask clarifying questions, list requirements, and diagram components and connections on a whiteboard.

Uploaded by

selva
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
204 views1 page

Systems Design Preparation

The document provides guidance on preparing for and answering systems design questions during interviews for software engineering roles at Amazon. It emphasizes that the interview will involve interactively designing a software system in response to questions from the interviewer. Candidates should practice designing systems by hand and consider scalability, distributed systems, and software architecture concepts. When answering, candidates should ask clarifying questions, list requirements, and diagram components and connections on a whiteboard.

Uploaded by

selva
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Answering the Systems Design Question

When interviewing for a Software Development Engineer, a Software Development Manager, or a Technical Program
Manager position at Amazon, you will likely have at least one interview focused on software systems design. This is a very
important interview, so it’s critical to prepare for it thoroughly. You’ll know when you’re being asked the systems design
question because you’ll be asked to design a software system. Answering this question will be very interactive; the
interviewer will ask you lots of questions related to the design and you are encouraged to ask the interviewer any necessary
questions to complete your design. It helps to think out loud and take hints from the interviewer. You will most likely be
diagramming your design on a white board, so if you have access to a white board at home (or even just a pen and paper),
writing these sort of designs out by hand can be great practice.

Important Topics to Review Prior to Your Interview

 Often times, software systems need software components, something to store data, something to make decisions
(such as business logic) and APIs or processes. Reviewing software systems design diagrams (especially SOA or
distributed software systems) can be helpful for preparation
 Scaling is a critical component of software design at Amazon. It’s important to consider scaling when diagramming
and designing your software system. Be sure and research scalability concepts and technology prior to your interview
such as caching, load balancing, non-relational databases, microservices and sharding.
 Knowledge of distributed systems, SOA, and n-tiered software architecture is very important in answering systems
design questions. If you don’t work with these concepts regularly, be sure to review them prior to your interview.

Steps in the Systems Design Interview


1. Ask clarifying questions; while the interviewer won’t try to trick you, they might be intentionally vague. It’s important
to know what sort of design the interviewer is looking for, so ask questions. When asking your questions, start with
the customer in mind. Who is the customer and what problem are you solving for them?
2. As you ask clarifying questions, begin writing a list of requirements on the board. This should typically be the first
thing you add to the white board.
3. Once you have a good idea on the sort of problems the system you are designing are supposed to solve, begin
drawing a diagram on the white board to express your ideas. A great way to do this is to draw shapes to represent
different software components and data sources and then arrows connecting them to show web services, APIs, and
processes connecting them.

4. Be prepared to discuss trade-offs in your design. With any software system there are multiple ways to design it. What
advantages would yours have? Disadvantages? What if you were to change a component or process? Be prepared to
discuss these questions.

You might also like