Dan Diggas

Engineer

AI tools, and the infrastructure under them.

Backend and AI infrastructure at Sophos by day. Local-first tools for security, ops, and music the rest of the time.

Writing

Notes on AI agents, security, and building tools that last.

·5 min read

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.

·5 min read

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.

·9 min read

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.

·3 min read

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.

·10 min read

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.

·10 min read

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.

·9 min read

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.

·5 min read

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.

·5 min read

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.

·5 min read

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.

·7 min read

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.

·5 min read

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.

·5 min read

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.

·12 min read

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.

·8 min read

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.

·10 min read

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.

·5 min read

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.

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.

PythonStreamlitTavilyGeminiClickHouse

Local-first dashboard for checking recruiter outreach across legitimacy, security risk, original JD clues, opportunity fit, and safe reply strategy.

PythonAgent GraphDNS/RDAPCompanies HouseLocal UI

Practice app for musicians who can already play. Timer, YouTube player, metronome, tuner, sheet music, AI recommendations.

DjangoNext.jsPostgreSQLRailway

AI Studio Agent

In progress

Automated stem loading for Ableton Live. The goal: send a message from your phone and open a prepared Ableton project later.

PythonMCPGmail APIAbleton

Threat Intel Daily Brief

In progress

Automated morning email with high-signal cybersecurity threat items from trusted sources. Built for engineers and analysts.

PythonLLMRSSSMTP