Node.js / TypeScript
Weekly Goalsβ
- System Design
- Learn a structured approach to system design interviews.
- Design scalable REST APIs for realistic services.
- Understand service boundaries, API gateways, and basic load balancing concepts.
- Backend Practice
- Map system designs back to your Node.js projects (from projects.md).
- DSA
- Maintain 2β3 problems/day (mixed).
- Theory
- Tie HTTP, networking, and DB concepts into system design decisions.
Use with:
Weekly Overview Tableβ
| Day | Focus |
|---|---|
| 1 | System design interview framework |
| 2 | Designing scalable REST APIs (generic patterns) |
| 3 | API gateway, service boundaries, versioning |
| 4 | Design: Note-taking / Task management backend |
| 5 | Design: URL shortener (full system) |
| 6 | Connect system design to existing project |
| 7 | Weekly review & one full mock design |
Day 1 β System Design Interview Frameworkβ
4-Hour Planβ
-
Block 1 (Concepts β 60β75 min)
- Learn a generic framework:
- Clarify requirements (functional/non-functional).
- Define APIs and core use cases.
- High-level components and data flow.
- Storage choices, caching, queues.
- Scalability (replication, sharding, load balancing).
- Reliability, observability, security.
- Learn a generic framework:
-
Block 2 (Template Creation β 60 min)
- Create a system design template in a markdown file:
- Sections: Requirements, API design, Data model, High-level design, Detailed components, Bottlenecks, Trade-offs.
- Create a system design template in a markdown file:
-
Block 3 (DSA β 60 min)
- 2β3 mixed problems.
-
Block 4 (Review β 30 min)
- Add this template to your repo for reuse during practice.
6-Hour Planβ
- Add:
- Practice (60 min):
- Use the template to sketch a rough design for a trivial service (e.g., feature flag service).
- Practice (60 min):
Day 2 β Designing Scalable REST APIs (Patterns)β
4-Hour Planβ
-
Block 1 (Concepts β 60β75 min)
- Study patterns:
- Resource naming (
/users,/users/{id}/orders). - Pagination, filtering, sorting.
- Idempotency (e.g.,
PUT,DELETE, idempotency keys). - Error handling and standard error formats.
- Resource naming (
- Study patterns:
-
Block 2 (Design Exercises β 60 min)
- Design APIs for:
- User management.
- Authentication session management.
- Use your system design templateβs API section.
- Design APIs for:
-
Block 3 (DSA β 60 min)
- 2β3 problems focusing on arrays/strings or hash maps.
-
Block 4 (Review β 30 min)
- Document your API design guidelines in a separate note.
6-Hour Planβ
- Add:
- Refinement (60 min):
- Compare your API designs with well-known public APIs (conceptually).
- Refinement (60 min):
Day 3 β API Gateway, Service Boundaries, Versioningβ
4-Hour Planβ
-
Block 1 (Concepts β 60β75 min)
- Learn:
- Monolith vs microservices (high-level).
- API gateway responsibilities.
- Service boundaries: when to split services.
- Versioning strategies (
/v1, headers, backward compatibility).
- Learn:
-
Block 2 (Diagramming β 60 min)
- Draw ASCII diagrams:
Client
|
v
API Gateway
| \
v v
User Service Order Service Notification Service
-
Block 3 (DSA β 60 min)
- 2β3 mixed problems.
-
Block 4 (Review β 30 min)
- Identify potential service boundaries in one of your projects (from projects.md).
6-Hour Planβ
- Add:
- Service decomposition exercise (60 min):
- For a chosen project (e.g., SaaS backend), write down proposed services and their responsibilities.
- Service decomposition exercise (60 min):
Day 4 β Design: Note-Taking / Task Management Backendβ
4-Hour Planβ
-
Block 1 (Requirements β 45β60 min)
- Clarify:
- Users, notes/tasks, tags, sharing (if any).
- Non-functional: availability, consistency needs, scale assumptions.
- Clarify:
-
Block 2 (Design β 90 min)
- Use your template to design:
- APIs (CRUD, list, search).
- Data model (MySQL or MongoDB).
- High-level architecture (single service + DB + cache).
- Use your template to design:
-
Block 3 (Review β 30β45 min)
- Identify:
- Where youβd cache.
- Where youβd introduce background jobs later (e.g., reminders).
- Identify:
6-Hour Planβ
- Add:
- Implementation mapping (60 min):
- Sketch how to implement this design using your existing Node stack.
- Implementation mapping (60 min):
Day 5 β Design: URL Shortener (Full System)β
4-Hour Planβ
-
Block 1 (Requirements β 45β60 min)
- Functional:
- Shorten long URLs.
- Redirect short β long.
- Track click counts.
- Non-functional:
- High read traffic.
- Low latency redirects.
- Functional:
-
Block 2 (Design β 90 min)
- Cover:
- API design (
POST /shorten,GET /:code). - Data model (codes, long URLs, stats).
- Components:
- App servers.
- DB (MySQL/Mongo).
- Redis for caching.
- Load balancer / API gateway.
- API design (
- Cover:
-
Block 3 (Review β 30β45 min)
- Discuss:
- How to generate codes (base62, uniqueness).
- Where to use caching and why.
- Discuss:
6-Hour Planβ
- Add:
- Scaling considerations (60 min):
- Discuss sharding strategies for DB.
- Consider read replicas.
- Scaling considerations (60 min):
Day 6 β Connect System Design to Your Projectβ
4-Hour Planβ
-
Block 1 (Mapping β 60β75 min)
- Pick one project from projects.md (e.g., URL shortener or SaaS backend).
- Map:
- System design components β actual modules/services youβd implement.
-
Block 2 (Implementation Planning β 60 min)
- Create a short implementation roadmap:
- Milestones for implementing key services and endpoints.
- Create a short implementation roadmap:
-
Block 3 (DSA β 60 min)
- 2β3 problems.
-
Block 4 (Review β 30 min)
- Update project README with high-level architecture diagram and notes.
6-Hour Planβ
- Add:
- Small code changes (60 min):
- Adjust your current Node project structure slightly to better reflect the design.
- Small code changes (60 min):
Day 7 β Weekly Review & One Full Mock Designβ
4-Hour Planβ
-
Block 1 (Review β 60β75 min)
- Revisit:
- System design framework.
- API design patterns.
- Service boundaries examples.
- Revisit:
-
Block 2 (Mock Design β 60β75 min)
- Time-box:
- 45β50 min to design a system (e.g., note-taking app or URL shortener) using your template.
- 15β20 min to review and refine.
- Time-box:
-
Block 3 (DSA β 30β45 min)
- 1β2 problems (light).
6-Hour Planβ
- Add:
- Self-interview (45β60 min):
- Verbally walk through your design as if presenting to an interviewer.
- Self-interview (45β60 min):