Ayush · Yadav run 042 · 06:12 · the start

¶ 01 · the start — 06:12

first light. nothing has been decided yet.

Caminante, no hay camino,
se hace camino al andar.

Traveller, there is no road — the road is made by walking.

Antonio Machado · Proverbios y cantares XXIX, Campos de Castilla, 1912

twelve stops, dawn to dark

¶ 02 · who — 06:58

the sun clears the roofline, and the day has to be answered for.

Who.

This is a record of what I’ve built.

And how each piece was checked before I called it done.

I’m a computer-science graduate from Miami University, based in Cincinnati, Ohio. I build the interface, the services behind it, the data they run on, and the machine learning when a problem needs it. Every claim on this line carries a receipt.

every station on this line hands its output to a case file, source, or live build — the links are in each station’s handoff.

who built thisfiled 06:58
Ayush Yadav

answers for every claim on this page

  • basecincinnati, oh
  • buildsinterfaces · services · data · ml
  • degreeb.s. computer science — miami university, may 2026
  • handlesgithub ↗ · linkedin ↗
fig. 02 — the record card: what I build, and where to find me.

¶ 03 · the yard — 07:52

early light — everything has a shape and nothing has a name.

The path.

Five years of query logs. Zero structure.

“The purpose of computing is insight, not numbers.”
Richard W. Hamming · Numerical Methods for Scientists and Engineers, 1962

The job before this run: teach the records shape. It’s where I learned that the work starts in the mess.

itsm data integration student associate — miami university · internship · jun 2025 – may 2026
1.6m+ oas query logs — 5 yrs · 1,153 users · 66 dashboards ⟶ a 57.8m-row field-usage table, sqlite
tableau + workday silos ⟶ one master inventory — 10,453 rows × 35 fields · hash-dedup · ruff + pytest ci
legacy laravel reporter ⟶ etl ⟶ 37-month tableau dashboard — compliance 0% ⟶ 97% across 61 projects

↳ only the inventory is checked in — the rest are read off miami’s own systems and cannot be published · the inventory’s case file ⟶

fig. 03 — three sources in, one table out. the merge is the thread you are following.
the school record — filed with the runmiami university · oxford, oh · may 2026
degreeb.s. computer science · major gpa 3.65 · dean’s list — fall 2023 · spring 2025 · fall 2025
courseworkhigh-performance computing · data structures & algorithms · machine learning · deep learning · databases
certificates ’26azure ai essentials · snowflake data engineering · data analysis & github (microsoft)
feb 2025finalist, mucat design innovation — lidar visual-assistance proposal · $2,500 prototyping grant
mar 2025social innovation weekend — lifequest co-built in a weekend · react + nestjs · 7-person team · held at station 05 tonight

¶ 04 · first station — 08:47

the morning post, and the first thing anyone does with it is sort.

Applied.

Your inbox already knows where you applied.

Applied reads it — on a device you control, and defers to you when it isn’t sure.

201 regex rules ⟶ e5 embeddings ⟶ fine-tuned setfit
macro-f1 0.9791 · 96-sample eval — 8 classes · 2 misclassified — the rules stage, not the cascade
ci blocks the build below 0.95 macro-f1 · int8 onnx via transformers.js — 90 mb ⟶ 23 mb
postgres row-level security — a non-bypassrls role

↳ the sorted mail lands in the case file ⟶ · source ↗ · live build ↗ · system card ↗

fig. 04 — the sorting line, scrubbed by your scroll. a piece leaves at the first desk that clears it; the eighth clears nothing — hover a desk to see what it settled.

¶ 05 · second station — 12:06

noon. nothing casts a shadow, so nothing hides in one.

Cadence.

Plans, the way you’d say them out loud.

Type a sentence; it becomes the event — attendees, Meet link and all.

1,186 passed · 0 skipped — 635 frontend + 551 backend
4-stage parse — chrono · hashtag · priority · compromise (this sample is scripted, not a live call)
36 routes in one serverless function — vercel’s 12-function cap
rls enforced on 7 tables — force, 22 policies · owner-scoped checks on 6 services · idor suite in ci

↳ the committed plan lands in the case file ⟶ · source ↗ · live build ↗ · system card ↗

lunch with Sam next Tuesday at noon, add a Meet.”

sam tue · 12:00 + meet link
fig. 05 — the parse: the sentence resolves into the schedule as you scroll. hover a chip to see its words.

¶ 06 · third station — 15:23

mid-afternoon, when the light goes hard and shows the edges.

