Autonomous compliance approval agent for shadow AI tools. Searches vendor evidence, maps it to company policy, produces scoped decisions, and monitors approved tools for drift.
Writing
Notes on AI agents, security, and building tools that last.
Most of My Context Window Was Unaccounted For
I built a dashboard to see what my agents had. It still couldn't tell me what was in the context window at the moment I hit enter. So I built a context workbench, measured one live session, and found that 80% of the used context was not attributable to anything I could name.
I Couldn't See What My Agents Could See
I use AI agents across three different harnesses every day, and for months I had no idea which of them knew what. So I built myself a control panel. This is how it got birthed, and why observability of your own setup is a different problem from observability of your outputs.
I Built My Agent a Memory. The Lookup Was Pointing the Wrong Way.
My agent's memory had a write path and no read path. The check I needed already existed. It just ran at the end of the job instead of the start. An ordering bug wearing the costume of a missing feature.
Falsify the judge before trusting the eval
An LLM judge can give you a green evaluation without proving it can recognise a bad answer. So I added a tier to my eval harness that has to fail before it's allowed to pass.
My Harness Was Invisible. So I Built It an Observatory.
Nine skills, seven hooks, 135 memory files, crons — all buried in dotfiles and edited by digging through VS Code. I built a UI over the whole thing: memory graph, in-place editing, skill changelogs, hook config, and an evals screen. Because handing frontier tasks down to cheaper models only works if you can measure what a model can do with your current skills.
My Agent Argues With Me Before It Updates My Worldview
Summaries pile up and thinking stays still. So I built a pipeline where videos become typed challenges against a beliefs file capped at seven entries, checked for novelty against a knowledge graph, and judged by exactly one person: me.
My AI Agent Waited for Me to Start It. Now One Part Runs While I Sleep.
I had memory, budgets, and guardrails, and I was still the one pressing go. Climbing from harness to loop turned out to be one timer, one snapshot file, and knowing which celebrated pattern to skip.
ShadowScout: Sending the Scout Before Another AI Tool Gets Adopted
A hackathon build for shadow AI approvals: Tavily searches vendor evidence, Gemini extracts claims, deterministic policy rules make the decision, and ClickHouse-shaped audit rows preserve the trail.
Recruiter Risk Triage: Separating Real Opportunities From Unsafe Outreach
A real LinkedIn recruiter message felt slightly off, so I checked the company, found the website did not resolve, and traced the role back to an expired job description. This is the local-first tool I built from that instinct.
Primitive Reps: The Way I Learn Hard Things
I do not learn hard technical skills by covering topics. I break them into small movements and repeat those movements across scenarios until the pattern becomes automatic.
I Gave My AI Agent a Memory. Then It Started Choking on It.
The follow-up to the memory-layer post. Persistent context worked too well: session start was burning 30-40K tokens before I typed a word. Four fixes — context is a budget, not a bucket.
Your Platform Is a Bottleneck With a Logo
A simple test for whether an internal platform is actually self-service, or just another queue developers have to wait in.
What Broke When I Tried to Use My Own Practice App
The Musician's Practice App is not public yet. This is a build note from getting it ready for early testing by using it like an actual musician, not a feature checklist.
The Platform Nobody Thinks About Anymore
Platform engineering only becomes visible when it breaks. This is the story of building reusable testing, compliance and production-gating infrastructure that multiple services could adopt without reinventing the same deployment safety work every time.
I Built a Memory Layer for My AI Agent
Stateless AI sessions waste engineering time. I built a context layer where sessions load relevant history, persist decisions, and traverse a knowledge graph instead of starting from zero.
Your Production System Has Logs. Your Career Probably Doesn’t.
Engineering work leaves traces everywhere: Jira, GitHub, Slack, incidents, notes. Career observability is about connecting them before performance review season turns you into an archaeologist.
I Built a RAG System to Solve a Real Problem I've Had for 15 Years
You put a specific keyboard on the rider, get flown out to the gig, and when you arrive it's something completely different. That's the scenario this project solves.
Projects
Practical AI workflow tools for music, security, and operations.
Local-first dashboard for checking recruiter outreach across legitimacy, security risk, original JD clues, opportunity fit, and safe reply strategy.
A grounded RAG system that answers questions about keyboard manuals using retrieved evidence, refusals, evals, and Langfuse tracing.
Practice app for musicians who can already play. Timer, YouTube player, metronome, tuner, sheet music, AI recommendations.
AI Studio Agent
In progressAutomated stem loading for Ableton Live. The goal: send a message from your phone and open a prepared Ableton project later.
Threat Intel Daily Brief
In progressAutomated morning email with high-signal cybersecurity threat items from trusted sources. Built for engineers and analysts.