Menu

Developer Experience DX

Learn Developer Experience DX for Platform Engineer for free: roadmap, examples, subskills, and a skill exam.

Published: January 23, 2026 | Updated: January 23, 2026

What is Developer Experience (DX) for Platform Engineers?

Developer Experience (DX) is how easy, fast, and reliable it is for engineers to build, ship, and operate software on your platform. For Platform Engineers, great DX means fewer support tickets, consistent standards, safer deployments, and happier teams. You create golden paths, tools, and guardrails so product teams can focus on features instead of plumbing.

What you will learn

  • Design golden paths: opinionated defaults that speed up delivery while preserving autonomy.
  • Build scaffolding and templates that encode best practices from day one.
  • Create CLIs and internal portals that turn complex tasks into simple commands.
  • Enable self-serve provisioning for services, infra, and secrets with safe guardrails.
  • Standardize observability (logs, metrics, traces) across services.
  • Optimize local dev and inner-loop speed to reduce wait times.
  • Support teams through docs, onboarding, and enablement programs.

Who this is for

  • Platform Engineers building internal platforms or paved roads.
  • Backend Engineers influencing tooling and standards.
  • Tech Leads responsible for delivery speed and quality.

Prerequisites

  • Comfort with Git, CI/CD concepts, and container basics.
  • Basic understanding of cloud/IaC (e.g., Terraform) and service operations.
  • Familiarity with observability fundamentals (logs, metrics, traces).

Learning path (practical roadmap)

  1. Capture the golden path
    • Interview 2–3 teams; list their top friction points.
    • Define the ideal service lifecycle: create → code → test → deploy → observe → iterate.
    • Document one-page standards: language, build, test, release, runtime, observability.
    Mini task

    Write a one-page golden path for a standard microservice, including the expected repo structure and CI stages.

  2. Build service scaffolding
    • Create a template repo with boilerplate app, Dockerfile, CI pipeline, and observability setup.
    • Add input prompts (name, owner, runtime) and generate repo from template.
    Mini task

    Create a template that builds, tests, and publishes a container, then deploys to a staging namespace.

  3. Ship a developer CLI or portal workflow
    • Add commands: new service, run local, test, deploy, open logs.
    • Make commands idempotent and chatty (clear output, helpful errors).
    Mini task

    Implement a dx new-service command that scaffolds a repo and opens a pull request.

  4. Enable self-serve provisioning
    • Use GitOps-style PRs to request infra (databases, topics, buckets) via approved modules.
    • Add policy guardrails and reviewers for safety.
    Mini task

    Define a Terraform module that provisions a staging database with naming conventions and tags.

  5. Standardize observability
    • Embed OpenTelemetry config, log format, health endpoints, and dashboards into templates.
    • Provide a one-click or one-command setup for alerts.
  6. Improve local dev and inner loop
    • Support hot reload, fast unit tests, and minimal mocks.
    • Provide a docker-compose or dev container with consistent tooling.
  7. Documentation and enablement
    • Create concise starter guides, checklists, and troubleshooting pages.
    • Run office hours and track common issues to refine the platform.

Worked examples

1) Service scaffolding: minimal template

Template repo structure:

service-template/
  src/
    app.py
  tests/
    test_health.py
  Dockerfile
  .pipeline/ci.yml
  o11y/otel-config.yaml
  README.md

Example CI pipeline (language-neutral):

# .pipeline/ci.yml
stages:
  - test
  - build
  - publish
  - deploy

variables:
  IMAGE: registry.example.com/${CI_PROJECT_NAME}:${CI_COMMIT_SHA}

jobs:
  test:
    script:
      - make test
  build:
    script:
      - docker build -t ${IMAGE} .
  publish:
    script:
      - docker push ${IMAGE}
  deploy:
    script:
      - ./scripts/deploy.sh --image ${IMAGE} --env staging
2) Developer CLI: dx command

Simple Bash-based CLI that guides users and fails helpfully.

# bin/dx
set -euo pipefail

usage() {
  echo "dx <command>"
  echo "  new-service NAME  - scaffold from template"
  echo "  run               - start local stack"
  echo "  logs              - tail service logs"
}

case "${1:-}" in
  new-service)
    NAME=${2:?"Provide service name"}
    echo "Scaffolding $NAME..."
    cp -r service-template "$NAME"
    git init "$NAME" && echo "Done. Push and open a PR to create repo."
    ;;
  run)
    docker compose up --build
    ;;
  logs)
    docker compose logs -f app
    ;;
  *) usage ;;
esac

Tip: Add dx doctor to check prerequisites (Docker, auth, runtime versions).

3) Self-serve provisioning via GitOps PR

Developers add a request file, and a workflow plans/applies after approval.

