Software Development Managers own the design, development, testing, deployment, and maintenance of the company’s software applications, systems, and technology projects. As a manager, you own building, managing, focusing, developing and engineering teams that meet the needs of the business and work well with other stakeholders and engineers. You draw from a deep and broad technical expertise to mentor engineers and provide leadership on complex technology issues in the company. While you may possess deep technical skills, you spend the majority of your time building great software by directing and managing the engineers who work for you. To sum up a Software Development Manager is a hybrid of system designer, people manager, roadmap/customer satisfaction driver, and a project manager.
Want to become an SDM at Amazon? Let’s walk through some helpful tips for the interview process.
Be familiar with of a few common and useful design patterns to solve scalability, security, latency, availability, refactoring and sustainability of the product.
Research scalability concepts and technology (i.e. caching, load balancing, redundancy, micro services and sharding).
Highlight your experience in combining a deep, cross-functional business understanding with a long term, strategic context when making technology decisions across groups.
- Do you have examples of building strong relationships withstakeholders?
Be able to design a system at a high level. Be comfortable diving deep in to specific areas.
Be prepared to share narratives from your experience to highlight your contribution towards project ownership, management and operational excellence.
Be prepared to talk about specifics around your project management experience:
- How do you ensure that your effort stays on track?
- How do you handle situations where your launch date is in jeopardy?
- Are you aware of the biggest risks you are managing? How are youmitigating the risks?
Be prepared to talk about data-driven decisions:
- How do you use data to drive design decisions?
- How do you determine the effectiveness of your solutions?
- How do you assess system quality?
Have anecdotes ready to show if you are you able to work collaboratively with stakeholders to create a roadmap, articulate vision, make prioritization decisions, and make customer orientated feature tradeoffs. Have anecdotes ready from your experiences to highlight the core competencies of a people manager. Are you passionate about growing people’s careers? Have you managed under performers?
Often times, software systems need software components, something to store data, something to make decisions (i.e. business logic) and API’s, component relationships, and data flows. Reviewing software system design diagrams (i.e. SOA or distributed software systems) can be helpful for preparation.
Scaling is a critical component of software design at Amazon. Be familiar with common techniques to create scalable and highly available systems. This would include the use of data redundancy, fault tolerance, and horizontal scaling.
Write a list of requirements on the board, and keep asking questions. This should be the first thing you write out.
Be prepared to white board. Practice diagramming a design on a white board or even using pen and paper.
Interact with your interviewer and dig for clarification. Your interviewer will not try to trick you. Questions may be intentionally vague to push your innovation.
Keep the customer front of mind. Who is the customer, and what problem are you solving for them?
Begin drawing a diagram once you've done enough digging to begin white boarding your system design solution. Start with shapes to represent different software components and data sources, and then arrows connecting them to show web services, APIs, and interactions between components.
Our application and interview process differs from role to role, but whether you are having a phone interview or a video/in-person Interview you can expect us to cover 3 main topics:
In order to get further prepared you can:
- Explore Interviewing at Amazon.
- Brush up on Comp-sci fundamentals, Data Structures and Algorithms.
- Do as many coding exercises as possible on Project Euler, Hacker Rank, Leet Code, Code-fights, Interview-bit.
- Watch the preparation videos below:
Amazon Leadership Principles
This video provides valuable insight to help you be successful when interviewing for Amazon’s Leadership Principles.
Amazon Coding Sample
This video dives into a coding example and how candidates should approach, analyze and solve such problems when interviewing at Amazon.
Amazon System Design Preparation
This video tackles a system design example question and how candidates should approach, analyze and solve such technical questions.