Analytics dashboards, relational database designs, and self-contained web apps. Each project has its own README with method, findings, and run instructions.
Reads the wall clock instead of counting ticks — a hidden tab costs a naive timer ten minutes.
Questions generated from census data — and a Brier score for how well you know what you know.
Live preview on a renderer written from scratch — escapes first, so pasted scripts render as text.
Any place on earth — current, hourly, 7-day. No API key needed, so nothing to leak.
Add expenses, set budgets, undo mistakes. Versioned localStorage, 50 tests, exports to the analyzer.
Drop a bank CSV, get a savings rate — categorized spending, monthly cash flow, all in-browser.
Where deals are lost, and why the best-converting channel gets the least traffic.
Does a bigger country mean a richer one? Two log-log scatters over 54 countries say no.
Enrollment and graduation-rate trends 2010–2024 — closing gaps, and a structural break in 2016.
Population and income on a tile grid — because on a real map, land area argues against the data.
State population vs. median household income — correlation scatter, regional roll-ups, ranked bars.
Scores accounts from 10-K financials into Pursue / Watch / Avoid — every score derived, weights live.
Bookings vs quota, pipeline funnel, win rate, and a rep leaderboard.
Crank the lever and the machine invents a one-of-a-kind gift, just for you.
Capstone: one command re-derives every number these READMEs claim — 31 of them, across 12 projects — and fails if the prose and the code ever stop agreeing.
The LP relaxation bounds the answer to within 1.2% and, rounded up, overpays by 16.5%. Exact rational arithmetic throughout, and a family where the gap reaches 2x.
Jaro-Winkler contributes nothing to this data — a normaliser scores a perfect 1.000. And a blocking key that saves 92% of comparisons quietly discards 76% of the answer.
A z-score in a 10-point window can never flag anything — its ceiling is 2.846. And in 23 of 24 hours here, a total outage is mathematically inside the noise.
Leaking the future into a recommender benchmark inflates recall by up to 1.6x — and worse, it makes you ship a different model 60% of the time.
Indexing lat/lon in a k-d tree gets two of three real Pacific queries wrong. And clustering — which is what geography is — turns a 375x speedup into 3.5x.
The average of everything so far beats every fitted model — and because the generating process is known, the best score any forecaster could reach is 15.2459, exactly.
Checking the dashboard every morning turns a 5% false-positive rate into 22% — and the false positives claim an 18% lift that does not exist. Plus the boundary that fixes it.
Splitting on commas fails on 1 file in 12 when only 1 field in 100 holds a comma — because one bad field ruins the file. Measured, not asserted.
A regex engine that cannot backtrack, checked against Python's over 76,744 generated cases — and 12,072x faster on the input that makes re take three seconds.
An inverted index with BM25 over every public docstring in the Python standard library — and the measurement showing the textbook parameters make it worse than LIKE.
"100 per minute" is four different specifications. A rolling-window audit catches three of the four implementations letting more through — the fixed window by exactly double.
Eight processes writing to one SQLite file. WAL is not a concurrency mode — throughput falls as writers are added, and the measurements say so.
An index is a bet the planner makes for you. This times five queries both ways and finds the one where the bet loses by 39%.
A data quality gate that breaks your data on purpose to find out which corruptions your rules fail to notice.
A digital twin of a small business — raise the price, cut the ads, resize the safety stock, and see the damage before it is real.
Gradient boosted trees written from scratch, diffed against scikit-learn tree by tree — plus a demo where leakage scores 66% on a coin flip.
Capstone — CRUD plus a funnel built from an event log, because counting the current stage reports 1 interview where 9 happened.
A real backend — only http/https survive validation, and the UNIQUE constraint settles code collisions.
Collaborative filtering in pure SQL — "users who liked X also liked" from self-joined ratings.
Versioned salary history with layered views and a transactional stored procedure for raises.
One messy table walked UNF → 3NF, with a script that reproduces each anomaly and proves the fix.
Live-formula Excel amortization: 85.7% of payment one is interest, and prepaying still loses to investing.
A messy export cleaned with a full audit trail — plus three chart bugs only rendering could catch.
PDF → outline, flashcards, quiz. Offline TF-IDF and extractive summarisation — no LLM, no API key.
3NF schema for a photo-sharing platform with self-joins, correlated subqueries, and window functions.
Orders and line items with revenue, AOV, best sellers, and refund-rate queries.
Members, copies, and loans with overdue detection and availability — plus a SQL quick-reference.
Seven worked patterns: running totals, RANK, LAG, share-of-total, NTILE, moving averages.
Messy raw data → cleaned sheet → live-formula KPI dashboard on Georgia county population.