Work.
Essays, case studies, and notes across design, data, and experimentation.
On The Silent Truncator: Debugging LinkedIn's UGC API
Discovering how text formatting and LinkedIn's ASCII parser can trigger silent rendering failures on the UI with limited to no descriptive error messages.
On Connecting Tokens to Embeddings
Tracing and visualising the encoding of human-readable text into embeddings that are consumable by a neural network.
On Using Interactive Design to Explain Semantic Isolation
How do you make a philosophical concept land in under ten seconds? This note traces the design of an interactive feature that visualises semantic isolation - the erasion of the father from the language of family - using a single button, relatable emojis, and an unlikely teacher: the chicken-and-egg dilemma.
On Designing Around a Hard Resource Limit
Three hard limits, memory, time, and write quota, and one pattern they all share: constraints are design input, not obstacles. How treating each ceiling as a forcing function produced cleaner architecture than the unconstrained version would have.
On Spaced Repetition as a Knowledge Management System
How a marriage between the right algorithm and data structure can unlock multiple possibilities in a knowledge management system.
On State as a Promise
A three-part session recovery architecture: Cloudflare D1 persistence, an email-cron-worker, and sequenced React hydration, built on the insight that a promise to the user is a contract.
On the Gap Between Retrieval and Understanding
Embeddings are a big step towards representing knowledge in a format that can undergo significant computation.