FullStackFSCCafé
 
 
Sign in with GoogleSign in with Google. Opens in new tab
Kill Your Tech Interview
3877 Full-Stack, Algorithms & System Design Interview Questions
Answered To Get Your Next Six-Figure Job Offer
      

Top 90 Software Architecture Interview Questions

Entry Junior Mid Senior Expert
Sign in with GoogleSign in with Google. Opens in new tab
Topic Progress:

Theoretical Questions

Q1:   

What Is CAP Theorem?

  Related To: CAP Theorem
Add to PDF   Entry 
Q2:   

What Is Load Balancing?

  Related To: Load Balancing
Add to PDF   Entry 
Q3:   

What do you mean by lower latency interaction?

  Related To: WebSockets
Add to PDF   Junior 
Q4:   

What Is A Cluster?

  
Add to PDF   Junior 
Q5:   

Why Do You Need Clustering?

  
Add to PDF   Junior 
Q6:   

What defines a software architect?

  
Add to PDF   Junior 
Q7:   

What does the expression “Fail Early” mean, and when would you want to do so?

  
Add to PDF   Junior 
Q8:   

What Is Scalability?

  Related To: Scalability
Add to PDF   Junior 
Q9:   

Why use WebSocket over HTTP?

  Related To: WebSockets
Add to PDF   Junior 
Q10:   

Define Microservice Architecture

  Related To: Microservices
Add to PDF   Junior 
Q11:   

What do you understand by Clean Architecture approach?

  Related To: Clean Architecture
Add to PDF   Junior 
Q12:   

What is Test Driven Development?

  Related To: Agile & Scrum
Add to PDF   Junior 
Q13:   

What is meant by the KISS principle?

  
Add to PDF   Junior 
Q14:   

What is Domain Driven Design?

  Related To: DDD
Add to PDF   Junior 
Q15:   

Why is it a good idea for “lower” application layers not to be aware of “higher” ones?

  Related To: Layering & Middleware
Add to PDF   Junior 
Q16:   

What is a Model in DDD?

  Related To: DDD
 Add to PDF   Mid 
Q17:   

What is Domain in DDD?

  Related To: DDD
 Add to PDF   Mid 
Q18:   

In OOP, what is the difference between the Repository Pattern and a Service Layer?

  Related To: ASP.NET, ASP.NET MVC, Design Patterns, ASP.NET Web API
 Add to PDF   Mid 
Q19:   

Is Unit Of Work equals Transaction? Or it is more than that?

  Related To: Design Patterns
 Add to PDF   Mid 
Q20:   

Explain the Single Responsibility Principle (SRP)?

  
 Add to PDF   Mid 
Q21:   

What is difference between Fault Tolerance and Fault Resilience?

  
 Add to PDF   Mid 
Q22:   

What is the difference between Concurrency and Parallelism?

  Related To: Concurrency
 Add to PDF   Mid 
Q23:   

What does program to interfaces, not implementations mean?

  Related To: Design Patterns
 Add to PDF   Mid 
Q24:   

What is the difference between DTOs and ViewModels in DDD?

  Related To: DDD
 Add to PDF   Mid 
Q25:   

What Is Load Balancing Fail Over?

  Related To: Load Balancing
 Add to PDF   Mid 
Q26:   

What are the DRY and DIE principles?

  
 Add to PDF   Mid 
Q27:   

What does SOLID stand for? What are its principles?

  
 Add to PDF   Mid 
Q28:   

Is it better to return NULL or empty values from functions/methods where the return value is not present?

  
 Add to PDF   Mid 
Q29:   

Name some Performance Testing metrics to measure

  Related To: Software Testing
 Add to PDF   Mid 
Q30:   

"People who like this also like... ". How would you implement this feature in an e-commerce shop?

  
 Add to PDF   Mid 
Q31:   

How can you keep one copy of your utility code and let multiple consumer components use and deploy it?

  
 Add to PDF   Mid 
Q32:   

Name some Performance Testing best practices

  Related To: Software Testing
 Add to PDF   Mid 
Q33:   

Name some benefits of CQRS Pattern

  Related To: DDD, Design Patterns
 Add to PDF   Mid 
Q34:   

Describe what is the Event Sourcing Pattern

  Related To: DDD, Design Patterns
 Add to PDF   Mid 
Q35:   

Explain what is Interface Segregation Principle (ISP) in Clean Architecture and what are some of its benefits?

  Related To: Clean Architecture
 Add to PDF   Mid 
