- Low-Level Design (LLD): To showcase your object-oriented modeling, abstraction, and design patterns—critical when they test "depth over scale."
- High-Level Design (HLD): To round out your system design coverage with real-world architectural themes (multi-region, observability, rate limiting, etc.).
Let’s structure each into focused 2-week sprints.
Demonstrate mastery in OOP principles, clean abstractions, design patterns, and testable modular code. You’re not just writing classes—you’re modeling behavior like a Principal.
- SOLID Principles in practice (not theory)
- Composition vs. Inheritance
- Interfaces, Abstract classes, Polymorphism
- Design patterns: Strategy, Observer, Factory, Decorator
-
Parking Lot Design
- Model parking floors, vehicle types, pricing strategy
- Use: Strategy pattern for pricing, Observer for ticket updates
-
Rate Limiter
- Token bucket or sliding window algorithm
- Extend to support distributed (multi-node) limits
-
Elevator System
- Emphasize abstraction: Request, Control, Movement
- Use State pattern (Idle, Moving, DoorOpen)
- Class diagrams (UML or PlantUML)
- Code snippets (Java preferred, use interfaces and tests)
- 1 Mock LLD session (with me)
- DRY, KISS, YAGNI in real code
- Dependency Injection, IoC
- Extensibility over modification
- Testing strategies: mocking, test doubles, contract tests
-
Notification System
- Abstract Email, SMS, Push
- Use: Factory + Strategy patterns
-
Chess or Tic-Tac-Toe
- Emphasize rules, players, board state, turns
- Use: Command pattern (for undo/redo), Observer (game events)
-
Cache Library
- Eviction policies: LRU, LFU
- Thread-safe, extensible via interfaces
- One fully tested module (e.g., rate limiter or cache)
- One test plan showing how you design for edge cases
- 1 Mock code walkthrough (how you’d explain your LLD in an interview)
Address commonly under-explored but critical architectural themes. These make you stand out as a Principal—not just as someone who can “design Twitter,” but who understands scalability, observability, and resilience at scale.
- API Gateway vs. Service Mesh
- Authentication/Authorization patterns (JWT, OAuth2, token rotation)
- Rate Limiting and Throttling
- Feature Flags, Canary Deployments, Rollbacks
- Circuit Breakers, Retry Patterns (Resilience)
- Design Discussion: How would you build an API Gateway from scratch?
- Real-World Framing: How did you secure and govern access to 20k+ apps? (Use your Wayfair/Meta work)
- Observability Strategy: metrics, logs, traces, alerts
- Multi-region Active-Active vs Active-Passive
- Data Migration and Backfill Strategies
- Schema Evolution and Backward Compatibility
- Cost-aware Architecture: Trade-off performance vs spend
- Architecture Whiteboard: Design a multi-region notification service with failover and monitoring
- Personal Project Tie-in: How did you use multi-layer caching to save 22k compute hours?
You'll have:
- 6+ modeled LLD problems (fully abstracted, testable)
- 2-3 mock interviews for LLD and HLD
- Architecture plans for authN/z, observability, API rate-limiting
- Talking points mapped to your real projects at Meta, Wayfair, and Coinflip