# requests/dbs/team-catalog-staging.yaml
resource: postgres_db
name: team_catalog
env: staging
owner: team-catalog
size: small

Terraform module with guardrails:

# modules/postgres_db/main.tf
variable "name" {}
variable "env" {}
variable "owner" {}
variable "size" { default = "small" }

# Naming convention: {env}-{name}
# Tags include owner for cost visibility

Workflow behavior: Lint → Terraform plan → Manual approval → Apply → Post endpoint and credentials to a secure store. All changes traceable via PR history.

4) Standard observability integration

Embed OpenTelemetry and logging defaults in the template.

# o11y/otel-config.yaml
exporters:
  otlp:
    endpoint: http://otel-collector:4317
service:
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [otlp]
    metrics:
      receivers: [otlp]
      exporters: [otlp]
# src/app.py
from flask import Flask
import logging

app = Flask(__name__)
logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s')

@app.route('/health')
def health():
    return {"status": "ok"}, 200

Dashboards and alerts are delivered as reusable templates; teams only set the service name.

5) Local dev stack

Provide a consistent local environment for fast iteration.

# docker-compose.yml
version: '3.8'
services:
  app:
    build: .
    command: make dev
    ports: ["8080:8080"]
    env_file: .env.local
    volumes:
      - ./:/workspace
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: local
      POSTGRES_DB: app
    ports: ["5432:5432"]

Add make dev to enable hot reload and short feedback cycles.

Drills and exercises

  • [ ] Create a template that runs tests, builds an image, and deploys to staging.
  • [ ] Add a dx new-service command that asks for service name and owner.
  • [ ] Define a self-serve workflow that provisions a queue or topic safely.
  • [ ] Implement standardized logging format and a health endpoint.
  • [ ] Measure inner-loop time (edit → run tests) and reduce it by 30%.
  • [ ] Write a one-page onboarding guide that a new hire can complete in 60 minutes.

Common mistakes and debugging tips

Over-customizable templates

Too many options slow users. Default to one golden path and keep advanced knobs behind flags.

Hidden magic

CLIs that do too much without explaining steps cause distrust. Print each step and where artifacts go.

No guardrails in self-serve

Always add policy checks, naming conventions, and approvals for production resources.

Observability as an afterthought

Make logs, metrics, and traces part of templates so services are observable from day one.

Slow local loops

Measure before optimizing. Use hot reload, dependency caching, and small test targets.

Mini project: the golden-path microservice

Goal: Deliver a one-command flow for creating and shipping a production-ready service.

  • Template repo with app, tests, Dockerfile, CI, and o11y defaults.
  • dx new-service scaffolds a repo and opens a PR.
  • Self-serve PR creates a staging database for the service.
  • Local dev uses docker-compose with hot reload.
  • Dashboards and an alert rule are created automatically at first deploy.
Acceptance checklist
  • [ ] New engineers can create a service in under 10 minutes.
  • [ ] First deploy to staging finishes in < 15 minutes.
  • [ ] Logs, metrics, and a health endpoint are visible after deploy.
  • [ ] Self-serve infra changes are tracked via PRs with approvals.

Subskills

  • Service Scaffolding And Templates — Standardize repo structure, CI, runtime, and o11y from the start.
  • CLI Tools And Portals — Provide simple commands and workflows for common tasks.
  • Documentation And Onboarding — Short, task-focused guides and checklists that unblock new hires fast.
  • Self Serve Provisioning Workflows — PR-driven infra requests with policy guardrails.
  • Standard Observability Integration — Logs, metrics, traces baked into templates.
  • Local Dev Environments Basics — Dev containers or compose for consistent, fast local setup.
  • Inner Loop Speed Improvements — Faster tests, hot reload, and caching to shorten feedback cycles.
  • Support And Enablement — Office hours, chat support, and training that scales knowledge.

Practical projects

  • Build a language-agnostic template that passes security, test, and license checks by default.
  • Create a one-page runbook for incident handover embedded in the template README.
  • Implement a "dry-run" mode in your CLI that shows planned actions without executing.
  • Measure onboarding time for a new hire and reduce it by 50% with docs and automation.

Next steps

  • Deepen reliability practices: rollout strategies, progressive delivery, and policy as code.
  • Expand your CLI or portal with audit logs and usage telemetry (privacy-aware).
  • Productize the platform: define SLAs, track satisfaction, and iterate based on feedback.

Developer Experience DX — Skill Exam

This exam checks your understanding of Developer Experience for Platform Engineers. You can take it for free. Anyone can attempt the exam; only logged-in users will have their progress and results saved.Score 70% or higher to pass. You can retake the exam anytime.

8 questions70% to pass

Have questions about Developer Experience DX?

AI Assistant

Ask questions about this tool