Flux ·
StudyDesk ·
Stellar Forge ·
de-ai ·
Meridian ·
Glass Ticker ·
X ·
YouTube ·
Email
| Languages |
|
| Everyday |
|
| Data |
|
| Graphics |
|
| Platform |
|
Flux: twenty-one tools behind a plan, execute, verify, retry loop. The tools were the easy part. Because streaming interleaves tool results with prose, the verifier has to judge results it has not finished receiving, and vector memory re-injects itself into later calls, so one bad extraction quietly poisons every answer after it.
StudyDesk: the Android app I use every day, which is a harder review than a stranger gives it. A photographed timetable becomes real classes through on-device OCR, so the grid parser has to survive dark backgrounds, all four rotations, and 12 px time labels that binarise into blobs. It is also built to refuse: noise cannot become a 19:20 lecture, and a rescan replaces the rows it read before instead of stacking under them. The signed APK is in the releases.
Stellar Forge: looks like a CRUD app with a 3D header, and the 3D header is the easy part. Seat claims have to be race-safe across concurrent users, so registration runs in serialisable transactions with row locking, and the live counter is one source of truth rather than whatever each client last fetched.
de-ai: a rewriter that calls no model, so the same input gives the same
output every time. The cost of that determinism is that a rule bank will happily
turn server into waiter, so the lexical pass is fenced off from a
600-term technical blocklist, and the pipeline re-scans its own output and
reverts any swap that introduced a new tell.
Meridian: clinical triage built only from six lab practicals on real ICD-10-CM data. No ORM because none was taught, no framework for the same reason. The part I would not have guessed is that every generator bug ended up as a named regression test rather than a quiet fix.
Glass Ticker: one market ticker on five platforms - Electron on the desktop,
SwiftUI on iOS, Compose on Android, and the same UI as a <glass-ticker> web
component for everything else, published as npm, Python and JVM packages. The
chart was the easy part. A browser cannot reach Yahoo at all, so every language
binding ships a small data server, and the crumb cookie Yahoo wants does not
exist in Node's fetch, so the server keeps its own. The batch quote endpoint
also refuses one request in twenty, so all three servers rebuild the quote from
the chart endpoint instead of drawing an empty row.
Open to internships, to collaboration, and to being told I am doing something in a stupid way.
Contribution history
Regenerated daily by .github/workflows/activity.yml and committed
into this repository, so it renders with no third-party service in the path.
Drawn as static SVG in assets/ by me, not fetched from a badge
service, so nothing on this page can break or quietly rot. The fox is a
hand-drawn pixel sprite animated as a GIF, because GitHub strips inline SVG from
Markdown. Both themes are designed rather than inverted, and contrast clears
WCAG AA throughout.



