System Design & Software Engineering — Skills Plan
Planned skill map for System Design & Software Engineering. The curriculum will be developed and released in stages.
Translate requirements into APIs and data models, then reason about operating systems, caching, queues, distributed trade-offs, resilience, and system-design interviews.
Potential roles: Software Engineer · Backend Engineer · Technical Interview Candidate
Before you start
- Programming and data structures
- Networking and HTTP
- SQL and database basics
What you’ll build
- Design a URL service
- Design an event-processing system
- Review a production architecture
Prerequisites
PLANNED- Programming and data structures
Build the Programming and data structures knowledge needed to follow the System Design & Software Engineering foundations.
- Networking and HTTP
Build the Networking and HTTP knowledge needed to follow the System Design & Software Engineering foundations.
- SQL and database basics
Build the SQL and database basics knowledge needed to follow the System Design & Software Engineering foundations.
Foundations
PLANNED- Requirements and constraints
Explain how Requirements and constraints works and where it fits in the System Design & Software Engineering learning path.
- API and data-model design
Explain how API and data-model design works and where it fits in the System Design & Software Engineering learning path.
- Processes, threads, and operating systems
Explain how Processes, threads, and operating systems works and where it fits in the System Design & Software Engineering learning path.
- Latency, throughput, and availability
Explain how Latency, throughput, and availability works and where it fits in the System Design & Software Engineering learning path.
Core Skills
PLANNED- Caching and queues
Use Caching and queues to implement a working capability and verify its behavior in System Design & Software Engineering.
- Load balancing and service boundaries
Use Load balancing and service boundaries to implement a working capability and verify its behavior in System Design & Software Engineering.
- Relational and NoSQL trade-offs
Use Relational and NoSQL trade-offs to implement a working capability and verify its behavior in System Design & Software Engineering.
- Consistency and transactions
Use Consistency and transactions to implement a working capability and verify its behavior in System Design & Software Engineering.
- Testing and maintainable architecture
Use Testing and maintainable architecture to implement a working capability and verify its behavior in System Design & Software Engineering.
Advanced / Production
PLANNED- Partitioning and replication
Evaluate Partitioning and replication trade-offs against the performance, reliability, and safety needs of System Design & Software Engineering systems.
- Event-driven and distributed systems
Evaluate Event-driven and distributed systems trade-offs against the performance, reliability, and safety needs of System Design & Software Engineering systems.
- Resilience, observability, and security
Evaluate Resilience, observability, and security trade-offs against the performance, reliability, and safety needs of System Design & Software Engineering systems.
- Capacity and cost estimation
Evaluate Capacity and cost estimation trade-offs against the performance, reliability, and safety needs of System Design & Software Engineering systems.
- Architecture decision records
Evaluate Architecture decision records trade-offs against the performance, reliability, and safety needs of System Design & Software Engineering systems.
Real-World Projects
PLANNED- Design a URL service
Deliver a working outcome with Design a URL service, then test it against the project requirements.
- Design an event-processing system
Deliver a working outcome with Design an event-processing system, then test it against the project requirements.
- Review a production architecture
Deliver a working outcome with Review a production architecture, then test it against the project requirements.
Career / Interview Preparation
PLANNED- System design interview framework
Explain your approach to System design interview framework, defend key trade-offs, and discuss what you learned.
- Trade-off communication
Explain your approach to Trade-off communication, defend key trade-offs, and discuss what you learned.
- Behavioral engineering examples
Explain your approach to Behavioral engineering examples, defend key trade-offs, and discuss what you learned.
- Mock design reviews
Explain your approach to Mock design reviews, defend key trade-offs, and discuss what you learned.
Discussion
0Have a better approach? Found something outdated? Share it — your knowledge helps everyone learning here.
