← Writing

The Junior Developer's Roadmap for 2027

Published
Reading
15 min
Contents · 18 sections
  1. What employers now screen for
  2. Step 1: Fundamentals
  3. One language, deeply
  4. Data structures, in practice
  5. HTTP
  6. SQL
  7. Git
  8. Step 2: The eight skills, in order
  9. Step 3: Practise with AI without losing the skill
  10. 1. Explain before you accept
  11. 2. Do no-AI reps
  12. 3. Read other people’s code
  13. 4. Review AI diffs like a senior would
  14. Step 4: Build proof
  15. A 12-month plan
  16. What we covered
  17. The positive part
  18. Key ideas

In August 2025, three Stanford economists published a paper with an uncomfortable title: Canaries in the Coal Mine?

Erik Brynjolfsson, Bharat Chandar and Ruyu Chen used payroll data from ADP, which covers millions of US workers, to ask a simple question. Since generative AI took off, who has been hired, and who hasn’t?

In August 2026 they updated it with data through June 2026. The headline: employment of workers aged 22 to 25 in the most AI-exposed occupations now stands 19% below where it would be if it had kept pace with young workers in less-exposed jobs. Experienced workers in the same occupations show no comparable gap. And the gap has widened steadily since they first measured it.

Three details matter as much as the number:

  • It’s mostly about hiring, not firing. Companies aren’t laying off juniors en masse. They’re hiring fewer of them.
  • It isn’t just tech companies. The pattern holds when the authors exclude tech firms and computer occupations.
  • It’s descriptive, not proof that AI caused it. The authors call these “canaries,” early signals, not causal estimates. They also report no evidence of economy-wide job loss from AI.

Software development is one of the occupations they track closely, and their public dashboard shows large declines for 22-to-25-year-olds in it.

Job postings tell a similar story. Indeed’s index of US software development postings (set to 100 on 1 February 2020) peaked at about 234 in February 2022, fell to about 61 in May 2025, and stood at about 79 in mid-October 2026. So it’s recovering, but still about a fifth below where it was before the pandemic, and roughly a third of the 2022 peak.

If you’re starting out, that’s the honest picture: the door is narrower than it was. It isn’t closed.

This is the last part of After Vibe Coding. The previous eight parts each covered one skill that AI-assisted coding lets you skip. This one puts them in order, with a 12-month plan.


What employers now screen for

Think about it from a team lead’s side. I’ve been one, and I build with these tools every day.

If AI can produce a working CRUD endpoint in a minute, a junior who can only produce working CRUD endpoints isn’t adding much. What a team still badly needs is someone who can tell whether the AI’s output is right, and fix it when it isn’t.

The Stack Overflow 2025 Developer Survey puts numbers on that tension. 84% of respondents use or plan to use AI tools. But more developers distrust the accuracy of AI output (46%) than trust it (33%), and the top frustration, named by 66%, is “AI solutions that are almost right, but not quite.”

“Almost right” is the gap a good junior fills. In practice, that means employers increasingly look for:

  • Reading and explaining code. Can you walk through a function you didn’t write and say what it does and where it breaks?
  • Debugging. Given a failing test or a stack trace, can you find the cause without just asking for another version?
  • Judgment about AI output. Can you spot the missing auth check, the float used for money, the query that will be slow at 10,000 rows?
  • Tests. Do you write them, and do they test behaviour rather than implementation?
  • Shipping something real. Have you deployed anything that other people used, and kept it running?
  • Communication. Can you write a clear pull request description, a bug report, a short design note?

Notice what’s not on the list: memorising syntax, or typing fast. AI really has made those less important. Understanding hasn’t gone anywhere.


Step 1: Fundamentals

Everything else sits on these. Don’t skip them because an AI can do them for you. You need them to check the AI.

One language, deeply

Pick one and go deep: TypeScript or Python are both good choices in 2027. “Deeply” means you understand its types, errors, async model, modules, standard library and common footguns. One language known well beats four known from tutorials.

