GitHub Pages



Thank you for taking the time to speak with us.

The below tips are intended to enhance your interviewing experience with Amazon.

Amazon—a place where builders can build. We hire the world's brightest minds and offer them an environment in which they can invent and innovate to improve the experience for our customers. We want employees who will help share and shape our mission to be Earth's most customer-centric company. Amazon's evolution from Web site, to e-commerce partner, to development platform, is driven by the spirit of invention that is part of our DNA. We do this every day by solving complex technical and business problems with ingenuity and simplicity. We're making history, and the good news is that we've only just begun.

We Pioneer.

Our engineers tackle some of the most complex challenges in large-scale computing. Software Development Engineers, Technical Program Managers, Test Engineers, and user-interface experts work in small teams across the company to contribute to the e-commerce platform that's used by millions of active Amazon customers and sellers in addition to hundreds of thousands of external developers.

CONTENTS

I. Topic on Programming Language and Coding

II. Topic on System Design

III. Other Technical Topics

IV. STAR Technique

V. General Interview Tips

VI. Amazon Leadership principles

I. Topic on Programming Language and Coding

Programming Languages

We do not require that you know any specific programming language before interviewing for a technical position with Amazon, but familiarity with a prominent language could help while responding to some of the questions. Not only should you be familiar with the syntax of a language like Java, Python, C#, C/C++, or Ruby, Python, but also be familiar with some of the languages’ nuances, such as how memory management works, or the most commonly used collections or libraries, etc.

Data Structures

Most of the work we do involves storing and providing access to data in efficient ways. This necessitates a very strong background in data structures. You’ll be expected to understand the inner workings of common data structures and be able to compare and contrast their usage in various applications. You will be expected to know the runtimes for common operations as well as how they use memory. Wikipedia is a great resource for brushing up on data structures.

Algorithms

Your interview with Amazon will not be focused on rote memorization of algorithms; however, having a good understanding of the most common algorithms will likely make solving some of the questions we ask a lot easier. Consider reviewing traversals, divide and conquer, and any other common algorithms you feel might be worth brushing up on. Knowing the runtimes, theoretical limitations, and basic implementation strategies of different classes of algorithms is more important than memorizing the specific details of any given algorithm.

Coding

Expect to be asked to write syntactically correct code—no pseudo code. If you feel a bit rusty coding without an IDE or coding in a specific language, it’s probably a good idea to dust off the cobwebs and get comfortable coding with a pen and paper. The most important thing a Software Development Engineer does at Amazon is write scalable, robust, and well-tested code. These are the main criteria by which your code will be evaluated, so make sure that you check for edge cases and validate that no bad input can slip through. A few missed commas or typos here and there aren’t that big of a deal, but the goal is to write code that’s as close to production ready as possible. This is your chance to show off your coding ability.

II. Topic on System Design

Systems Design

When interviewing for a Software Development Engineer position at Amazon, you will likely have at least one interview focused on software systems design with more emphasis on Low Level Design. We do encourage our SDE’s to seek inputs for High Level design as it’s good to be aware of the overall application architecture of your project (this is nice to have) 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. If you are suggesting technology to solve a problem, please make sure you understand how that technology works; it is more important that you understand how your solution solves the problem than specific technology solutions. 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.

Often times, software systems need software components, something to store data, something to make decisions (such as business logic) and APIs, component relationships, and data flows. Scaling is a critical component of software design at Amazon. It's important to consider scaling when diagramming and designing your software system. Prior to your interview be sure to research scalability concepts and technology prior to your interview such as caching, load balancing, non-relational databases, micro services and sharding.

Steps in the System Design Interview:

• 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?

• 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.

• Once you have a good idea on the sort of problems the system you are designing is 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 interactions between components.



• Knowledge of Distributed Systems, SOA and n-tiered software architecture is very important is very important in answering system design questions. If you don’t work with this concept regularly, be sure to review them prior to interview.

• Operational performance of your design is important as well. Be prepared to answer the following: How will you ensure this system is working at an acceptable level of performance? If a problem occurs, what will be involved in trouble shooting and resolving it quickly? What are the possible points of failure and how can they be made more robust against failure?

Object-Oriented Design

Using Object-oriented design best practices is one way to build lasting software. You should have a working knowledge of a few common and useful design patterns as well as know how to write software in an object-oriented way, with appropriate use of inheritance and aggregation. You probably won’t be asked to describe the details of how specific design patterns work, but expect to have to defend your design choices.

Databases

Amazon has been at the forefront of the non-relational DB movement. We have made Amazon Web Services such as SimpleDB and DynamoDB available for the developer community that let them easily leverage the benefits of non-relational databases. The more you know about how relational and non-relational databases work and what tradeoffs exist between them, the better prepared you will be. However, we don’t assume any particular level of expertise.

Distributed Computing

Systems at Amazon have to work under very strict tolerances at a high load. While we have some internal tools that help us with scaling, it’s important to have an understanding of a few basic distributed computing concepts. Having an understanding of topics such as service oriented architectures, map-reduce, distributed caching, load balancing, etc. could help you formulate answers to some of the more complicated distributed architecture questions you might encounter.

III. Other Technical Topics

Operating Systems

