Zane Johnson
I build AI systems that turn messy data into decisions.
I’m a CS sophomore at Notre Dame who ships working software end to end: ingestion pipelines and schemas, the agents and tools on top, and the product people actually use. I build with AI coding agents and own the architecture, the decisions (every project keeps ADRs) and the tests.
- Data engineering & modelingEncore · alphalab · OfferDesk · Vesper
- Statistics & quant researchalphalab · Nudge study
- LLM agents & MCP toolingVesper · OfferDesk · alphalab · Encore · Shopwright
- Retrieval & local MLVesper
- Full-stack webEncore · OfferDesk · alphalab · Vesper
- iOS & desktop appsVesper
Live-music app
A live-music app where an AI pipeline reads venue websites every day and decides which shows are reliable enough to publish.
221 venues · 2 cities
Atlanta and South Bend venues, pre-launch beta
- 44 Postgres migrations
- 32 tables, all with row-level security
- 4 scheduled jobs (ingest, digests, reminders)
Personal AI assistant
An always-on AI assistant that knows my notes, deadlines and inbox, works from every device I own, and logs every action it takes.
23,744 events
logged by daily use since Sep 2, 2026
- 39 MCP tools
- 321 automated tests
- 46 architecture decision records
Internship tracker
An internship tracker that tells you who to follow up with today — and that an AI assistant can update for you over MCP.
18 MCP tools
so an AI assistant can run the tracker for you
- 123 test cases
- 43 REST API routes
- 7 architecture decision records
Strategy research lab
A research lab that tests AI-written trading strategies honestly, so a lucky backtest can't pass as skill.
16 of 16 lucky strategies rejected
pre-registered, graded only on data they never saw
- 518 test cases
- 11 point-in-time data feeds
- 21 indicators, each with a no-look-ahead test
Data analysis
An analysis of 343 hand-judged nudges from my AI assistant that found repetition, not model confidence, separates useful from noise.
15% vs 58% useful
a rule's 11th+ firing vs. its 2nd–3rd, across 343 judged nudges
- 1,725 nudges raised by Vesper's intuition engine
- 343 judged by hand: useful, wrong or noise
- 0.57 → 0.69 held-out AUC: model confidence alone vs. a logistic model
