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.
О курсе
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.
Программа обучения
- 1 Introduction to System Design
- 2 Requirements & Capacity Estimation
- 3 System Design Process
- 4 Core System Building Blocks
- 5 Client Layer
- 6 Networking Infrastructure
- 7 Edge Layer
- 8 Application Layer
- 9 Data Layer
- 10 Caching Layer
- 11 Messaging & Streaming
- 12 Service Infrastructure
- 13 Observability Systems
- 1 Domain Driven Design
- 2 Event Driven Architecture
- 3 Hexagonal Architecture
- 4 Clean Architecture
- 1 Distributed Systems
- 2 Scaling the Service (Application) Layer
- 3 Data Modeling & Storage Design
- 4 Monitoring & Alerting
- 5 Availability & Reliability
- 6 Security in System Design
- 1 Database
- 2 Memory (JVM / General)
- 3 Concurrency
- 4 CPU & Resource Usage
- 5 Network & Distributed Communication
- 6 Storage & I/O
- 7 Failure Propagation
- 8 Dependency Failures
- 9 Resilience Design
- 10 Scaling & Traffic
- 11 Observability & Operations
- 1 Real-World System Design Case Studies
- 2 System Design Interview & Review Practice
Ближайшие группы
Апрель 30, 2026
Офис
- Дни
- Mon- Thu
- Часы
- 19:00 - 21:00
Май 1, 2026
Гибрид
- Дни
- Tue/Fri
Преподаватели
Вопросы и ответы
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.