A tailored course, built for your situation
Sources and specific examples on hand when peers push back
Build unshakable reasoning for your technical choices, backed by frameworks, real-world implementations, and documented tradeoffs.
The situation this course is for
Engineers often make sound calls but struggle when questioned, especially under time pressure or cross-team scrutiny. Without documented reasoning or precedents, even correct decisions can appear subjective or fragile.
Who this is for
Senior ICs and technical leads who own architecture and implementation decisions but face increasing scrutiny from peers, new hires, or adjacent teams
Who this is not for
Junior developers, managers looking for team process tools, or those not involved in technical decision-making
What you walk away with
- Map every technical decision to a clear framework (e.g., CAP theorem tradeoffs, idempotency patterns, failure boundary strategies)
- Pull from a curated library of real-world implementations (Shopify, Stripe, GitHub, etc.) to support your reasoning
- Document decision rationales using a lightweight, repeatable template used in top-tier tech orgs
- Anticipate pushback angles based on organisational incentives and technical constraints
- Reference specific sources, RFCs, post-mortems, design docs, papers, when defending choices in writing or discussion
The 12 modules (with all 144 chapters)
- Defining defensibility in engineering
- Objective vs preference in technical design
- When consensus isn’t the goal
- Tradeoffs as first-class artefacts
- The role of precedent in decision-making
- Mapping decisions to business constraints
- Identifying stakeholder incentives
- Common reasoning gaps in PRs and RFCs
- How much documentation is enough
- Versioning your decisions over time
- Using public post-mortems as reference
- Building a personal decision catalogue
- CAP theorem in modern systems
- When eventual consistency wins
- PACELC vs real latency budgets
- Idempotency patterns in practice
- Failure domain boundaries
- Choosing replication strategies
- Latency vs durability tradeoffs
- Consensus algorithms beyond Raft
- Eventual vs strong consistency use cases
- Backpressure implementation models
- Circuit breaker decision trees
- Retry budget frameworks
- Analysing Shopify’s checkout architecture
- Stripe’s idempotency key design
- GitHub’s global Git operations
- Meta’s async migration patterns
- Airbnb’s service decomposition
- Netflix’s fault injection model
- Uber’s geospatial sharding
- Discord’s real-time delivery
- Figma’s CRDT implementation
- Notion’s block-level sync
- Linear’s optimistic UI decisions
- Vercel’s edge function routing
- Lightweight ADR templates
- When to write a full RFC
- Embedding decisions in PR templates
- Versioning system for design docs
- Linking decisions to monitoring
- Using Notion for decision tracking
- Automating decision log updates
- Tagging for discoverability
- Cross-linking related decisions
- Summarising for non-experts
- Archiving outdated decisions
- Making decisions searchable
- Common pushback: over-engineering
- Handling 'we did it differently'
- Responding to performance concerns
- Dealing with security team objections
- Navigating legacy system constraints
- Pushback from newer team members
- When product wants faster delivery
- Ops team reliability concerns
- Cost implications of architecture
- Scaling assumptions under pressure
- Urgency vs durability debates
- Balancing innovation and stability
- How to cite a paper in Slack
- Referencing internal post-mortems
- Linking to public RFCs
- Using Google Scholar in context
- Citing AWS Well-Architected
- Pulling from ACM Queue articles
- Quoting system design blogs
- When to link to GitHub issues
- Referencing conference talks
- Using arXiv for distributed systems
- Citing company tech blog posts
- Attributing team-specific learnings
- Preparing for RFC feedback
- Structuring review comments
- Responding to vague feedback
- When to escalate vs compromise
- Using data in review debates
- Highlighting precedent in PRs
- Defending against edge-case objections
- Managing senior engineer pushback
- Balancing speed and scrutiny
- Handling cross-team review delays
- Documenting review decisions
- Closing feedback loops
- Organising by problem type
- Tagging for quick retrieval
- Saving public system designs
- Starring key GitHub repos
- Archiving useful Twitter threads
- Curating engineering blog feeds
- Using Pocket for long reads
- Exporting Notion as PDF
- Sharing read-later lists
- Automating bookmark backups
- Linking to internal knowledge
- Updating outdated references
- Onboarding with decision context
- Pairing on rationale during PRs
- Running post-launch retros
- Documenting for new hires
- Presenting tradeoffs in meetings
- Using diagrams to explain choices
- Creating internal workshops
- Writing learning snippets
- Mentoring through decision-making
- Explaining legacy constraints
- Teaching framework application
- Scaling your judgment
- When to revisit a decision
- Monitoring for drift
- Updating documentation after incidents
- Re-evaluating due to scale changes
- Handling technology deprecation
- Revisiting due to team turnover
- Reassessing due to new requirements
- Archiving obsolete justifications
- Flagging decisions for review
- Using metrics to trigger updates
- Communicating changes to stakeholders
- Versioning rationale over time
- Highlighting decisions in reviews
- Including rationale in portfolios
- Presenting at internal tech talks
- Writing cross-team proposals
- Mentoring junior engineers
- Scoping technical leadership
- Leading architecture initiatives
- Contributing to RFC processes
- Shaping standards across teams
- Influencing tooling choices
- Driving consistency without mandate
- Being the go-to for tough calls
- Choosing a current decision to document
- Defining the problem clearly
- Listing constraints and goals
- Evaluating alternatives
- Selecting a path forward
- Writing the initial rationale
- Gathering peer feedback
- Incorporating objections
- Finalising the decision log
- Sharing with stakeholders
- Preparing for future review
- Adding to your reference library
How this maps to your situation
- When you're drafting an RFC
- During code review debates
- After a system incident
- Before a cross-team architecture meeting
Before vs. after
What's included with your purchase
- 12 modules with 12 chapters each (144 chapters)
- Downloadable templates and worked examples for every module
- Hand-built implementation playbook delivered alongside course access
- 30-day money-back guarantee
Delivery and format
- Course and learning environment access provisioned within 24 hours of purchase
- Hand-built implementation playbook delivered alongside course access
Format: Text-based modules and chapters in the Art of Service learning environment, plus downloadable templates and worked examples for every chapter, plus the hand-built implementation playbook delivered alongside course access.
Time investment: Approximately 3-4 hours per module, designed to be completed alongside regular work over 4-6 weeks.
How this compares to the alternatives
Unlike generic software engineering courses, this focuses exclusively on the defensibility of decisions, how to structure, support, and sustain technical judgment in real-world settings.
Frequently asked
Within 24 hours your account in the learning environment is provisioned and the tailored implementation playbook is delivered alongside it.