Writings
Building an AI job-fit checker without leaking secrets or burning money
How the AI Fit Check on this site stays grounded, treats input and output as hostile, keeps its key on the server, and makes the worst-case abuse cheap and harmless.
When my AI features went silent (and nothing errored)
Groq retired the model my app used. Every AI feature quietly went blank, and my error handling is why nobody noticed. What I changed.
Rebuilding my portfolio in 2026
Why I retired my 2019 Gatsby site, rebuilt it in React + Vite, and locked down the npm supply chain while I was at it.