Q36:   

WebSockets vs Rest API for real time data? Which to choose?

  Related To: API Design, WebSockets, REST & RESTful
 Add to PDF   Mid 
Q37:   

What is the difference between Monolithic, SOA and Microservices Architecture?

  Related To: Microservices, SOA
 Add to PDF   Mid 
Q38:   

What Is Session Replication?

  
 Add to PDF   Mid 
Q39:   

What Is Middle Tier Clustering?

  Related To: Layering & Middleware
 Add to PDF   Mid 
Q40:   

How Do you update a live heavy traffic site with minimum or Zero Down Time?

  Related To: Availability & Reliability, DevOps
 Add to PDF   Mid 
Q41:   

What Is ACID Property Of A System?

  Related To: Databases
 Add to PDF   Mid 
Q42:   

What Is Sticky Session Load Balancing? What Do You Mean By "Session Affinity"?

  Related To: Load Balancing
 Add to PDF   Mid 
Q43:   

Explain the purpose of Clean Architecture Inner and Outer layers

  Related To: Clean Architecture, Layering & Middleware
 Add to PDF   Mid 
Q44:   

What is Back-Pressure?

  Related To: Availability & Reliability
 Add to PDF   Mid 
Q45:   

What is Elasticity (in contrast to Scalability)?

  Related To: Scalability
 Add to PDF   Mid 
Q46:   

What Do You Mean By High Availability (HA)?

  Related To: Availability & Reliability
 Add to PDF   Mid 
Q47:   

What is the Command and Query Responsibility Segregation (CQRS) Pattern?

  Related To: DDD, Design Patterns
 Add to PDF   Mid 
Q48:   

What is the difference between the Clean and the N-Tier Architectures?

  Related To: Clean Architecture
 Add to PDF   Mid 
Q49:   

What is the difference between Behavior-Driven Development (BDD) vs Domain-Driven Design (DDD)?

  Related To: DDD
 Add to PDF   Mid 
Q50:   

What does it mean "System Shall Be Resilient"?

  Related To: Availability & Reliability
 Add to PDF   Mid 
Q51:   

What is Bad Design?

  
 Add to PDF   Mid 
Q52:   

Compare Onion vs Clean vs Hexagonal Architectures

  Related To: Clean Architecture
 Add to PDF   Senior 
Q53:   

What is relationship between Repository and Unit of Work?

  Related To: Design Patterns, Entity Framework
 Add to PDF   Senior 
Q54:   

What is Unit test, Integration Test, Smoke test, Regression Test and what are the differences between them?

  Related To: Software Testing, Unit Testing
 Add to PDF   Senior 
Q55:   

How do you off load work from the Database?

  Related To: Databases
 Add to PDF   Senior 
Q56:   

Explain what is Cache Stampede

  Related To: Caching
 Add to PDF   Senior 
Q57:   

Compare "Fail Fast" vs "Robust" approaches of building software

  Related To: Availability & Reliability
 Add to PDF   Senior 
Q58:   

What will you choose: Repository Pattern or "smart" business objects?

  Related To: Design Patterns
 Add to PDF   Senior 
Q59:   

Is Repository Pattern as same as Active Record Pattern?

  Related To: Design Patterns
 Add to PDF   Senior 
Q60:   

How should I be grouping my Repositories when using Repository Pattern?

  Related To: Design Patterns
 Add to PDF   Senior 
Q61:   

What is the Dependency Inversion Principle (DIP) and why is it important?

  Related To: Dependency Injection
 Add to PDF   Senior 
Q62:   

What is GOD class and why should we avoid it?

  
 Add to PDF   Senior 
Q63:   

Two customers add a product to the basket in the same time whose the stock was only one (1). What will you do?

  Related To: Concurrency
 Add to PDF   Senior 
Q64:   

Explain Failure in contrast to Error

  Related To: Availability & Reliability
 Add to PDF   Senior 
Q65:   

Provide Definition Of Location Transparency

  
 Add to PDF   Senior 
Q66:   

What Is Sharding?

  Related To: Databases
 Add to PDF   Senior 
Q67:   

Why layering your application is important? Provide some bad layering example.

  Related To: Layering & Middleware
 Add to PDF   Senior 
Q68:   

What's the difference between principles YAGNI and KISS?

  
 Add to PDF   Senior 
Q69:   

