Security and privacy, in practice
A fourth host on the same jar: taking my kanban board off localhost
My kanban board had no authentication at all and handed its entire database to any caller. Putting it on focus.zakaria.lu meant a fourth host on the jar that was already running - plus a disclosure bug caught in review, and one cookie dot that 500'd every sign-in.
30 Jul 2026
·
8 min read
·99 views
Working with Claude Code
82 agents, one bug: running Claude's security scanner on my own code
I pointed the new claude-security plugin at this very site. It spawned 82 agents, proposed 10 vulnerabilities, and then argued itself out of 9 of them. The one that survived was real — and it shipped to prod the same afternoon.
24 Jul 2026
·
6 min read
·193 views
Shipping an AI feature into my own product
·
Part 3
Adding a job description match to my AI Concierge
I added job-description matching to the AI concierge on my career site. It shipped with no new bean, no new table, and no migration — because the leverage was in a seam I'd already built. A design note on shared streaming cores, streamable structured output, and treating a pasted JD as hostile.
13 Jul 2026
·
11 min read
·117 views
Security and privacy, in practice
Four security headers, and the CSP I deferred on purpose
The cheapest security win on a single-container stack lives at the reverse proxy. Here's the four-header Traefik middleware I shipped, the two things I deliberately held back, and the report-only CSP rollout I'm lining up next.
8 Jul 2026
·
6 min read
·128 views
Shipping an AI feature into my own product
·
Part 2
I red-teamed my own AI concierge
My site has an 'Ask Zakaria' AI box that answers untrusted recruiter input. So I spent an afternoon trying to break it — prompt leaks, tool-call injection, XSS, a cross-language jailbreak. Here's what held, and why the real defense isn't a clever prompt.
7 Jul 2026
·
5 min read
·200 views
Security and privacy, in practice
Docker secrets: the delivery channel is the whole game
Five ways to hand a secret to a Docker container, ranked by who can read it back out. The source is just plumbing - environment variable vs file is what actually decides your exposure.
20 Jun 2026
·
5 min read
·142 views