Personal project
This site, as a career database
A portfolio built as a queryable graph rather than a set of pages. Skills and tools are structured data that every project, course and role references, so one source generates the site, a targeted CV and the contact files.
The problem
A conventional portfolio keeps the same facts in a website, a CV and a profile, and within months they disagree with each other. Modelling the career as data with typed references removes the duplication, and it makes a CV aimed at one job a query rather than a rewrite.
The site is its own test case: this entry is evidence like any other, and appears in the competency index alongside the rest.
What this demonstrates
Measuring instead of assertingcore
I pick accent colours against computed WCAG contrast rather than by eye, and every research document I write grades its own sources. That is what caught a set of widely repeated hiring statistics which do not appear in the primary source everyone attributes them to.
Implementing the primitives rather than importing themsupporting
I implemented relative luminance and the contrast ratio from the WCAG definition and tested them against the specification's own worked values, rather than taking a colour library's word for it.
Building around how the work is actually donesupporting
The evidence for a claim sits on the claim itself, and a compiled demo only loads when somebody scrolls to it.
Built with
Astrocore
Content collections and Zod schemas hold the career graph, with references between entries validated at build time.
TypeScriptcore
Schema definitions and the graph query layer.