Record

  1. 2022–2026

    MyCareer.NJ.gov: evidence for the next move

    I led engineering from a 400-file prototype into a bilingual statewide decision service, built its program-level evidence, and did the 2023 data modeling that began the state's migration to Credential Engine's CTDL standard.

  2. 2026 · unlaunched POC

    AI career guidance, accountable to evidence

    I shipped the shared safety infrastructure behind MyCareer.NJ.gov's applied-AI portfolio, then built an unlaunched career-coach POC. Executed QA improved sharply and still exposed pilot-blocking gaps.

Open source

  • disclosed

    Maturity: Working alpha

    Grades US higher-education institutions on what they disclose rather than how they perform, across two federal datasets. Every value is classified before use as reported, implausible, suppressed, not applicable, or missing, and suppression that protects a small cohort is never held against anyone. Snapshot-to-snapshot drift reporting distinguishes a field that was never collected from one the public recently stopped being shown, in both directions.

    • Higher education
    • Open data
    • Disclosure integrity
  • ctdl-validate

    Maturity: Beta · v0.2.1

    A deterministic structural validator for CTDL JSON-LD, run before a document is published to the Credential Registry: identifier kinds, reference targets, and class pairings, with every finding citing the published rule it came from. It runs offline as a CLI, a GitHub Action, and a browser playground that uploads nothing. Run over 1,200 documents sampled from the public Registry, it surfaced 108 defects in itself, hand-checked and fixed before publication, alongside conflicts inside the published spec. Not affiliated with Credential Engine, and nothing from it has been published to the Registry.

    • CTDL
    • Credential Registry
    • Validation
    • Open standards
  • afterward

    Maturity: Beta · v0.1.0 · dataset 2026-08-17

    3,266 California training programs reported under WIOA, 3,250 of them joined to the state’s own ten-year projection for the occupation each leads to, in English and Spanish, with no account. A suppressed or unreported outcome never renders as zero, and how much the join covers is a published output rather than a footnote. Unofficial and not affiliated with the State of California; the first signed tag has not been cut.

    • Workforce
    • WIOA
    • Training outcomes
    • Public data

Writing

  • A blank is not a bad score

    As of September 18, 2026, the federal training scorecard shows no completion, employment, or earnings figure for 1,209 of California's 3,266 programs. A blank is not a bad score, and Workforce Pell's interim placement test borrows the same measure.

Press

All press and public context

Questions I get asked

What have you built at statewide scale?

I was engineering lead on MyCareer.NJ.gov, New Jersey's statewide career platform, for four years. It has served about 1.8 million people, in English and Spanish, and I stayed the primary engineer on it while leading the team. The work spanned the acquisition funnel, a production machine-learning recommendation engine ranking more than 3,800 training programs against a person's real work history, and the AI infrastructure the platform runs on.

What is your experience with CTDL and the Credential Registry?

I am a registered member of Credential Engine's CTDL Advisory Group for 2025-2026. I drove a state's adoption of CTDL, the national linked-open-data standard for credentials, and did the data modeling that mapped its legacy training-program system onto CTDL classes. Those programs are live in the Credential Engine Registry today, comparable across agencies instead of locked in one database.

How do you handle training-program outcomes data?

Carefully, and in public. Afterward joins 3,266 California training programs to their real outcome data, and its central rule is that a suppressed or missing metric renders as null, never as zero. Zero is a claim; null is the truth. Roughly a third of those programs report no outcome at all, and saying so plainly is what makes the rest of the number worth trusting.

How would you check credential data before it is published?

With deterministic checks that run before submission rather than after a failed import. I maintain ctdl-validate, an open validator whose rules are cited to Credential Engine's published grammar and schema: CTID format, whether a field carries the kind of identifier CTDL expects there, whether a reference resolves to an entity of the expected class, and whether declared inverse relationships agree. A structural error found before publication costs minutes; found afterward it costs a correction to something people already relied on.

Working on something in this space?

Get in touch

← All areas