Data structures, in practice

You don’t need to invert binary trees on a whiteboard. You do need to know which structure fits a job, and why it matters:

// 10,000 bookings, 10,000 lookups.
// Array.find scans the list each time: about 50 million comparisons on average.
const slow = ids.map((id) => bookings.find((b) => b.id === id));

// A Map is built once and answers each lookup in roughly constant time.
const byId = new Map(bookings.map((b) => [b.id, b]));
const fast = ids.map((id) => byId.get(id));

AI tools write the first version all the time. Arrays, maps, sets, queues and trees, and when each one makes code fast or slow, are what let you notice.

HTTP

Know what a request and response actually look like: methods, status codes, headers, cookies, caching, CORS. Use curl until it’s boring:

curl -i -X POST https://api.example.com/bookings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"listingId":"lst_123","checkIn":"2027-01-10","checkOut":"2027-01-17"}'

The -i shows the response headers. Half of all “the API is broken” bugs are a status code or a header someone didn’t read.

SQL

Data outlives code (that was part 5), and SQL is how you talk to it. Learn joins, grouping, indexes and transactions, and learn to read a query plan:

-- Revenue per listing this month, biggest first.
SELECT l.name, SUM(b.total_cents) / 100.0 AS revenue
FROM bookings b
JOIN listings l ON l.id = b.listing_id
WHERE b.check_in >= date_trunc('month', now())
GROUP BY l.name
ORDER BY revenue DESC;

-- Then ask: is this fast? EXPLAIN shows what the database will actually do.
EXPLAIN SELECT * FROM bookings WHERE listing_id = 'lst_123';

Git

Branches, commits that say why, rebasing, resolving conflicts, and the one command that makes you look like a senior:

git bisect start
git bisect bad            # the current commit is broken
git bisect good v1.4.0    # this release was fine
# git checks out commits in between; you test each one and type good or bad
git bisect reset

When an AI-assisted change broke something three days ago and nobody knows which of forty commits did it, bisect finds it in about six steps.


Step 2: The eight skills, in order

This series covered eight skills. Here they are in the order I’d learn them, each with a project that forces you to practise it. You can do them as separate exercises, but they work best as one project that grows: a small booking or appointment app for something real, like a friend’s tutoring class, a sports club or your own side hustle.

# Skill Part Project idea
1 Owning what you ship Part 1 Take something you built with AI and write one page: what it does, what it costs to run, what happens if it breaks.
2 Reading code Part 2 Pick a small open-source library you use. Trace one feature from entry point to output and write it up.
3 Debugging Part 3 Keep a bug journal for a month: symptom, hypothesis, experiment, cause, fix. At least one bug found with git bisect.
4 Security Part 4 Add accounts to your app. Then attack it: try to read another user’s data by changing an ID, and fix what you find.
5 Data Part 5 Design the schema with constraints and migrations. Back it up, delete the database on staging, restore it.
6 Testing Part 6 Write the tests for one feature first, then let the AI implement it until they pass. Review what it did.
7 Architecture Part 7 Split the app into modules, add lint rules for the boundaries, and write three ADRs.
8 Shipping Part 8 Add CI, staging, a feature flag, error tracking, alerts and a spend cap. Break staging on purpose and write a ten-line incident review.

Why this order? Reading and debugging come early because they’re how you learn from everything else. Security and data come before tests and architecture because mistakes there are the hardest to undo. Shipping comes last because it pulls all the others together.


Step 3: Practise with AI without losing the skill

This is the part I care about most, because the risk is real and now there’s evidence for it.

In January 2026, Anthropic published a randomised trial with 52 mostly junior software engineers learning an unfamiliar Python library called Trio. One group could use an AI assistant; the other coded by hand. Afterwards, both took a quiz without AI. The AI group averaged 50%, the hand-coding group 67%. The AI group finished about two minutes faster, but that difference wasn’t statistically significant. The biggest gap was on debugging questions.

