CS414

Faculty
Elena Anyusheva
Freelance Software Engineer
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
Modern software applications are large and complex. However, there are common patterns and approaches to designing architectures that satisfy functional requirements while supporting scalability, consistency, and high availability.
In this course, we will examine architectures that underpin large-scale, real-world systems such as Uber, Yelp, TinyURL, and Ticketmaster. Through analysing these systems, we will trace the evolution of a system serving tens of users into one capable of serving millions.
15 classes
System Design Process: Framework
Case study: Design Twitter Newsfeed
Relational Databases Deep Dive
Case Study: Design TinyURL
Case study: Design TicketMaster
Sharding and Replication Deep Dive
Case study: Design Distributed key-value Store
Kafka Deep Dive
Case study: Design Web Crawler
Full-text Search: ElasticSearch Deep Dive
Case study: Design Yelp
Redis Deep Dive
Case study: Design Uber
Case study: Design a Rate Limiter
Final presentation
Experience building multi-component applications (study projects are ok)
Acquaintance with distributed systems
Acquaintance with SQL databases
The course mainly consists of case studies of different systems. The common framework for approaching a design will be given in the first session.
Students will be working in groups of up to 3 people on a final project. The goal of the final project is to design the system of students’ choice. The system may be their existing or a new project. Implementing the systems, e.g. writing code is not required. However the system design should be detailed enough to implement the system.
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. During practical sessions, students will work with technologies in a Docker container to gain hands-on experience. A homework assignment will be given to reinforce classroom learning.
Elena has 10 years of experience as a Software Engineer. Elena worked at Google, Redpanda and Confluent. Her main interests are distributed systems, data streaming and software architecture. Elena holds a M.S. degree in Applied Mathematics and Informatics from Moscow Institute of Physics and Technology.
See full profileApply for this course
by Elena Anyusheva
Total hours
45 Hours
Dates
Jul 20 - Aug 07, 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
Will I receive a certificate after completion?
Yes. Upon completion of the course, you will receive a certificate signed by the director of the program your course belonged to.
Do I need a visa?
This depends on your case. Please check with the Spanish or Thai consulate in your country of residence about visa requirements. We will do our part to provide you with the necessary documents, such as the Certificate of Enrollment.
Can I get a discount?
Yes. The easiest way to enroll in a course at a discounted price is to register for multiple courses. Registering for multiple courses will reduce the cost per individual course. Please ask the Admissions Office for more information about the other kinds of discounts we offer and what you can do to receive one.