Blog

Thoughts on testing, automation, and software quality.

Why I Built a Pre-Ship Risk Critic

The origin story of Gremlin - an AI tool that systematically asks 'what if?' questions before code ships. How 93 curated risk patterns from real incidents add genuine signal on top of LLM reasoning.

AI QA Gremlin Prompt Engineering Python

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.

deployment debugging dry-principle production-bugs refactoring

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.

ai manual

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 strategy-pattern architecture openai vision-api

AI for Social Impact: Ideas Worth Building

From potholes to plant disease — real-world AI ideas for social impact that go beyond the hype.

AI Social Impact Edge AI Civic Tech Agriculture

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.

FastAPI Supabase Authentication Python Docker

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.

Testing Python FastAPI Architecture CI/CD

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.

Testing Playwright Bun AI Automation

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.

AI Ollama Obsidian Local LLM Productivity

Building AI-Powered Testing Solutions with AWS Bedrock

Exploring how large language models can transform accessibility testing and defect identification in modern web applications.

AI AWS Bedrock Testing Automation Accessibility