The interesting part is how people used the AI. Participants who scored well used it to understand: asking conceptual questions, asking for explanations alongside code, or generating code and then asking follow-up questions about it. People who handed over the whole task, or leaned on the AI to debug for them without trying to understand, scored worst. Those subgroups were small, a handful of people each, so treat the detail as a strong hint rather than a law.

So the tool isn’t the problem. The habit is. Four rules that keep you on the right side:

1. Explain before you accept

Before you accept any AI change, explain it, out loud or in the commit message: what it does, why this way, and what would break it. If you can’t, you don’t accept it yet. Ask the AI to explain, read the docs, or rewrite it smaller. This one rule turns every AI suggestion into a short lesson instead of a skipped one.

2. Do no-AI reps

Musicians practise scales. Do the same: a few times a week, solve a small problem with the AI switched off. A kata, a bug from your journal, a SQL query, a function from scratch. Struggle a little. That struggle is the learning the study measured. Keep it small enough that it’s 30 minutes, not a lost afternoon.

3. Read other people’s code

Most of your career is reading code you didn’t write. Read good open-source projects in your language. Read pull requests on them and the review comments, which are often where the real reasoning is. Read the source of a library when the docs don’t answer your question. AI can be a great tour guide here: “explain how this module is organised,” then go verify.

4. Review AI diffs like a senior would

Treat every AI change as a pull request from a fast, confident junior who never says “I’m not sure.” Check the shape (imports, names, duplication, from part 7), security (auth checks, input validation, secrets, from part 4), data (migrations, money types, from part 5) and tests (do they test the right thing, from part 6). Leave yourself review comments. It feels slow at first. It gets fast, and it’s exactly the skill employers are screening for.


Step 4: Build proof

When there are fewer junior openings, every application has to work harder. “I know React” is a claim. A deployed app with tests and a write-up is evidence.

Public projects, with tests. One or two real projects beat ten tutorial clones. A reviewer should be able to open the repo and see: a README that explains what it is and how to run it, tests that run in CI, a sensible structure, commit messages that say why. Bonus points for real users, even five.

Write-ups. For each project, write a short post: the problem, the decisions you made, what went wrong, what you’d do differently. Mention where AI helped and where you had to correct it. That last part shows exactly the judgment people are hiring for. A write-up also gives an interviewer something to ask about, which is far better than a whiteboard puzzle.

Contributions. Start small in open source: fix documentation, reproduce a reported bug and add a failing test, then fix a “good first issue.” Maintainers’ review comments are free mentoring from experienced engineers. Read the project’s contribution guide first, and don’t flood maintainers with AI-generated pull requests you can’t explain. That habit is noticed quickly, and not in a good way.

A visible trail. A public GitHub with steady activity, a few write-ups, and a short CV that links to them. You’re showing a pattern: this person builds things, finishes them, and understands them.


A 12-month plan

This assumes about 10 to 15 hours a week alongside study or a job. Stretch it if you need to. Consistency matters more than speed.

Months Focus By the end you have
1-2 Your one language, Git, HTTP with curl Small CLI tools in a public repo, written mostly without AI
3 SQL and data structures in practice A schema and 20 queries for your project domain, with EXPLAIN notes
4 Skills 1-2: owning and reading code Your project’s first version, plus a write-up tracing a feature in an open-source library
5 Skill 3: debugging A bug journal with at least ten entries and one bisect
6 Skill 4: security Accounts in your app, and a short post on what you attacked and fixed
7 Skill 5: data Migrations, constraints, a tested backup restore
8 Skill 6: testing A test suite in CI, and one feature built test-first with AI
9 Skill 7: architecture Modules, boundary lint rules, ARCHITECTURE.md and three ADRs
10 Skill 8: shipping Staging, flags, error tracking, alerts, spend cap, an incident review
11 Open source Two or three merged contributions, even small ones
12 Proof and applications A polished README, two write-ups, a one-page CV, and applications going out