Why should you structure your solution by components?

  Related To: Layering & Middleware
 Add to PDF   Senior 
Q70:   

What is BASE property of a system?

  Related To: Databases, NoSQL
 Add to PDF   Senior 
Q71:   

Defend the monolithic architecture.

  
 Add to PDF   Senior 
Q72:   

How to handle exceptions in a layered application?

  Related To: Layering & Middleware
 Add to PDF   Senior 
Q73:   

Why should I isolate my domain entities from my presentation layer?

  Related To: Layering & Middleware
 Add to PDF   Senior 
Q74:   

What is actor model in context of a programming language?

  
 Add to PDF   Senior 
Q75:   

What Is IP Address Affinity Technique For Load Balancing?

  Related To: Load Balancing
 Add to PDF   Senior 
Q76:   

Explain threads to your grandparents

  
 Add to PDF   Senior 
Q77:   

Are you familiar with The Twelve-Factor App principles?

  
 Add to PDF   Expert 
Q78:   

What does Amdahl's Law mean?

  Related To: Reactive Systems
 Add to PDF   Expert 
Q79:   

What is the most accepted transaction strategy for microservices?

  Related To: Microservices
 Add to PDF   Expert 
Q80:   

Can we use the CQRS without the Event Sourcing?

  Related To: DDD, Design Patterns
 Add to PDF   Expert 
Q81:   

What is the difference between Cohesion and Coupling?

  Related To: Microservices
 Add to PDF   Expert 
Q82:   

What Is Shared Nothing Architecture? How Does It Scale?

  
 Add to PDF   Expert 
Q83:   

Why is writing software difficult? What makes maintaining software hard?

  
 Add to PDF   Expert 
Q84:   

Where DTO should be implemented, in a Domain Layer or in an Application Service Layer? Explain.

  Related To: DDD, Layering & Middleware
 Add to PDF   Expert 
Q85:   

What are heuristic exceptions?

  
 Add to PDF   Expert 
Q86:   

What are best practices for caching paginated results whose ordering/properties can change?

  Related To: Caching
 Add to PDF   Expert 
Q87:   

Cache miss-storm: Dealing with concurrency when caching invalidates for high-traffic sites

  Related To: Caching
 Add to PDF   Expert 
Q88:   

How do I test a private function or a class that has private methods, fields or inner classes?

  Related To: Unit Testing
 Add to PDF   Expert 
Q89:   

What Does Eventually Consistent Mean?

  Related To: Databases
 Add to PDF   Expert 

Code Challenges

Q1:   

Could you provide an example of the Single Responsibility Principle?

  
  Add to PDF   Senior 
 

Rust has been Stack Overflow’s most loved language for four years in a row and emerged as a compelling language choice for both backend and system developers, offering a unique combination of memory safety, performance, concurrency without Data races...

Clean Architecture provides a clear and modular structure for building software systems, separating business rules from implementation details. It promotes maintainability by allowing for easier updates and changes to specific components without affe...

Azure Service Bus is a crucial component for Azure cloud developers as it provides reliable and scalable messaging capabilities. It enables decoupled communication between different components of a distributed system, promoting flexibility and resili...

Cosmos DB has gained popularity among developers and organizations across various industries, including finance, e-commerce, gaming, IoT, and more. Follow along and learn the 24 most common and advanced Azure Cosmos DB interview questions and answers...
More than any other NoSQL database, and dramatically more than any relational database, MongoDB's document-oriented data model makes it exceptionally easy to add or change fields, among other things. It unlocks Iteration on the project. Iteration f...
Unit Tests and Test Driven Development (TDD) help you really understand the design of the code you are working on. Instead of writing code to do something, you are starting by outlining all the conditions you are subjecting the code to and what outpu...
Domain-Driven Design is nothing magical but it is crucial to understand the importance of Ubiquitous Language, Domain Modeling, Context Mapping, extracting the Bounded Contexts correctly, designing efficient Aggregates and etc. before your next DDD p...
At its core, Microsoft Azure is a public cloud computing platform - with solutions including Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) that can be used for services such as analytics, virtual c...
As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applications. Follow along to refresh your knowledge and explore the 52 most frequently asked and advanced Node JS Interview Questions and Answers every...
Dependency Injection is most useful when you're aiming for code reuse, versatility and robustness to changes in your problem domain. DI is also useful for decoupling your system. DI also allows easier unit testing without having to hit a database and...