Learning paths
- System Design — A structured system design learning path covering foundations, data, consistency, caching, messaging, and reliability—curated by Shubham Jain.
- System Design Interview — Prepare for system design interviews with a structured answering framework, rate limiter and URL shortener designs, and reliability patterns.
- Distributed Systems — Learn distributed systems: CAP, consistency models, replication, quorums, locks, sagas, and messaging—sequenced for backend engineers.
- Java Backend Engineering — Java backend path: collections, concurrency, JVM, and Spring Boot production practices for senior engineers.
- Spring Boot — Spring Boot production path: DI, MVC REST, JPA transactions, security, testing, and common anti-patterns.
- Kafka & Event Streaming — Kafka learning path: architecture, partitions, exactly-once semantics, ordering, Streams, and practical deduplication.
- Software Architecture — Software architecture path: clean architecture, DDD, SOLID, API design, microservices boundaries, and twelve-factor baselines.
- Payments Architecture — Payment platform architecture: idempotency, reconciliation, SEPA lifecycle, and reliability patterns for money-moving systems.
- Platform Engineering — Platform engineering path: Kubernetes fundamentals, Azure services for Java backends, CI/CD, and developer experience.
- Staff Engineering — Staff engineer path: technical leadership, architecture judgment, multi-region decisions, observability, and operational excellence.
Shubham Jain
· Learning Lab