I've worked in DevOps for more than four years and feel comfortable with many of the fundamentals, but I want to improve at designing real production systems. Specifically, I'd like to understand how to choose an appropriate architecture and technology stack for a particular problem, including the trade-offs involved. What books, courses, projects, or other resources would you recommend for learning system design in a practical and well-rounded way?
5 Answers
Books such as Alex Xu’s System Design Interview series are useful because they teach through concrete examples. They won’t make you an expert by themselves, but they help you learn which questions to ask and which trade-offs to consider.
The most valuable learning usually comes from examining systems that already exist. Look at failures, painful deployments, observability gaps, networking problems, and infrastructure choices in your own environment. Ask why those decisions were made and what alternatives would change. Building projects helps too, but understanding an existing production system is often the faster path to practical experience.
Roadmaps and prepared material can give you direction, but system design is highly dependent on context. The right choice changes with requirements such as scale, reliability, latency, consistency, cost, and team capability. Use resources to learn the common patterns, then practice explaining why a particular design fits a specific situation.
A good starting point is the System Design Primer. It covers the major building blocks, common architectures, and trade-offs in a structured way. There are also several video courses that walk through system-design examples, which can make the material easier to absorb.
Study the fundamentals behind the designs: SQL versus NoSQL data models, replication, consistency, caching strategies, leader election, logical versus physical time, and streaming versus batch processing. Reading influential papers such as the Google File System and Amazon Dynamo papers can also explain why many modern systems are designed the way they are.

Books and videos are still useful for building a foundation, especially if your workplace is too busy to provide much mentoring. Combine structured study with small projects and questions about real systems rather than relying on either approach alone.