Skip to main content

The Art of CTO Technology Tree is an interactive AoE-style progression map that visualises maturity across engineering domains — from ad-hoc practices to elite capability — with actionable steps, effort estimates, and cross-domain dependencies.

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
  1. Foundation

    Essential hygiene and basic tooling in place. The minimum needed to build reliably.

  2. Standard

    Consistent practices enforced across teams. Quality is predictable and measurable.

  3. Advanced

    Engineering practices drive velocity. Feedback loops are fast and data-driven.

  4. 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

Interactive view

Other tech trees

Frequently Asked Questions

What is a technology tree?

A technology tree (tech tree) is a visual progression map inspired by strategy games like Age of Empires. It shows capabilities organised by domain (columns) and maturity level (rows), with dependency lines showing what must be achieved before advancing. Each node includes effort estimates, actionable steps, and links to relevant tools.

How do I use the tech tree for my organisation?

Select an organisational tree (like Engineering Org Maturity or Security & Compliance), then mark nodes as completed based on your current state. The tree automatically highlights what is available to work on next based on prerequisites. Click any available node to see the concrete steps required to achieve it.