About
I'm David J Knudson. I've spent more than twenty years in hotel operations, and I'm moving into hands-on IT work. I built Tsvetok from scratch. It runs on a Mac mini in my home as background services, with a watchdog that checks them every five minutes. An iPhone app I built delivers my daily briefing. These days it writes much of its own tooling. I keep notes on what breaks and how I fix it.
I built two apps for my pets' records: I took PetFiles through App Review in March 2026 and released Zhiva on the App Store in October 2026. I run a home lab with managed switches and a UniFi network. I earned the Jamf Certified Associate - Jamf Pro certification in September 2026. I also hold the Google IT Support Professional Certificate (2021) and completed Flatiron School's software engineering program (2020). Based in Los Angeles.
Writing
- My Four AI Judges Were Worth 1.6 Votes ↗
- Apple’s AI Told Me It Was Available. Then It Refused All 20 Calls. ↗
- Row-level security does not apply to TRUNCATE. My end-user roles held it on all 21 tables. ↗
- I Put macOS’s Free Language Model on Mail Duty. 8,427 Calls Later, My Ledger Says $0.00. ↗
- Starve the Orchestrator: Why the Smartest Agent in My System Knows the Least ↗
- 841 Teardowns in Two Minutes: When the Fail-Safe Became the Storm ↗
- The $0 That Should Have Scared Me ↗
- I Let Three Coding Agents Near My Whole Digital Life (Safely) ↗
- I thought a different model would catch the plate error. The data said otherwise. ↗
- The nightly check said ‘all clean’ for weeks. Thirteen stale tasks disagreed. ↗
- A 0.91 confidence score told me the plate was right. It wasn’t. ↗
- My AI agent said the bug was “structurally cured.” Grep found zero hits. ↗
- My AI assistant bricked itself — and the cause was two kilobytes of its own context ↗
- My vision model was confidently wrong about a plate ↗
- How pinning contracts in AI briefs cut my median wall-clock to 0.22× of estimate ↗