Phase 7 · Professional PortfolioModule 52~90 min read

System Design & Portfolio Review

Present architecture decisions, tradeoffs, reliability targets, threat models, diagrams, demos, and evidence as a professional Node.js portfolio.

What you'll learn

Senior-level work is visible in clarified requirements, explicit tradeoffs, failure-aware diagrams, quantified capacity, security and reliability targets, and evidence that the implemented system behaves as claimed.

By the end of this lesson, you'll be able to:

  • Lead a structured system-design discussion
  • Estimate capacity and identify bottlenecks
  • Document tradeoffs with ADRs
  • Present projects through evidence and reflection

Core mental model

Node.js becomes easier when you separate the JavaScript language from the runtime and the operating-system capabilities it exposes. Use this table as a decision guide.

ConceptWhat it meansDecision rule
ConstraintA fixed limit shaping designClarify scale, consistency, latency, security, cost, and team context first
TradeoffA benefit purchased with a costCompare options against requirements, not fashion
ADRA durable architecture decision recordCapture context, choice, alternatives, consequences, and revisit trigger

Professional workflow

Build and verify Node.js programs from the terminal in small, observable steps.

  1. Define the system design narrative boundary: inputs, outputs, invariants, ownership, and expected failures.
  2. Design the data or message contract before choosing implementation details.
  3. Implement the smallest correct path with dependencies passed explicitly.
  4. Add validation, failure translation, cleanup, and concurrency behavior.
  5. Verify the boundary with realistic data and at least one adversarial case.
  6. Measure or observe the behavior before optimizing or extracting abstractions.

Keep the feedback loop short

Run the smallest useful command after every meaningful change. Read the complete error message before editing again, and keep inputs and outputs visible while you learn.

Guided code lab

Write a decision that can be reviewed

An ADR preserves the reasoning and the condition that should trigger reconsideration.

adr-007-job-delivery.md
# Use at-least-once queue delivery

Context: exports may take 10 minutes and must survive API restarts.
Decision: durable queue, idempotent job key, exponential backoff, dead-letter review.
Alternatives: in-process tasks (not durable); exactly-once claim (not available end to end).
Consequences: handlers tolerate duplicates; operations owns queue-age and DLQ alerts.
Revisit when: sustained volume exceeds 500 jobs/second.

Production practice

Contract

A design explains requirements, APIs, data model, high-level components, critical flows, scale estimates, failure modes, security, observability, and tradeoffs.

Verification

Walk through normal, peak, dependency-failure, regional-failure, compromise, deploy, rollback, and data-recovery scenarios.

Operations

Keep diagrams and runbooks near code, review ADR triggers, measure portfolio links, and remove secrets or customer data from demos.

Common failure mode

Listing technologies without connecting them to requirements and failure modes sounds broad but does not demonstrate engineering judgment.

Independent workshop

Prepare a 20-minute portfolio and system-design review covering all three professional projects.

Your finished workshop must include:

  • Requirement brief
  • Context/container diagrams
  • Capacity estimate
  • Three ADRs
  • Threat/reliability review
  • Demo script and retrospective

Definition of done

Run the happy path and at least two edge cases, keep responsibilities separated, and add a short README explaining how to run the program.

Recap & quick check

Key takeaways

  • Clarify before designing
  • Numbers expose bottlenecks
  • Tradeoffs need context
  • Failure paths belong in diagrams
  • Evidence makes experience credible

Quick check

1. What should a design discussion start with?

2. What belongs in an ADR?

3. What makes a portfolio story strong?

Next: Keep building: specialize, contribute, mentor, and revisit these systems at greater scale.