System Design, Stages of Typical System Design Interview, High Level Design, Detailed Design. And Many More!
This Course is Inspired By The Question : Google Interview Question for Software Engineers!
Brand New Course on System Design!
Topics mentioned in the Course: - Stages of a typical system design interview: functional requirements (API), non-functional requirements, high-level design, detailed design, bottlenecks and tradeoffs.
- Why requirements clarification is so important.
- What questions to ask the interviewer.
- How to design API.
- Non-functional requirements to consider: scalability, performance, availability, consistency, cost.
- How to define a data model.
- How to scale a SQL database.
- Apache Cassandra high-level architecture.
- Data processing concepts: checkpointing, partitioning, in-memory aggregation, deduplication cache,
dead-letter queue, embedded database, state management.
- Data ingestion pipeline concepts: blocking vs non-blocking I/O, buffering and batching, timeouts, retries, exponential backoff and jitter, circuit breaker pattern, software vs hardware load balancing, load balancing algorithms,
DNS, health checking and high availability of load balancers, partition strategy,
hot partitions, client-side and server-side service discovery, single leader replication and leaderless replication, textual vs binary data formats.
- Data retrieval pipeline concepts: time-series data, data rollup, hot storage, cold storage.
- Types of performance testing: load testing, stress testing, soak testing.
- Health monitoring.
- Audit systems.
And Many more!
Who this course is for:
Software Developers who want to learn about System Design Concepts
Computer Science graduates who are new to the System Design world
Developers who are looking for cracking the System Design Interview
Developers who are learning to design pieces of architecture in their day-to-day world
Developers who want to revisit and hone their knowledge on System Design Concepts