Glyph.

“We should forget about small efficiencies, say about 97% of the time… yet we should not pass up our opportunities in that critical 3%.”
Donald E. Knuth · Structured Programming with go to Statements, ACM Computing Surveys, 1974

No frameworks. Just math, memory, and C++.

The network below is awake in this tab — 45.9 KB of WebAssembly and 310.6 KB of weights, no server. The run needs a sample: yours.

97.01% on the 10,000-image mnist test set — 9,701/10,000 · macro-f1 0.9698
parallel dot-256 kernel 3.5× vs -O3 — parallelism carries all of it; the simd is in both builds · 784 ⟶ 100 ⟶ 10
3 hand-written simd paths — avx-512 · avx2 · neon (wasm: -msimd128, compiler-vectorised) · 2-person team

↳ your sample’s reader lands in the case file ⟶ · source ↗ · live build ↗ · system card ↗

draw a digit 0–9
— the run needs a sample
waking…
· conf forward read locally · no server
the committed bench — dot-256 kernelfiled 2026-08-02 · on file @ 001e9b4 ⟶
one thread, -O3
openmp, all cores3.5×

measured then, committed — not run in this tab. 3.536× at the median of 20 reps a side · cv 0.16% / 0.28% · one committed run, so no spread to quote · the raw run record (json) ⟶

fig. 06 — the classifier is the portfolio’s own C++. what you draw departs down the line.

¶ 07 · fourth station — 19:36

the sun going down, and the work speeding up to beat it.

jetpack-compress.

One gzip stream, many virtual threads.

The stream splits, the threads compress in parallel, and the lanes stitch back into one valid member.

6.4× single-threaded java.util.zip — 422 vs 66 mb/s (3-fork jmh · 99.9% ci)
adler-32 vectorised 2.8× scalar — 4.26 gb/s — bit-identical to java.util.zip.Adler32, and honestly not faster than the jdk intrinsic (14.06 gb/s)
jdk 25 · one virtual thread per block, bounded in-flight window · memory-mapped i/o via ffm
72 tests, 0 failures

browser gzip on this page’s own html — an illustration, not jetpack’s engine

↳ the member lands in the benchmark ledger @ 2caacd0 ↗ · source ↗ · live build ↗ · system card ↗

the committed bench — 1 gib, gzipfiled 2026-07-27 · on file @ 2caacd0 ↗
java.util.zip · 1 thread66 mb/s
jetpack · virtual threads422 mb/s

measured then, committed — not run in this tab. 6.4× is the 3-fork jmh result; across both committed runs the ratio spans 6.38–6.89× · the raw run record (json) ⟶

fig. 07 — split ⟶ compress in parallel ⟶ stitch, into one valid gzip member; the lettered bytes are the format’s own notation. clay marks the trailer, the one part of the member that answers for the whole of it — hover a lane to see which blocks it wrote.

¶ 08 · fifth station · the honest hour — 21:07

dusk — the hour that shows you what did not get finished.

LifeQuest. A prototype, told honestly.

“Plan to throw one away; you will, anyhow.”
Frederick P. Brooks Jr. · The Mythical Man-Month, 1975

Job-seeking turned into missions so momentum survives the grind — a playable mission card and a tier ladder on a real backend. Born at Social Innovation Weekend, March 2025 — a 7-person team, one weekend, React + NestJS. It would need a partner to scale, and it says so.

01mission card — playable
02tier ladder — working
03full-stack backend — real
04scale — needs a partner or funder held on purpose — nothing resolves that didn’t happen
05finished product — not claimed held on purpose — nothing resolves that didn’t happen

↳ no case file — a prototype has nothing to argue yet · source ↗ · live prototype ↗ · system card ↗

dusk. the light is the record: what shipped is lit, what didn’t stays dashed.

fig. 08 — the stair is the ledger, drawn in section: three steps with a body under them, two with nothing at all. the cut is where the record stops; the climb pauses the way the run halts — on purpose.

¶ 09 · sixth station · the last — 22:05

lamplight. the machine works on; somebody stays to watch it.

Agentic AutoML.

It runs the whole lifecycle — and refuses to finish alone.

“The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform.”
Ada Lovelace · Note G, Sketch of the Analytical Engine, Scientific Memoirs, 1843

The senior-design capstone: a LangGraph agent that works a notebook the way a person would — profiles the data, writes the cells, runs them — and waits at a human gate before every phase.

