SkillForgeMeasure your own resume
The ruler

Benchmarks

Every level, gap and week in SkillForge is arithmetic over the rows below. The model reads a resume and reports what it found; it never picks a number. This is the ruler it is measured against — published so you can disagree with it specifically.

Benchmarks/Full stack
v2026.1
Product surface to database, usually on a small team.12 tracks · 2 blocking
REST & API designblockingDesigning an interface other people have to live with.needs 7.0·×1.5·12h / level
The ladder
  1. 2Can call an APIConsumed a third-party HTTP API.
  2. 4Has built endpoints that workA CRUD surface in a shipped project.
  3. 6Handles errors, auth and paginationStatus codes and auth chosen on purpose.
  4. 8Versions without breaking clientsEvolved a live API compatibly.
Security basicsblockingThe failures that get student projects rejected in review.needs 6.0·×1.3·9h / level
The ladder
  1. 2Keeps secrets out of the repoEnvironment variables, not committed keys.
  2. 4Hashes passwords and validates inputNo plaintext credentials, no string-built SQL.
  3. 6Implements authz, not just authnChecks what a user may do, not only who they are.
  4. 8Threat-models a featureIdentified an abuse case before shipping.
SQL & data modellingDesigning a schema and making the database do the work efficiently.needs 6.0·×1.3·14h / level
The ladder
  1. 2Reads and writes basic SQLSELECT, JOIN, GROUP BY.
  2. 4Designs a normalised schemaSensible keys and relationships in a real project.
  3. 6Reads a query planUsed EXPLAIN to make something measurably faster.
  4. 8Understands the cost of an indexCan say when an index hurts writes, with evidence.
DSA — graphs & DPThe problem-solving round. Graphs and dynamic programming are where campus interviews concentrate.needs 6.0·×1.1·27h / level
The ladder
  1. 2Arrays, strings, hashingComfortable with the basics under time pressure.
  2. 4Trees and recursionTraversals and divide-and-conquer without hints.
  3. 6Graphs and shortest pathsBFS/DFS, Dijkstra, topological sort from scratch.
  4. 8Dynamic programming under time pressureRecognises the state and transition unaided.
System designChoosing and defending an architecture under real constraints — traffic, latency, failure.needs 5.0·×1.2·16h / level
The ladder
  1. 2Can name the componentsUses the vocabulary: load balancer, cache, queue, replica.
  2. 4Has drawn one under loadA diagram with an identified bottleneck, not just boxes.
  3. 6Has estimated capacity and justified a cacheNumbers behind the choice — QPS, payload size, hit rate.
  4. 8Has broken a real system and written it upA load test that found the limit, and a postmortem.
Docker & CI/CDPackaging an application and getting it to production without touching a server.needs 5.0·×1.1·9h / level
The ladder
  1. 2Has run someone else's containerdocker run appears in a README.
  2. 4Has written a working DockerfileAn image that builds and starts from a repo you own.
  3. 6Has a pipeline that gates mergesCI runs tests and blocks a red build.
  4. 8Has deployed on merge, with a rollbackAutomated deploy plus a documented way back.
TestingProving code works, and keeping it working while it changes.needs 5.0·×1.1·9h / level
The ladder
  1. 2Has written a testAt least one test file exists.
  2. 4Tests the awkward casesBoundary and failure cases, not just the happy path.
  3. 6Tests across a boundaryAn integration test against a real database or HTTP layer.
  4. 8Uses tests to drive a changeA regression test written before the fix.
Version controlWorking on a codebase with other people without losing work.needs 6.0·×0.9·6h / level
The ladder
  1. 2Commits and pushesA repository with a history.
  2. 4Branches and mergesFeature branches and resolved conflicts.
  3. 6Writes reviewable changesFocused commits with messages that explain why.
  4. 8Recovers from a mistakeBisect, revert or reflog used in anger.
CachingTrading freshness for speed on purpose, and knowing what it costs.needs 4.0·×0.8·10h / level
The ladder
  1. 2Knows what a cache is forCan explain the read-path benefit.
  2. 4Has added oneRedis or in-memory caching in a project.
  3. 6Has an invalidation strategyTTL or explicit invalidation chosen deliberately.
  4. 8Has reasoned about a stampedeHandled cold starts or thundering herds.
