Build judgment across the software lifecycle.

Learn to frame problems, implement change, operate software, shape architecture, design systems, and make reviewable technical decisions.

Six connected engineering stages represented by a problem spark, code, production signals, modular architecture, system network, and balanced decisions

Six connected capabilities.

Use this as a learning map, not a required sequence. Start with the capability that matches the work in front of you.

Go deeper when you need it.

Open a full map for study or review.

Problem Solving

Turn an unclear request into a problem that can be explained, bounded, and tested.

Understand
  • Outcomes and constraints
  • Ambiguity and assumptions
  • Scope and acceptance evidence
Why it matters

The team can agree on what matters, what is excluded, and what would prove success.

How to practice

Ask questions that expose conflicting interpretations. Split work into independently testable outcomes.

Work through: Work with incomplete information, competing needs, and feedback that changes the original framing.

Common failure: Starting from the requested solution before the problem and success signal are understood.

Evidence to keep: Problem frame, examples, exclusions, open questions, validation signal, and decision owner.

Software Engineering

Translate intent into maintainable behavior with explicit contracts, boundaries, and failure meaning.

Understand
  • Cohesion and dependency direction
  • API and state contracts
  • Testing and error semantics
Why it matters

Software remains correct, understandable, and safe to change after the first release.

How to practice

Implement invariants at their owning boundary. Refactor without weakening behavior evidence.

Work through: Change unfamiliar code, review trade-offs, and maintain behavior across evolving requirements.

Common failure: Using abstractions or patterns because they look mature rather than because they protect a real variation or risk.

Evidence to keep: Readable contracts, focused tests, explicit failure behavior, review findings, and bounded technical debt.

Production Engineering

Move change to users with traceability, observable risk, and an executable recovery path.

Understand
  • Delivery and quality gates
  • Observability and operational risk
  • Rollback, repair, and reconciliation
Why it matters

Changes can be released, observed, stopped, and recovered by named owners.

How to practice

Map release risk to credible checks and signals. Contain harm and recover authoritative state.

Work through: Operate releases, investigate failures, and learn from production consequences rather than only test environments.

Common failure: Treating a successful build, merge, or deployment as evidence that user impact is safe.

Evidence to keep: Traceable artifact, release decision, rollout signals, stop authority, recovery test, and outcome verification.

Software Architecture

Shape ownership and dependency boundaries so the system can evolve under repeated pressure.

Understand
  • Boundaries and modularity
  • Integration semantics
  • Quality attributes and evolutionary cost
Why it matters

The system contains change, makes ownership clear, and evolves from evidence rather than prediction.

How to practice

Align responsibility, state authority, and operations. Compare the simplest credible structures under the same constraints.

Work through: See how structural choices affect multiple changes, teams, incidents, and future migration cost.

Common failure: Introducing distributed or fashionable structures before observed pressure justifies their coordination cost.

Evidence to keep: Boundary map, dependency rules, quality scenarios, trade-offs, owner, and evolution trigger.

System Design

Convert workload, reliability, security, cost, and team constraints into a testable system shape.

Understand
  • Capacity and quality scenarios
  • Data flow and state authority
  • Partial failure and recovery
Why it matters

A team can explain why the design fits, how it fails, and which evidence will validate it.

How to practice

Quantify design-driving assumptions. Trace critical paths, retries, and reconciliation.

Work through: Design across changing demand, unreliable dependencies, operational limits, and competing quality attributes.

Common failure: Drawing components before the workload, ownership, failure path, and decision drivers are explicit.

Evidence to keep: Measured assumptions, system context, critical flows, alternatives, failure model, and validation plan.

Technical Decision Making

Make consequential choices reviewable, reversible where possible, and open to new evidence.

Understand
  • Decision drivers and trade-offs
  • Residual risk and authority
  • Reconsideration and replacement
Why it matters

Technical choices remain understandable and challengeable after the original participants leave.

How to practice

Compare credible alternatives fairly. Connect consequences to owners, validation, and review triggers.

Work through: Decide under uncertainty, observe consequences, revise assumptions, and supersede earlier choices without erasing context.

Common failure: Recording a technology announcement with no alternatives, negative consequences, or condition for reconsideration.

Evidence to keep: Context, alternatives, decision, positive and negative consequences, owner, validation, and replacement history.

Can you explain the change before asking others to trust it?

  • What outcome and constraint shape the work?
  • Which boundary owns the behavior and state?
  • How can the change fail in production?
  • Which evidence supports release and recovery?
  • What would cause the decision to be reconsidered?

Use these questions during planning, implementation, review, and operation. Scale the depth to the consequence and uncertainty of the change.