CS404BKK
Software System Design

Faculty
Anton Topchii
Senior Backend Developer at Byrd
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
Overview
Modern software applications are very big and complex. However, there are common patterns and approaches to designing architecture that satisfy functional requirements while supporting scalability, consistency, and high availability. In the course, we work out a broad spectrum of important principles and solution patterns for the design of software systems, evaluate existing software systems, and design software systems ourselves. We will also inspect architectures that support real-life big-scale systems: Uber, Yelp, TinyURL, TicketMaster. Discussing these real-life systems, we will follow the path of evolving a system serving tens of users to a system that serves millions of users.
Learning highlights
- Know important general principles of the design of software systems and can apply them.
- Evaluate existing software system designs and implementations based on design principles and patterns.
- Select and implement problem-oriented solutions based on software design patterns.
- Have basic knowledge of how to design software systems.
- Implement a designed software system using modern technologies.
- Gain hands-on experience in designing a system that will be reliable in the face of faults.
- Effectively present and defend their system design.
- Work together to discuss the trade-offs of different solutions.
Course outline
15 classes
Session 1
System design process: main steps
Session 2
Scaling from 10s to millions of users
Session 3
Case study: design TinyURL
Session 4
Case study: design a Distributed key-value store
Session 5
Case study: design TicketMaster
Session 6
Case study: design Sequencer
Session 7
Case study: design Twitter newsfeed
Session 8
Case study: design a Web Crawler
Session 9
Case study: design Job Scheduling
Session 10
Numbers every software engineer needs to know
Session 11
Adding Observability to your system
Session 12
Case study: design Yelp
Session 13
Case study: design Uber
Session 14
DB index deep dive
Session 15
Final presentation
Prerequisites
Course 'Distributed Systems & Clouds' (recommended).
Course 'Building ML Solutions: From System Design to Deployment' (recommended).
Experience building multi-component applications (study projects are ok).
Acquaintance with distributed systems.
Acquaintance with SQL databases
Methodology
The course comprises 6 ECTS, which corresponds to a workload of 180 hours per person (45 hours attendance time, including examinations, 15 hours individual consultations, 120 hours self-study). The course consists of lectures given by the professor as well as case studies of different systems. The common framework for approaching a design will be given in the first session. Each session will consist of a lecture and a quiz based on the lecture. An important part of the course is class discussions and presentations.
Students will work in groups on a final project. The goal of the final project is to develop a system of their choosing. The system can be either an existing one or a new one. Implementation of the system, such as coding, is not required. However, the system design must be detailed enough to allow for its implementation.
Grading
Anton is a proficient software engineer with over 8 years of industry experience. He is currently working as a backend engineer at Byrd GmbH, a European startup providing digital and scalable fulfillment solutions. He earned his Master's degree in Applied Mathematics and Computer Science from the Moscow Institute of Physics and Applied Science. In addition to his professional expertise, he has also contributed to various open-source projects. Anton has previously worked as a mathematics tutor, honing his ability to communicate complex ideas in an understandable manner.
See full profileApply for this course
Software System Design
by Anton Topchii
Total hours
45 Hours
Dates
Oct 19 - Nov 06, 2026
Fee for single course
€1500
Fee for degree students
€750
How to secure your spot
Complete the form below to kickstart your application
Schedule your Harbour.Space interview
If successful, get ready to join us on campus
FAQ