Through all twelve months: no-AI reps a few times a week, explain-before-accept on every change, and an hour a week reading code that isn’t yours.

12 MONTHS month 1 month 12 months 1-3 Fundamentals language · git HTTP · SQL months 4-6 Read, debug, secure months 7-10 Data, tests, architecture, ship months 11-12 Proof OSS · write-ups EVERY WEEK, THE WHOLE WAY explain before accept no-AI reps read and review code One growing project carries all four blocks. The habits underneath keep the skills yours.
The year in four blocks, with the same three practice habits running underneath all of them.

What we covered

That’s the end of After Vibe Coding. Here’s the whole series:

  1. Vibe Coding Is Real. So Is the Bill. AI coding tools are real and useful, and skipping the understanding has a cost that arrives later.
  2. You Can’t Fix What You Can’t Read Reading code is the skill under every other skill.
  3. Debugging When the AI Is Out of Ideas Reproduce, form a hypothesis, test it, and stop asking for random rewrites.
  4. The Security Holes AI Writes Every Day The common mistakes, and how to catch them in review.
  5. Data Outlives Code Schemas and constraints, safe migrations, separate credentials, and backups you’ve actually restored.
  6. Tests Are How You Talk to the AI Tests as the clearest spec you can give a model.
  7. From Prompting to Architecture Boundaries, names and written decisions, so the code can keep changing.
  8. Shipping Is Half the Job Environments, CI, staged rollouts, alerts and cost limits.
  9. The Junior Developer’s Roadmap for 2027 This post: putting it all in order.

The positive part

I want to end on something true and hopeful, because it is.

The tools you have today are extraordinary. A motivated beginner in 2027 can build, test and deploy things that would have needed a small team ten years ago. You can ask a patient expert to explain any line of code, at any hour, as many times as you want. No generation of developers has had a better tutor.

The catch is that the tutor will also do your homework if you let it. The people who do well in the next few years won’t be the ones who avoid AI, or the ones who hand everything to it. They’ll be the ones who use it to go faster and understand more at the same time.

That’s a choice you make in small moments: reading the diff instead of clicking accept, writing the test first, asking “why” one more time. Make it often enough and you become the person every team wants. Someone who builds quickly, and knows what they built.

Go build something real. Then make sure you understand it.


Key ideas

  • Entry-level hiring is tighter. Stanford’s August 2026 update puts young workers in AI-exposed jobs 19% behind their less-exposed peers, mostly through fewer hires. It’s an early signal, not proof of cause.
  • Employers want people who can judge AI output: read it, debug it, secure it, test it and ship it.
  • Fundamentals still matter: one language deeply, data structures in practice, HTTP, SQL and Git.
  • Learn the eight skills in order, on one growing project.
  • How you use AI decides whether you learn. In Anthropic’s study, asking for understanding kept skills; handing over the work didn’t.
  • Explain before you accept, do no-AI reps, read other people’s code, and review AI diffs like a senior.
  • Build proof: deployed projects with tests, honest write-ups and small open-source contributions.

Sources: Erik Brynjolfsson, Bharat Chandar and Ruyu Chen, “Canaries in the Coal Mine? Six Facts about the Recent Employment Effects of Artificial Intelligence” (August 2026 revision, first published August 2025), Stanford Digital Economy Lab update post (12 August 2026) and Canaries dashboard (checked October 2026); Indeed Hiring Lab, Software Development Job Postings on Indeed in the United States, via FRED (data to 16 October 2026); Stack Overflow 2025 Developer Survey, AI section (2025); Anthropic, “How AI assistance impacts the formation of coding skills” (29 January 2026).

Related: Shipping Is Half the Job, Vibe Coding Is Real. So Is the Bill. (the start of the series), and “Built With AI in a Weekend”: What Happened Next.