seven phases mirror the ml lifecycle · a human gate at every step
12 mcp tools — most of them notebook hands: read_cell · write_cell · run_cell …
the llm’s python runs in a locked-down docker sandbox — non-root · read-only fs · capped cpu + memory
langgraph + mcp · default model gpt-5.4 · 2,173 commits on the senior-design gitlab · 2-person team — my seat: backend

no accuracy figure is quoted here because none is claimed — the work is the architecture and the gates, and the code is open to read.

↳ the halted run lands in the case file ⟶ · the published snapshot, gpl-3.0 ↗ · live build ↗

fig. 09 — the twelve tools are mcpServer.ts’s, in source order; their firing schedule here is staged, not logged. the run halts at the seventh gate — deploy never lights itself.

¶ 10 · the review — 22:23

the last of the light, spent checking what the day actually held.

How I work.

The run is nearly in. Before the gate, the discipline that drove it — each line ends at the ledger row that proves it. Every row is on file in one place: the evidence index ⟶

“The first principle is that you must not fool yourself — and you are the easiest person to fool.”
Richard P. Feynman · Cargo Cult Science, Caltech commencement address, 1974
the reviewer’s marksthree real gates · dispositions honest
classifier gate — Applied passed
cited-source sweep — PolicyBot refused
benchmark suite — Glyph refused

✓ a human signed for it · — the gate stopped the run · below them the line runs on dashed and unsigned, to a person

two of my own gates refused to sign automatically. which is why the next stop on this line is a person.

fig. 10 — three real gates set on the line, each stamped in the same hand as the thread; below the third the line runs on dashed, unsigned. a refused gate is the system working.

¶ 11 · the references — 22:32

past ten, and these are the only words on this page I did not write.

Two people wrote this down in public.

The gates on the last station were mine, and a machine can only refuse itself. These are the humans who worked the line beside me.

“From the start, he operated above intern level… He built data pipelines used to analyze Oracle Analytics Server usage, giving the team visibility into report adoption, demand patterns, and technical load. That work informed platform decisions and prioritization… He understood intent, not just requirements.”
Randall Vollen· data, AI & analytics executive, miami university· managed the ITSM work at station 03
“I was particularly impressed with his ability to work under pressure or strict deadlines and still deliver high quality work.”
Shree Chaturvedi· computer science + mathematics, miami university· the teammate on stations 06 and 09

both written on linkedin, unedited except where an ellipsis marks a cut · the recommendations, in full ↗

the referenceswritten on linkedin · in public
Randall Vollen linkedin · 2026 data, AI & analytics executive — managed the ITSM work at station 03
Shree Chaturvedi linkedin · 2026 computer science + mathematics — the teammate on stations 06 and 09

three of the twelve stops carry a name that is not mine.

fig. 11 — each reference sits beside the station that person actually worked on.

¶ 12 · the approval gate — 22:41

dark. one decision left, and it was never going to be the machine’s.and the light came back, the way it does.

Every pipeline I build ends with a human decision.

This one ends with yours.

  • 06:12 · the start
  • 06:58 · who
  • 07:52 · the yard
  • 08:47 · applied
  • 12:06 · cadence
  • 15:23 · glyph
  • 19:36 · jetpack-compress
  • 21:07 · lifequest
  • 22:05 · agentic automl
  • 22:23 · the review
  • 22:32 · the references
  • 22:41 · the human gate — go / no-go
  • deploy — yours; no scroll reaches it

the marker you have been following stops here. nothing moves until you decide.

run 042 — the manifest, complete.

one day · twelve stops · six stations proof-cited · one signature missing
042 is the day’s serial, not a visit counter — the number holds; only the light moves.

  • 01appliedrules macro-f1 0.9791 · 96-sample gate
  • 02cadence1,186 passed · 0 skipped — 635 fe + 551 be
  • 03glyph97.01% — 9,701/10,000 · macro-f1 0.9698
  • 04jetpack-compress72 tests, 0 failures · jdk 25
  • 05lifequestprototype — held marks stayed held
  • 06agentic automl7 phases, every one gated · code public
scrolling could not press this button.
© 2026 ayush yadav — cincinnati, oh
set by hand — fraunces, newsreader & fragment mono · zero dependencies

¶ 13 · the next morning — 06:12

first light again — and this time something has been decided.

“What we call the beginning is often the end
And to make an end is to make a beginning.”
T. S. Eliot · Little Gidding V, Four Quartets, 1942

Thank you. The interesting part is whatever comes next.

run 043 · not yet begun