Why Your AI Assistant Keeps Guessing Wrong (And How We Fixed It)
Three fixes. Three confident explanations. Zero progress. After a failed client demo and two weeks of pain...
Technical notes, project documentation, and lessons learned across software, DIY, writing, and more.
Three fixes. Three confident explanations. Zero progress. After a failed client demo and two weeks of pain...
Two days chasing a sync bug. Every API call returned 200 OK. No errors in the console. The AI iterated confidently on symptoms while the architecture...
You upgraded to Tailwind v4. Your build runs. Your CSS generates. Half your styles are missing. Welcome to the @source directive gotcha.
An Instagram post promised SEO magic through AI-generated articles. Instead of automating content, I automated everything else with 11 scripts.
Step-by-step guide to playing your first API Combat battle using nothing but curl. From registration to victory in 5 minutes.
We had architecture documents, code smell guides, testing strategies, and a global AI instructions file with every lesson learned.
Your dynamic class names aren't working. The CSS exists in your code but not in your output. Here's why Tailwind's JIT compiler is ignoring you and how to...
An AI wrote me a CI workflow. I understood maybe 40% of it. So I went line by line until I understood all of it. Here's what each piece does and why it's there.
A complete lesson plan with weekly activities, deliverables, and a weighted assessment rubric—mapped to 15 Wisconsin Computer Science Standards.
Students don't care about todo APIs. But they'll build combat bots to beat their classmates. Same concepts. Different motivation.
An API-only combat game where building the client is part of the gameplay. No UI. No graphics. Just REST endpoints and strategic combat.
You've been using Bootstrap for years. Then someone mentions Tailwind and suddenly you're supposed to write class names that look like inline styles from 2003.
Good dark mode should be instant, persistent, and user-controlled. Here's how to build it in about 20 lines of code — no library, no framework...
Stop thinking about function pointers. Start thinking about bells and notifications. A restaurant analogy that makes C# events actually make sense.
Part 2 of the SMS AI series. RAG transforms generic AI into useful AI. Here's how I added vector search, conversation memory, and production resilience.
Can I text an AI instead of opening another app? Turns out yes—and it validates a compelling business model.
You wrote a blog post. Now you need to share it on LinkedIn, Twitter, maybe a newsletter. Here's how to automate the boring part.
Most cookie banners are obnoxious because they're trying to get consent for tracking. If you're not tracking anyone, the whole thing gets simpler.
In which the author documents humanity's imminent obsolescence at the hands of our mechanical overlords. (Or does he?)
LinkedIn hot takes say AI replaces coders. After a year building production apps with AI assistance...
Setting up payment processing is stressful enough without wondering if your webhooks actually work.
You implemented all the SEO best practices. Meta tags, structured data, sitemaps—the works. Then you searched for your site and found... nothing.
You set up SSL automation once and it worked great. Then you added a new domain and hit every gotcha you'd forgotten about. Here's the checklist.
How I spent days debugging a silent Discord bot, only to discover the application itself was corrupted—and Discord gave zero indication anything was wrong.
You built a beautiful site but Google can't find it. Here's what actually matters for SEO—meta tags, structured data...
No database, no CMS, no admin panel. Just Markdown files, a JSON registry, and a thin C# service.
Your translations work, but users have to dig through browser settings to change languages. Let's build a dropdown that remembers their choice with cookies.
You set up localization, created the .resx files, it compiled... and then nothing happened. Here's why .NET silently ignores your translations and how to...
Your test suite exists. It passes. But how much of your code does it actually test? Here's how to set up Codecov and stop living in denial.
I built a Discord bot to summarize hundreds of messages using OpenAI - then discovered that all Discord bots run as a single instance serving every server.
Adding invisible bot protection to a contact form with Google reCAPTCHA v3 and a honeypot field - no puzzles, no friction, no spam.
I exported two years of AI chats and used embeddings, clustering, and topic segmentation to find patterns.
I asked two AIs to help debug performance issues. One maintained context and found the root cause.
Using GitHub Discussions as a comment backend for a blog - no database, no spam, no cost.
A programmer's guide to SPF, DKIM, and DMARC - why email authentication exists and how to configure it when your DNS lives in Cloudflare.
Setting up free, automated SSL certificates for multiple domains using a Raspberry Pi, Certbot, and Cloudflare DNS.
When Windows won't mount ext4 and you've forgotten your Pi's password, WSL and disk images come to the rescue.
A reusable task configuration for building, running, testing, and deploying multi-project ASP.NET solutions with Tailwind CSS, compound tasks...