Software Architecture & System Design | Ingress Academy

Software Development

Software Architecture & System Design

This training provides a practical foundation in software architecture and system design for scalable, reliable, and maintainable systems. Software architecture and system design are critical for building systems that can scale with growth, remain reliable under load, and evolve as business requirements change. Strong architectural decisions help organizations reduce technical debt, improve system stability, and deliver products faster and more safely. Throughout the program, participants will learn how to evaluate architectural trade-offs, document decisions using Architecture Decision Records (ADRs), and balance factors such as scalability, reliability, complexity, and cost. The program covers the full system design lifecycle — from requirements analysis and capacity estimation to distributed systems, scalability, reliability, and security — supported by real-world examples, case studies, and design discussions that highlight practical trade-offs used in real systems.

Beginner Online 12 weeks 48 hours Next group: April 30, 2026

About this course

This training provides a practical foundation in software architecture and system design for scalable, reliable, and maintainable systems. Software architecture and system design are critical for building systems that can scale with growth, remain reliable under load, and evolve as business requirements change. Strong architectural decisions help organizations reduce technical debt, improve system stability, and deliver products faster and more safely. Throughout the program, participants will learn how to evaluate architectural trade-offs, document decisions using Architecture Decision Records (ADRs), and balance factors such as scalability, reliability, complexity, and cost. The program covers the full system design lifecycle — from requirements analysis and capacity estimation to distributed systems, scalability, reliability, and security — supported by real-world examples, case studies, and design discussions that highlight practical trade-offs used in real systems.

Training program

Download program
  1. 1 Introduction to System Design
  2. 2 Requirements & Capacity Estimation
  3. 3 System Design Process
  4. 4 Core System Building Blocks
  5. 5 Client Layer
  6. 6 Networking Infrastructure
  7. 7 Edge Layer
  8. 8 Application Layer
  9. 9 Data Layer
  10. 10 Caching Layer
  11. 11 Messaging & Streaming
  12. 12 Service Infrastructure
  13. 13 Observability Systems
  1. 1 Domain Driven Design
  2. 2 Event Driven Architecture
  3. 3 Hexagonal Architecture
  4. 4 Clean Architecture
  1. 1 Distributed Systems
  2. 2 Scaling the Service (Application) Layer
  3. 3 Data Modeling & Storage Design
  4. 4 Monitoring & Alerting
  5. 5 Availability & Reliability
  6. 6 Security in System Design
  1. 1 Database
  2. 2 Memory (JVM / General)
  3. 3 Concurrency
  4. 4 CPU & Resource Usage
  5. 5 Network & Distributed Communication
  6. 6 Storage & I/O
  7. 7 Failure Propagation
  8. 8 Dependency Failures
  9. 9 Resilience Design
  10. 10 Scaling & Traffic
  11. 11 Observability & Operations
  1. 1 Real-World System Design Case Studies
  2. 2 System Design Interview & Review Practice

Upcoming groups

April 30, 2026

Office

Apply
Days
Mon- Thu
Hours
19:00 - 21:00

May 1, 2026

Hybrid

Apply
Days
Tue/Fri

Instructors

FAQ

This course is tailored for experienced software engineers who already have a strong development background and want to level up in system design. It's ideal for those aiming to architect reliable, scalable systems and prepare for senior-level or FAANG-style design interviews.

Yes. You’ll receive personalized feedback, pair programming guidance, architecture reviews, and have access to instructors and peers throughout the entire course.

You'll build a fully functional chat system — a Slack clone — from scratch. This includes features like direct messaging, group chats, message search, pagination, read/unread indicators, and WebSocket-based real-time communication.

All sessions are fully hands-on, delivered in a collaborative peer programming style. You'll work side-by-side with instructors and other participants to design, implement, and test every component of the system.

You’ll gain deep experience in building scalable backend systems: real-time architecture, event-driven design, distributed caching, message queues, search indexing, and data modeling for high-throughput applications.

This is an advanced course — best suited for engineers with solid software development experience. It assumes familiarity with backend fundamentals, APIs, databases, and clean code practices.

Yes. The course uses real-world problems and design scenarios to prepare you for high-stakes system design interviews. By building a production-grade Slack clone, you’ll gain confidence in both theory and practice.

You’ll work with technologies commonly used in scalable messaging systems: Spring Boot, Redis, PostgreSQL, Kafka, Elasticsearch, WebSockets, Docker, and more.

Unlike theoretical-only programs, this course is practical, project-based, and hands-on. You don’t just design diagrams — you build and deploy real services collaboratively.

You’ll implement core features like message delivery, unread count tracking, mentions, search, cursor-based pagination, conversation threading, user presence, and system observability.