Machine-readable career roadmaps and certification blueprints for infrastructure and AI engineering. Each path is ordered phases, the skills and projects that make a phase done, curated resources, salary bands, and — where written — what the job is actually like once you have it. Each certification is the published exam blueprint with its domain weights, what it costs and where that price came from, and a preparation path with hours attached.
| Path | Level | Phases | Duration | Mid-level (US) |
|---|---|---|---|---|
| AI Agents Engineer | Intermediate | 8 | 9-14 months | $147,289 |
| AI Security Engineer | Advanced | 10 | 7-9 months | $172,800 |
| Cloud Architect | Advanced | 10 | 8-11 months | $202,355 |
| Cloud Security Engineer | Advanced | 10 | 9-12 months | $169,173 |
| Database Reliability Engineer | Advanced | 10 | 8-11 months | $156,093 |
| DevOps Engineer | Intermediate | 9 | 15-21 months | $174,243 |
| FinOps Engineer | Intermediate | 10 | 6-8 months | $123,422 |
| Network Automation Engineer | Intermediate | 10 | 7-10 months | $130,170 |
| Observability Engineer | Advanced | 10 | 6-8 months | $164,046 |
| Platform Engineer | Advanced | 10 | 8-11 months | $130,978 |
| Site Reliability Engineer | Advanced | 10 | 8-11 months | $172,508 |
Names link to the readable view; the data behind each one is in
data/roadmaps. Durations assume ~10 hours a week and are
editorial estimates, not measurements.
The bars are the published domain weights — where the marks actually are, which is rarely the order the official curriculum lists them in. CKA puts 30% on troubleshooting; that is the exam telling you what the job is.
| Certification | Provider | Cost | Exam | Prep |
|---|---|---|---|---|
| CKA | Linux Foundation / CNCF | $445 |
2 h, pass 66% | ~120 h |
| CKAD | Linux Foundation / CNCF | $445 |
2 h, pass 66% | ~96 h |
| CKS | Linux Foundation / CNCF | $445 |
2 h, pass 67% | ~98 h |
| LFCS | The Linux Foundation | $445 |
2 h, pass 66% | ~78 h |
| Prometheus Certified Associate | Linux Foundation / CNCF | $250 |
90 min, pass 75% | ~69 h |
| Terraform Associate | HashiCorp | $70 |
1 h, pass ~70% | ~58 h |
| FinOps Certified Practitioner | FinOps Foundation | $325 |
60 min, pass 75% | ~37 h |
| AWS Solutions Architect – Associate | AWS | $150 |
130 min | ~86 h |
| AWS Security – Specialty | AWS | $300 |
170 min | ~123 h |
| AZ-104 Azure Administrator | Microsoft | varies by region | 120 min | ~90 h |
| CCSP | ISC2 | $599 |
3 h, pass 700/1000 | ~126 h |
| AIGP | IAPP | $799 / $649 member |
2 h | ~67 h |
Costs carry their source and the date they were read on each page. AZ-104 has no single price — Microsoft prices per region and publishes it at checkout — and the dataset says so rather than inventing a number. Prices change; check the provider before paying.
Every quantitative claim carries its source and the date it was read. That is
not a convention contributors are asked to honour — tools/validate.mjs walks
every document and fails on a figure with no usable source or no
retrievedAt, and reports any figure read more than twelve months ago.
A roadmap that tells you a job pays $180k without saying who says so is an opinion wearing a number, and there are enough of those.
The same script rejects any URL carrying a tag, ref, aff, affiliate_id
or utm_* parameter. See what we sell.
Two more checks the schema cannot express: exam domain weights must sum to
100 — a blueprint that does not is a transcription error, not a rounding one —
and every relatedRoadmaps / relatedCertifications reference must resolve in
both directions.
Read this before quoting a figure at anyone.
- These are Glassdoor estimates — self-reported and employer-submitted data plus modelling. Not a survey, not a census, not payroll data.
- United States only. These roles vary more between US metros than some of these bands are wide, and no other market is represented.
- A point in time, stamped in
retrievedAt. Nobody re-reads them continuously; CI flags them at twelve months. - Bands stop at senior, because that is where public estimates thin out — not because the ladder ends.
Durations are labelled SkillPilot editorial estimate, and that is exactly what
they are: a judgement, not a measurement. They are modelled as sourced fields so
the judgement is visible rather than implied.
Not every path carries every field yet. The table says so, rather than leaving it to be discovered file by file.
| Field | Present on |
|---|---|
phases, salary, totalDuration, prerequisites, faq |
all 11 paths |
exam, domains, prepPath |
all 12 certifications |
jobReality — day-to-day, interviews, entry paths, progression, failure modes |
2 — sre, finops-engineer |
stages — coarse groupings over the phases |
1 — sre |
jobReality is editorial throughout. Claims that would need a citation — how
many openings exist, what share is remote, whether demand is growing — are
deliberately not modelled rather than invented.
782 of the 823 cited resources are free (95%). Where a paid book is the only
route to a topic, freeAlternative names a free one beside it.
data/roadmaps/*.yaml source of truth — one file per path, filename == slug
data/certifications/*.yaml source of truth — one file per exam
roadmaps/*.md the same, generated, for reading on GitHub
certifications/*.md likewise
schema/*.schema.json JSON Schema (draft 2020-12) for both
tools/ validation, figures, and the Markdown renderer
Read roadmaps/, consume data/. A 44 KB YAML
file is a wall of raw text in a browser, so every path also exists as a
generated Markdown page with the phases collapsed, the sources in a table and
the resources linked. They are never edited by hand — CI regenerates them and
fails if they no longer match the data, so the readable copy cannot quietly rot.
The dataset has no dependencies. It is plain YAML with a published schema — no build step, no API, nothing to install unless you want to run the checks.
import { readFileSync } from 'node:fs'
import { parse } from 'yaml'
const sre = parse(readFileSync('data/roadmaps/sre.yaml', 'utf8'))
console.log(sre.phases.map((p) => `${p.title} — ${p.duration}`))Running the checks yourself
cd tools
npm install --omit=dev
npm run validate # schema, sourcing rules, cross-references — CI, every push
npm run check-markdown # are the readable views still in sync? — CI, every push
npm run check-links # every cited URL — CI, weekly
npm run render-markdown # regenerate roadmaps/*.md after changing the datacheck-links reaches 581 unique URLs. A dozen of them — MySQL's docs,
platform.openai.com, the Ansible docs — answer 403 or 429 to any automated
request and 200 to a browser, with or without a spoofed user agent. Those are
reported as blocked rather than failed: a weekly red build over links that are
perfectly alive only teaches everyone to ignore the badge.
npm run render-assets regenerates the figures in this README from the dataset,
so no number in them is typed by hand. It needs a local Chrome, which is why
playwright is a dev dependency CI does not install.
The shape of a roadmap file
slug: sre
title: Site Reliability Engineer Roadmap
level: advanced
totalDuration: { value: …, source: …, retrievedAt: … }
salary:
currency: USD
market: United States
entry: { value: …, source: …, retrievedAt: … }
mid: { … }
senior:{ … }
prerequisites: [ … ]
phases:
- id: reliability-foundations
title: Reliability Foundations
description: … # what "done" means, not what the topic is
duration: 3-4 weeks
skills: [ { name, level, category } ]
projects: [ … ] # 2-6, each one buildable
resources:[ { title, type, url, provider, free } ]
jobReality: { dayToDay, interview, entryPaths, progression, failureModes }
faq: [ { question, answer } ]The full contract is schema/roadmap.schema.json.
Maintained by SkillPilot, which sells paid courses for these same career paths. Saying so up front is worth more than the usual disclosure boilerplate, so: two commitments, both enforced rather than promised.
- No affiliate or referral links in this repository. Not "we try not to" —
tools/validate.mjsrejects them, so a tagged link cannot be merged. The dataset on the site does carry some; they were stripped on the way here. - A free alternative beside every paid book that is the only route to a
topic. That is an editorial rule on the source content, and
freeAlternativeis how it survives into this dataset.
The roadmaps are complete and useful on their own. If they are all you ever take from us, they were still worth publishing.
Corrections to sourced figures are the most valuable contribution here. If a salary band is stale or wrong, open a pull request with a source and the date you read it — see CONTRIBUTING.md.
- Data (
data/,schema/) — CC BY-SA 4.0: use it, translate it, build on it; keep the attribution and keep derivatives open. - Code (
tools/) — MIT.
See LICENSE.