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 · Architecture

Cloud Native Journey

Evolve your application architecture from a monolithic codebase to a fully cloud-native, serverless platform. Each node represents a concrete capability with steps, effort estimates, and the cross-track dependencies that mirror real-world migration sequencing.

Maturity tiers
  1. Monolith

    A single deployable unit. Simple to start but increasingly painful to scale, test, and release independently.

  2. Services

    The monolith is broken into coarse-grained services with defined APIs, containerised and deployed independently.

  3. Microservices

    Fine-grained services with independent data stores, orchestrated by a scheduler, and hardened for partial failure.

  4. Serverless

    Functions and managed services handle compute. The platform scales to zero, costs track usage, and ops overhead is minimal.

Tracks

  • Architecture

    How the application is structured, decomposed, and how components communicate.

  • Deployment

    How software is packaged, shipped, and updated in production.

  • Resilience

    How the system detects, tolerates, and recovers from failures.

  • Scale

    How the system handles growing load, data volume, and global distribution.

All capabilities (16)

Monolith

  • Basic CI Pipeline

    Every commit triggers an automated build, lint, and test run. A failing build blocks the merge — the prerequisite for safe, frequent deployments.

    ci · automation · foundation

  • Health Check Endpoints

    Every service exposes a liveness and readiness endpoint so load balancers and orchestrators can route traffic only to healthy instances.

    health-check · resilience · observability

  • Horizontal Scaling

    The application runs as multiple identical instances behind a load balancer. Stateless design (sessions externalised) makes this safe to enable.

    scaling · stateless · load-balancing

  • Modular Monolith

    Organise the codebase into well-defined internal modules with enforced boundaries. A modular monolith is far easier to decompose into services later than an unstructured one.

    monolith · ddd · modularisation · foundation

Services

  • API Gateway

    A single, managed entry point routes external requests to downstream services, handles authentication, rate limiting, and protocol translation.

    api-gateway · ingress · security

  • Containerisation

    Services are packaged as OCI-compliant container images. Immutable, versioned images eliminate environment drift and enable consistent deploys.

    docker · containers · devops

  • Database per Service

    Each service owns its own datastore. Shared databases are the most common source of coupling that prevents independent deployments and team autonomy.

    database · decoupling · ddd · strangler-fig

  • Structured Logging & Tracing

    All services emit JSON-structured logs with correlation IDs. Distributed traces link operations across service boundaries, making failure diagnosis fast.

    observability · logging · tracing · opentelemetry

Microservices

  • Circuit Breakers

    Calls to unstable dependencies are wrapped in circuit breakers that open when failure rates spike, preventing cascading failures across the service graph.

    circuit-breaker · resilience · fault-tolerance

  • Container Orchestration

    Kubernetes (or an equivalent) schedules containers across a node pool, manages restarts, rolling updates, resource limits, and service discovery.

    kubernetes · orchestration · k8s · helm

  • Horizontal Pod Autoscaling

    The orchestrator automatically adjusts replica counts based on CPU, memory, or custom metrics. Services absorb traffic spikes without manual intervention.

    autoscaling · hpa · keda · kubernetes

  • Service Mesh

    A sidecar-based mesh (Istio, Linkerd) manages mTLS encryption, traffic shaping, retries, and observability between services without application code changes.

    service-mesh · mtls · istio · linkerd

Serverless

  • Chaos Engineering

    Controlled experiments inject failures — pod kills, network latency, disk saturation — into production to verify that the system's resilience assumptions hold under real conditions.

    chaos-engineering · resilience · gameday

  • Edge Computing

    Computation and caching are pushed to the network edge, co-located with users. Static assets, personalisation logic, and geolocation-aware routing happen before requests reach the origin.

    edge · cdn · cloudflare · latency

  • Event-Driven Architecture

    Services communicate by publishing and subscribing to domain events on a durable message bus. Temporal decoupling enables independent scaling and replay for new consumers.

    event-driven · kafka · pubsub · async

  • Serverless Functions

    Stateless, event-triggered functions (Lambda, Cloud Functions, Cloudflare Workers) handle burst workloads, background jobs, and integration glue without managing servers.

    serverless · lambda · faas · workers

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.