Jonathan Putney — builder, vp/tech, husband, dad, gamer
About
jonathan@:~$whoamiUptime
jonathan@:~$uptimeNow
jonathan@:~$cat ~/now▸ shipping the agentic ai platform that powers our llm features (rag, multi-judge eval, websocket streaming, governance)
▸ shipped ratchet v0.3.1 — a cluster-safe job scheduler for jakarta ee — now rebuilding the core on spring boot
▸ recalibrating weekly on what ai can and can't do in real work. every time i pin down the ceiling it moves, then it finds a new way to be confidently wrong about something i'd already trusted it with
Open Source Projects
jonathan@:~$ls -l ~/projects/modern javascript runtime for scorm 1.2 / 2004. v3.3 — full sequencing engine, 95%+ coverage, 6,000+ conformance tests.
pure-java mjml renderer. zero runtime dependencies. 31 components, 1,116 tests, golden-file parity with the official cli.
cdi-native distributed job scheduler. pull-based, cluster-safe via for update skip locked, no redis required. v0.3.1 on maven central.
parses every major elearning standard: scorm 1.2 · scorm 2004 · aicc · cmi5 · xapi. on maven central.
two ai perspectives catch more issues than one — claude code plugin that uses openai codex as a peer reviewer.
Work
jonathan@:~$ls ~/work/we build a 21 cfr part 11 compliant lms for some of the most regulated buyers on the planet — pharma, life sciences, government, hospital systems, airports. i architect the platform, run engineering, lead compliance, and still ship production code most days. ~250k annual users. 40+ tenants. 6 eks clusters.
noverant laid me off in the 2008 recession. i stayed on good terms with the ceo anyway, and years later i came back for the room to grow and the autonomy to actually use it.
"player-coach" usually means the exec shows up to standup. here it means i argue a pricing position on an rfp in the morning and debug a schema migration after lunch.
a real one from this month: a migration that passed every test locally and would have taken down the production deploy. it dropped an index before creating its replacement, and innodb still needed that index to check a foreign key. we found it by running it against a throwaway mysql container instead of reasoning about it, which is the only reason we found it at all.
i've hired every technical person here for ten years. i still read the diffs, and i'm still the one who says no to the feature that would only ever help one client.
# full experience: cv.putney.io · linkedin/in/jonathanputneyHobbies
jonathan@:~$ ls ~/play/
- rpgs & action-adventure // story-driven everything
- gamecube hdmi mod // later board, no digital av port. still not done
- analogue fpga consoles // fpga, not emulation
- retro gaming // crts deserve respect
- security now podcast // 15+ years deep
- two small humans // best feature, hardest deploy
Currently Reading, Playing & Listening
jonathan@:~$ cat ~/reading
Highlights & Fun Facts
jonathan@:~$ history | tail
Contact
jonathan@:~$contact --meHidden Easter Egg
▸ hidden command foundwelcome, careful tab-presser. you found the secret. enjoy a fun fact: there's a mass of steel and spinning rust in my crawlspace running ~70 docker containers across media servers, vpn tunnels, ai document processing, smart home bridges, a full multimedia stack, photo management, workflow automation, and a reverse proxy juggling ssl certs for all of it. it has its own dns, its own auth provider, encrypted secrets, gpu-accelerated transcoding, and nfs mounts reaching into multiple terabytes of storage. some people have hobbies. i have an sla with myself.
↑ back to top