Roles
Pick a job. See the tools that job really uses: must have, every day, good to know.
How to read a role card
Each card is one job. The colored strip shows which kinds of tools the job leans on. Must have is what you can't do the job without, Every day is what you touch daily, Good to know is worth learning next. Hover a tool to light it up on every card that uses it; click it to compare.
The same roles as a table
| Role | What they do | Must have | Every day | Good to know |
|---|---|---|---|---|
| Backend Engineer | Writes the APIs and services behind the app, and the database they use. | docker-desktop, docker-compose, testcontainers, flyway, sqlalchemy | compose-watch, wiremock, github-actions, sentry, direnv, prisma | flisk, tilt, localstack, minio, pact |
| Frontend Engineer | Builds the screens people click on, and makes them fast and clean. | vite, pnpm, nextjs, msw, nvm | esbuild, turborepo, npm, github-actions, sentry, rollup | astro, playwright-mcp, netlify-cli, vercel-cli |
| Full-stack Engineer | Builds the screen, the API and the database for one feature, alone. | nextjs, pnpm, docker-compose, prisma, vite | docker-desktop, drizzle, msw, github-actions, sentry, supabase-cli | flisk, mailpit, ngrok, create-t3-app, vercel-cli |
| Mobile Engineer | Builds phone apps for iOS and Android, and wires them to a backend. | swiftpm, gradle, msw, mockoon, ngrok | wiremock, firebase-emulators, github-actions, homebrew, sentry | mailpit, toxiproxy, convex, cloudflare-tunnel |
| Java / JVM Engineer | Writes server code in Java or Kotlin, usually with Spring or Quarkus. | spring-boot, maven, gradle, sdkman, testcontainers | quarkus, docker-compose, flyway, liquibase, jib, github-actions | micronaut, buildpacks, dive |
| Python Backend Engineer | Writes server code in Python, usually with FastAPI or Django. | uv, fastapi, django, sqlalchemy, alembic | pyenv, docker-compose, testcontainers, moto, pydantic-ai, github-actions | poetry, pixi, mailpit, just |
| .NET Engineer | Writes server code in C#, often several services that talk to each other. | ef-core, nuget, aspire, docker-desktop, azurite | docker-compose, testcontainers, azure-functions-core-tools, github-actions, bicep | dapr, semantic-kernel, microsoft-agent-framework, tye |
| PHP / WordPress Developer | Builds sites and apps in PHP, Laravel or WordPress. | laravel, laravel-sail, composer, ddev, local-wp | lando, laravel-herd, docker-compose, mailpit, github-actions | docksal, ngrok, nvm, vite |
| Ruby / Rails Engineer | Builds web apps with Rails, from model to page. | rails, bundler, rbenv, docker-compose, foreman | overmind, mailpit, github-actions, sentry, dependabot, testcontainers | mise, ngrok, kompose |
| Serverless / Cloud App Engineer | Builds apps out of cloud functions and managed services, with no servers to run. | sst, aws-sam, localstack, serverless-framework, wrangler | aws-cdk, moto, miniflare, minio, github-actions, firebase-emulators | architect, nitric, encore, netlify-cli, vercel-cli |
| Student / Junior Developer | Learning to code and ship. Needs tools that just work and do not break setup. | homebrew, nvm, pip, docker-desktop, replit | codespaces, cursor, github-copilot, vite, npm | uv, claude-code, create-vite, stackblitz, ollama |
| Indie Hacker / Solo Founder | One person building a whole product. Wants cheap, fast and few moving parts. | nextjs, supabase-cli, pocketbase, vercel-cli, cursor | claude-code, docker-compose, pnpm, sentry, ngrok, github-actions | flisk, convex, wrangler, mailpit, ollama |
| Founding Engineer | First engineer at a startup. Does a bit of everything, picks the stack. | docker-compose, github-actions, nextjs, terraform, sentry | claude-code, pnpm, supabase-cli, vercel-cli, doppler, tilt | flisk, opentofu, pulumi, grafana, localstack |
| Platform Engineer | Builds the internal tools and paved roads other developers use to ship. | backstage, terraform, kubernetes, argo-cd, github-actions | crossplane, helm, humanitec, port, opentelemetry, dev-containers | flisk, tilt, kratix, coder, copier |
| Site Reliability Engineer (SRE) | Keeps production up. Measures it, gets paged, and fixes the cause. | prometheus, grafana, kubectl, opentelemetry, terraform | loki, jaeger, k9s, stern, argo-cd, helm | datadog, sentry, toxiproxy, kubectx, signoz |
| DevOps Engineer | Connects code to production with pipelines, servers and automation. | github-actions, terraform, docker-engine, ansible, kubectl | gitlab-ci, jenkins, helm, argo-cd, vault, grafana | act, dagger, opentofu, trivy, flisk |
| Infrastructure / Cloud Engineer | Builds and runs the networks, clusters and cloud accounts everything sits on. | terraform, opentofu, aws-cdk, kubernetes, ansible | terragrunt, pulumi, cloudformation, bicep, vault, kubectl | crossplane, sops, localstack, k3s, nix |
| Kubernetes / Cluster Engineer | Runs the clusters apps live on, and helps teams deploy to them. | kubectl, helm, kustomize, k9s, argo-cd | flux, helmfile, stern, kubectx, external-secrets, lens | kind, vcluster, krew, kubefwd, telepresence |
| Release Engineer | Owns how code becomes a version people can install, safely and on time. | github-actions, changesets, cosign, buildkit | syft, renovate, gitlab-ci, argo-cd, grype | kargo, dagger, lerna, helm |
| Build / Developer Productivity Engineer | Makes builds, tests and local setup fast for every other developer. | bazel, nx, turborepo, buildkit, mise | pants, earthly, dagger, nix, devenv, just | flisk, depot, buck2, watchman, direnv |
| Observability Engineer | Builds the logs, metrics and traces so teams can see what their code does. | opentelemetry, prometheus, grafana, loki, jaeger | otel-lgtm, signoz, sentry, datadog, kubectl | openllmetry, langfuse, stern, helm |
| Data Engineer | Builds the pipes that move and clean data so others can use it. | uv, docker-compose, minio, sqlalchemy, atlas | conda, pixi, testcontainers, localstack, temporal, terraform | flyway, dbmate, moto, gcloud-emulators, dagger |
| ML Engineer | Trains models and turns them into something an app can call. | uv, conda, docker-desktop, vllm, fastapi | pixi, mlx-lm, ollama, llama-cpp, langfuse, docker-compose | github-actions, nix, podman |
| MLOps Engineer | Gets models into production and keeps them running, cheap and watched. | kubernetes, vllm, docker-engine, terraform, github-actions | helm, argo-cd, prometheus, grafana, buildkit, temporal | langfuse, opentelemetry, kubectl, k9s |
| AI / Agent Engineer | Builds apps where an LLM calls tools and does multi-step work. | langgraph, claude-agent-sdk, model-context-protocol, langfuse, ollama | openai-agents-sdk, pydantic-ai, mcp-inspector, fastmcp, temporal, docker-compose | flisk, mastra, e2b, promptfoo, docker-mcp-toolkit |
| Prompt / Eval Engineer | Writes the tests that tell if an LLM app got better or worse. | promptfoo, langfuse, braintrust, langsmith, arize-phoenix | opik, dspy, helicone, openllmetry, ollama | github-actions, claude-code, mcp-inspector, docker-compose |
| LLM Inference / Local Models Engineer | Runs open models on own hardware, fast and cheap. | vllm, llama-cpp, ollama, docker-model-runner, kubernetes | lm-studio, mlx-lm, localai, prometheus, grafana | jan, helm, docker-desktop, opentelemetry |
| MCP / Agent Tooling Engineer | Builds the tools and servers that let AI agents act on real systems. | model-context-protocol, fastmcp, mcp-inspector, claude-code, docker-mcp-toolkit | playwright-mcp, smithery, mcp-registry, composio, e2b, skills-sh | stagehand, flisk, uv, wrangler |
| QA / Test Automation Engineer | Writes automated tests that click through the app and check it works. | playwright-mcp, testcontainers, wiremock, docker-compose, github-actions | msw, mockoon, mailpit, pact, act, stagehand | flisk, microcks, toxiproxy, localstack |
| Benchmark / Performance Engineer | Writes and runs benchmarks to find what is slow and prove a fix worked. | docker-compose, prometheus, grafana, opentelemetry, jaeger | toxiproxy, vllm, testcontainers, nix, hatch, github-actions | wiremock, signoz, k9s, just |
| Contract / Integration Test Engineer | Makes sure services agree on how they talk, before they break each other. | pact, microcks, wiremock, prism, testcontainers | mockoon, msw, docker-compose, github-actions, toxiproxy | flisk, localstack, tilt, moto |
| Security Engineer (AppSec) | Finds and fixes security holes in code and dependencies. | trivy, gitleaks, snyk, vault, dependabot | grype, syft, cosign, sops, renovate, github-actions | openbao, infisical, external-secrets, toxiproxy |
| DevSecOps Engineer | Builds security checks into pipelines so bad code never ships. | github-actions, trivy, cosign, vault, terraform | syft, grype, gitleaks, snyk, renovate, kubectl | openbao, external-secrets, argo-cd, sops, kustomize |
| Resilience / Chaos Test Engineer | Breaks things on purpose to see if the system copes. | toxiproxy, docker-compose, kubernetes, kubectl, prometheus | testcontainers, grafana, k9s, kind, stern | opentelemetry, localstack, tilt, jaeger |
| Forward Deployed Engineer | Sits with a customer and ships working software inside their setup, fast. | docker-desktop, docker-compose, ngrok, claude-code, kubectl | cursor, mockoon, wiremock, terraform, vault, helm | flisk, tilt, ollama, localstack, tailscale-funnel |
| Solutions Engineer | Shows the product to buyers, builds proof-of-concept demos, answers hard questions. | docker-desktop, docker-compose, ngrok, mockoon, vercel-cli | claude-code, cursor, codespaces, wiremock, supabase-cli | flisk, cloudflare-tunnel, replit, stackblitz |
| Developer Advocate / DevRel | Teaches developers to use the product with talks, demos, samples and docs. | codespaces, docker-desktop, vite, stackblitz, claude-code | dev-containers, replit, cursor, ngrok, github-actions, create-vite | flisk, codesandbox, cookiecutter, copier, ollama |
| Support Engineer | Helps customers fix technical problems and finds bugs in the product. | docker-desktop, docker-compose, sentry, kubectl, stern | wiremock, ngrok, grafana, loki, k9s, devbox | flisk, mailpit, codespaces, jaeger |
| Integration Engineer | Connects the product to a customer's other systems through APIs and webhooks. | ngrok, wiremock, mockoon, prism, docker-compose | microcks, msw, localtunnel, cloudflare-tunnel, mailpit, temporal | flisk, inngest, composio, pact |
| Tech Lead | Leads a team's code, reviews work and keeps the local setup and CI healthy. | github-actions, docker-compose, claude-code, renovate, sentry | turborepo, nx, changesets, dev-containers, mise, backstage | flisk, tilt, dependabot, grafana, just |
| Staff Engineer | Solves the hard cross-team problems and sets technical direction. | kubernetes, terraform, opentelemetry, github-actions, bazel | backstage, dapr, temporal, nx, docker-compose, grafana | flisk, tilt, crossplane, nix, claude-code |
| Software Architect | Draws how systems fit together and picks the building blocks. | kubernetes, terraform, opentelemetry, dapr, temporal | backstage, nx, spring-boot, nestjs, docker-compose, pact | flisk, aspire, encore, microcks, restate |
| Engineering Manager | Manages people and delivery. Watches team health, not code. | github-actions, backstage, grafana, sentry, renovate | port, cortex, opslevel, datadog, dependabot | claude-code, github-copilot, cursor, codespaces |
| Open-source Maintainer | Keeps a public project alive. Reviews contributions, cuts releases, fights spam. | github-actions, changesets, renovate, dev-containers, codespaces | dependabot, act, cosign, just, gitleaks, claude-code | flisk, copier, cookiecutter, nix, syft |