Blog
Thoughts on testing, automation, and software quality.
Deployment Debugging: How Code Duplication Caused a Production Bug (Part 3 of 3)
Deployed automatic AI tagging expecting smooth rollout. Reality: 5 cascading infrastructure bugs, 3 hours of debugging. The final bug? Code duplication caused storage backend mismatch.
AI Tagging Evolution: Manual First, Automatic Second (Part 2 of 3)
We started with a manual /ai-tag endpoint before building automatic tagging with Celery. Why? Validate the hard part (AI integration) before adding distributed systems complexity.
Building an AI Provider System: The Strategy Pattern for Vision APIs (Part 1 of 3)
Built a swappable AI provider system for automatic image tagging using the Strategy pattern. Switch between OpenAI Vision, Google Vision, or mock providers with a single environment variable - zero code changes.
AI for Social Impact: Ideas Worth Building
From potholes to plant disease — real-world AI ideas for social impact that go beyond the hype.
Integrating Supabase Auth with FastAPI: A Production Story
What went wrong (and right) when we added Supabase authentication to our image hosting service. Docker env vars, SDK breaking changes, and a sync-on-auth pattern that made migration painless.
Test Architecture for a Production Image Hosting Service
How Chitram structures 4,000+ lines of tests across unit, API, integration, and browser layers — with a TestDependencies pattern that solved our async nightmare.
Zero-Token Browser Testing with Bun and Playwright
How I cut browser testing costs by 99% using Daniel Miessler's kai-browser-skill pattern — code-first automation that runs infinitely without burning tokens.
Build Your Second Brain with Free Local AI (Obsidian + Ollama Guide)
Run a private AI assistant inside your note-taking app — no API costs, no data leaving your Mac.
Building AI-Powered Testing Solutions with AWS Bedrock
Exploring how large language models can transform accessibility testing and defect identification in modern web applications.