ObservabilityKnowing what production is doing before a user tells you.needs 4.0·×0.8·10h / level
The ladder
  1. 2Logs thingsDeliberate log statements, not leftover prints.
  2. 4Uses structured logsMachine-readable fields that can be queried.
  3. 6Measures latency and error rateMetrics, and a sense of what normal looks like.
  4. 8Traced a slow request end to endFound a bottleneck across services.
ConcurrencyDoing several things at once without corrupting state or deadlocking.needs 4.0·×0.7·12h / level
The ladder
  1. 2Knows the primitivesCan name threads, locks, channels, async.
  2. 4Has written concurrent code that worksA parallel or async path in a real project.
  3. 6Has found and fixed a raceA specific bug, and what made it reproducible.
  4. 8Designs to avoid shared stateChose an architecture that makes races impossible.
Linux & shellBeing productive on a machine with no GUI, which is where the code runs.needs 4.0·×0.7·8h / level
The ladder
  1. 2Moves around a filesystemComfortable with the everyday commands.
  2. 4Chains tools togetherPipes, grep, awk to answer a real question.
  3. 6Debugs a running processRead logs, checked ports, inspected resource use.
  4. 8Scripts a repeatable operationA script other people run.
How a level is measured
1
Extract

The model reads the resume once and reports evidence — booleans and counts like “two projects use this, neither shipped, no tests”. It is never asked for a score, and every flagged line must cite a page and line that really contains it.

2
Weigh

Code sums what that evidence is worth using the fixed table below, then clamps to 0–10. The weights encode an opinion worth saying out loud: a shipped thing beats a built thing, a measured outcome beats both, and a bare claim is worth almost nothing.

3
Snap

The number is anchored to the track's human-written ladder — the highest rung the evidence actually reaches. That is why a level can always be explained in words, not just digits.

4
Compare

The role's benchmark sets the required level and its weight. gap = required − proven; weeks-to-close = gap × hours-per-level ÷ your weekly hours. Readiness is the weighted shortfall across all tracks, out of 100.

Worked example/REST & API design

A student whose resume shows: the skill named, two projects using it (neither shipped), a public repository, and a B in the related coursework. `provenLevel()` scores that — at render time, on this page — as:

Named on the resume
+1.0
2 projects
+2.0
Public repository
+0.4
Coursework B
+0.6
Proven levelreaches the “Has built endpoints that work” rung
4.0
What REST & API design requires for this role
7.0
Gap, and weeks to close at 9 hrs/week
3.0 · 4 wks

Nothing above came from a template — this example runs through the same exported function the analysis uses, so it cannot drift from the real scoring.

The arithmetic
gapmax(0, required − proven)
weeksToCloseceil(gap × hoursPerLevel ÷ weeklyHours)
readiness100 × (1 − Σ wᵢ·gapᵢ ÷ Σ wᵢ·requiredᵢ)
statusproven ≥ required ? met : open

Four lines of TypeScript, applied identically to every student and every role. Switching your target role re-runs only these — which is why it takes milliseconds and costs nothing.

What evidence is worth
Named on the resumea claim with no artefact behind it — deliberately worth one point of ten+1.0
Each project using itsomething was actually built with the skill · counts up to 3+1.0
Each one that shippeddeployed where someone else could use it · up to 2, on top of the project point+1.0
A measured outcomea before/after number — the strongest cheap signal that the work was real+1.0
Tests exista test suite is rare enough in student work to earn nearly a full point+0.8
Public repositorythe code is readable by anyone, so every other claim becomes auditable+0.4
Internship monthsprofessional use, per month · capped at 6 so tenure can't outweigh built work+0.15
Coursework gradeA / B / C — corroborates other evidence; can confirm a level, never establish one+1.0 / 0.6 / 0.2
Competition useused under time pressure, which filters familiarity from copy-paste+0.5
Years claimedself-reported and unverifiable, so weighted lightly · up to 3+0.2

Summed, clamped to 0–10, then snapped to the nearest rung of the track’s ladder. Adding evidence can never lower a level.