Tech Tree · Engineering
Engineering Excellence
Build a foundation of technical craft that enables speed without sacrificing quality. Progress from essential hygiene through standardised practices to elite engineering culture, with concrete steps at every stage.
Maturity tiers
Foundation
Essential hygiene and basic tooling in place. The minimum needed to build reliably.
Standard
Consistent practices enforced across teams. Quality is predictable and measurable.
Advanced
Engineering practices drive velocity. Feedback loops are fast and data-driven.
Elite
Engineering excellence is a competitive advantage. The organisation learns and adapts faster than any single team.
Tracks
Code Quality
The practices and tooling that keep the codebase readable, consistent, and healthy.
CI/CD
How code moves safely and quickly from a developer's machine to production.
Review
How knowledge is shared, quality is verified, and decisions are made through code and architecture review.
Documentation
How knowledge is captured, structured, and kept current so any engineer can be effective.
Observability
How you understand what your systems are doing in production — logs, metrics, traces, and alerting.
Security
How security is embedded into the development lifecycle rather than bolted on at the end.
Testing
The depth and breadth of automated testing that gives confidence to ship fast.
Platform
Internal tooling and developer platform that multiplies every engineer's effectiveness.
All capabilities (35)
Foundation
Automated Code Formatting
A formatter (Prettier, Black, gofmt) enforces a single code style automatically, eliminating style debates in code review and reducing cognitive load when reading unfamiliar code.
formatting · prettier · code-style · dx
Basic CI Pipeline
Every pull request triggers a CI run that builds the project, runs linting, and executes the test suite. A red build blocks the merge.
ci · github-actions · automation · devops
Dependency Scanning
Every build scans dependencies for known CVEs and blocks deployment of high-severity vulnerabilities.
security · dependencies · sca
Linting & Static Analysis
Automated linters (ESLint, Ruff, golangci-lint) catch bugs, style violations, and security anti-patterns on every save and commit, eliminating entire categories of review comments.
linting · static-analysis · code-quality · automation
Local Dev Setup
A single command gets any engineer from zero to a working local environment in under 15 minutes, with all services, databases, and seed data.
dx · platform · onboarding
PR Template & Checklist
A pull request template prompts authors to describe their change, link the ticket, list testing steps, and confirm they have considered security and performance implications.
code-review · pr-template · process
README & Onboarding Docs
Every repository has a README that enables a new engineer to build, test, and run the service locally within 30 minutes without asking anyone for help.
documentation · onboarding · readme · dx
Structured Logging
All services emit structured JSON logs with consistent fields — request ID, user ID, service name — making logs searchable and correlatable across the stack.
logging · observability
Unit Testing
Every module has unit tests covering the happy path and key edge cases, providing a fast feedback loop for developers.
testing · unit-tests
Standard
Code Review Standards
The engineering handbook defines what reviewers should focus on, how to give constructive feedback, and how quickly reviews must be completed — turning code review from a bottleneck into a learning tool.
code-review · standards · developer-culture
Continuous Delivery Pipeline
The CI pipeline extends to automated deployment to staging on every merge to main. Promotion to production requires a manual approval gate and runs in under 30 minutes.
cd · deployment · automation · devops
Dependency Management & SCA
Dependencies are pinned, audited for known CVEs automatically, and updated on a regular cadence using Dependabot or Renovate, preventing supply chain incidents.
dependencies · security · sca · renovate
Integration Testing
Services are tested against real dependencies (databases, queues, APIs) using containers, catching integration bugs that unit tests miss.
testing · integration · containers
Metrics & Dashboards
Key system and business metrics are collected, visualised, and reviewed regularly so teams can spot trends before they become incidents.
metrics · dashboards · observability
Operational Runbooks
Every production service has runbooks covering common failure scenarios, alert responses, and on-call procedures — enabling any engineer to respond effectively without prior context.
runbooks · operations · on-call · documentation
Secrets Management
Secrets are stored in a vault (not code), rotated automatically, and audited — eliminating the class of incidents caused by leaked credentials.
security · secrets · vault
Service Templates
New services are bootstrapped from opinionated templates that include CI, logging, health checks, and deployment config out of the box.
platform · templates · dx
Test Coverage Gates
Coverage thresholds are enforced in CI, preventing regressions from merging untested code. Coverage reports highlight gaps in critical paths.
testing · coverage · ci · quality-gates
Type Safety & Contracts
Strict typing (TypeScript strict mode, mypy, Go generics) catches integration errors at compile time and provides living documentation of function signatures and data shapes.
typescript · type-safety · contracts · code-quality
Advanced
Architecture Decision Records
Significant technical decisions are documented as lightweight ADRs (Architecture Decision Records) stored alongside the code, giving future engineers the context to understand why the system is built the way it is.
adr · architecture · documentation · decision-making
Codebase Health Metrics
Quantitative metrics — coupling, complexity, churn, duplication — are tracked over time and surface the areas of the codebase most at risk of becoming unmaintainable.
codebase-health · metrics · tech-debt · refactoring
Developer Portal
A Backstage-style portal gives every engineer a single pane of glass for service catalogue, docs, API specs, and ownership.
platform · backstage · developer-portal
Distributed Tracing
Requests are traced end-to-end across services with OpenTelemetry, making it possible to pinpoint latency bottlenecks and failure points in complex call chains.
tracing · opentelemetry · observability
DORA Metrics Tracking
Deployment frequency, lead time for changes, change failure rate, and MTTR are instrumented and reviewed weekly, providing a data-driven view of engineering delivery performance.
dora · metrics · measurement · devops
E2E Testing
Critical user journeys are covered by end-to-end tests (Playwright, Cypress) that run against staging on every deploy.
testing · e2e · playwright
SAST & DAST
Static and dynamic application security testing runs in CI, catching injection, XSS, and auth flaws before they reach production.
security · sast · dast · appsec
Trunk-based Development
Engineers commit small changes directly to main (or short-lived branches under 24 hours), using feature flags to hide incomplete work — enabling multiple daily deployments without merge conflicts.
trunk-based-development · feature-flags · dora · velocity
Elite
Anomaly Detection
ML-powered anomaly detection surfaces issues before alerts fire, catching slow-burn regressions that static thresholds miss.
anomaly-detection · ml-ops · observability
Architecture Review Forum
A standing cross-team forum reviews ADRs, evaluates technology bets, and maintains the engineering radar — ensuring technical decisions reflect organisational strategy, not individual preferences.
architecture · governance · technology-radar · collaboration
Automated Refactoring & Codemods
Large-scale refactoring (API renames, library migrations, deprecation removal) is automated using codemods (jscodeshift, ast-grep, LibCST), enabling engineers to apply changes across thousands of files in minutes.
codemods · refactoring · automation · scale
Chaos Engineering
Controlled failure injection (Chaos Monkey, Litmus) in production validates that the system degrades gracefully under real-world fault conditions.
testing · chaos-engineering · resilience
Internal Tech Talks & Learning
A regular cadence of internal tech talks, post-incident reviews, and reading groups creates a learning organisation where knowledge compounds and engineering quality improves continuously.
learning · knowledge-sharing · culture · documentation
Progressive Delivery
Feature releases are automated canary or ring-based rollouts with automatic rollback triggered when SLO error budgets are breached — shipping to 100% of users takes zero human intervention.
progressive-delivery · canary · feature-flags · slo · elite
Self-Service Infra
Engineers provision databases, queues, and environments through a self-service UI or CLI — no tickets, no waiting for platform team.
platform · self-service · infrastructure
Threat Modelling
Every new feature and architecture change goes through a lightweight threat model — identifying attack surfaces before code is written.
security · threat-modelling · architecture