Feb. 11, 2021
· Someone throughout the day will be tasking you on your design skills. They are looking for engineers that can not only work within an existing design platform, but also understand what it takes to build or design a new system or platform from scratch.
· Often, 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 Microsoft. 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.
· Brush up on Software design fundamentals to include object oriented design/Service Oriented Architecture fundamentals.
· Ask clarifying questions, write down the requirements, draw a diagram. What are the trade-offs/advantages to your design?
· Put yourself fin the customer’s shoes