You won’t need to know how to build your own operating system from scratch, but you should be familiar with some OS topics that can affect code performance, such as: memory management, processes, threads, synchronization, paging, and multithreading.

IV. STAR Technique

The STAR technique (Situation-Task-Action-Result) provides an efficient way to process a behavioral example with a candidate and helps the interviewer dive deep through probing and challenging the candidate’s story. This technique helps interviewers quickly “peel the onion” to uncover individual performance, competencies and results. Since behavioral interviewing with the STAR technique is an art and a science, this session will include writing behavioral interview questions and practicing STAR techniques and assessment skills

|S |SITUATION/TASK - Describe the situation/task you faced and the context of the story |

|T |Answers the questions: where did this occur, when did it happen, why is it important? |

|A |ACTION - What actions did you take? |

| |Answers the questions: what did you personally own, how did you do it, who else was involved? |

|R |RESULTS - How did you measure success for this project? What results did you achieve? |

| |$ Cost savings, revenue generation |

| |# Quantify to understand volume, size, scale |

| |% Percentage change, year over year improvements |

| |( Time to market, implementation time, time savings |

| |( Impact on the customer, the team |

| |( Quality improvements |

V. General Interview Tips

• Be prepared to discuss technologies listed on your resume. For example, if you list Java or Python as technical competencies, you should expect technical question about your experience with these technologies. It’s also helpful to review the job description before your interview to align your qualifications against the job’s specific requirements and responsibilities.

• Please ask questions if you need clarification. We want the interview process to be collaborative. We also want to learn what it would be like to work with you on a day-to-day basis in our open environment. If you are asked a question, but not given enough information to solve the problem, drill down to get the information that you need. If that information isn’t available, focus on how you would attempt to solve the problem given the limited information you have. Often times at Amazon, we have to make quick decisions in the absence of all of the relevant data.

• When answering questions, be as concise and detailed in your response as possible. We realize it’s hard to gauge how much information is too much versus not sufficient enough; an effective litmus test is pausing after your succinct response to ask if you’ve provided enough detail, or if the interviewer would like you to go into more depth.

• We want to hire smart, passionate people. Please reflect on what motivated you to pursue a career with Amazon and be prepared to speak to it. We genuinely want to understand what inspired you to explore an opportunity with us, so we get a better sense of who you are. It’s also appreciated when a candidate has put thought into a few questions for the interviewer. It goes a long way when you’ve taken the initiative to research the company prior to your interview.

VI. Our Leadership Principles

Our Leadership Principles are the foundation of our culture and guide each Amazonian. Whether you are an individual contributor or a manager of a large team, you are an Amazon leader.

Customer Obsession

Leaders start with the customer and work backwards. They work vigorously to earn and keep customer trust. Although leaders pay attention to competitors, they obsess over customers.

Ownership

Leaders are owners. They think long term and don’t sacrifice long-term value for short-term results. They act on behalf of the entire company, beyond just their own team. They never say “that’s not my job.”

Invent and Simplify

Leaders expect and require innovation and invention from their teams and always find ways to simplify. They are externally aware, look for new ideas from everywhere, and are not limited by “not invented here.” As we do new things, we accept that we may be misunderstood for long periods of time.

Are Right, A Lot

Leaders are right a lot. They have strong judgment and good instincts. They seek diverse perspectives and work to disconfirm their beliefs.

Learn and Be Curious

Leaders are never done learning and always seek to improve themselves. They are curious about new possibilities and act to explore them.

Hire and Develop the Best

Leaders raise the performance bar with every hire and promotion. They recognize exceptional talent, and willingly move them throughout the organization. Leaders develop leaders and take seriously their role in coaching others. We work on behalf of our people to invent mechanisms for development like Career Choice.

Insist on the Highest Standards

Leaders have relentlessly high standards - many people may think these standards are unreasonably high. Leaders are continually raising the bar and drive their teams to deliver high quality products, services and processes. Leaders ensure that defects do not get sent down the line and that problems are fixed so they stay fixed.

Think Big

Thinking small is a self-fulfilling prophecy. Leaders create and communicate a bold direction that inspires results. They think differently and look around corners for ways to serve customers.

Bias for Action

Speed matters in business. Many decisions and actions are reversible and do not need extensive study. We value calculated risk taking.

Frugality

Accomplish more with less. Constraints breed resourcefulness, self-sufficiency and invention. There are no extra points for growing headcount, budget size or fixed expense.

Earn Trust

Leaders listen attentively, speak candidly, and treat others respectfully. They are vocally self-critical, even when doing so is awkward or embarrassing. Leaders do not believe their or their team’s body odor smells of perfume. They benchmark themselves and their teams against the best.

Dive Deep

Leaders operate at all levels, stay connected to the details, audit frequently, and are skeptical when metrics and anecdote differ. No task is beneath them.

Have Backbone; Disagree and Commit

Leaders are obligated to respectfully challenge decisions when they disagree, even when doing so is uncomfortable or exhausting. Leaders have conviction and are tenacious. They do not compromise for the sake of social cohesion. However, once a decision is determined, they commit wholly.

Deliver Results

Leaders focus on the key inputs for their business and deliver them with the right quality and in a timely fashion. Despite setbacks, they rise to the occasion and never settle.

We appreciate your interest in Amazon.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download