My AI Coding Stack: A Practical Guide to Using ChatGPT, Cursor, Claude Code, and Lovable
An evolving, practical AI coding stack — ChatGPT, Cursor, Claude Code, and Lovable — updated with how I now default to the Claude Code CLI, route Opus, Sonnet, and GPT to different jobs, and why I dropped Fable.
The Skill That Stops Claude From Forgetting Your Tasks
A new skill that turns a raw, unstructured brain-dump into a forced checklist of tasks for Claude — and makes it report back exactly what it did.
Please Stop Comparing LLMs With One-Shot Prompts
One-shot prompt comparisons between LLMs are everywhere right now, and they're useless. The problem isn't the model — it's that nobody bothered to write a spec.
Fable vs. Opus: My Token-Budget Verdict
I burned through two paid Max accounts in three days switching to Fable. Here's why I went back to Opus, and where Sonnet actually wins.
Write Your Acceptance Criteria Before You Let AI Touch the Code
A short AI-coding tip: write your acceptance criteria and tests during the plan, before any code gets written — so you never miss a requirement, and AI can test itself.
Let AI Test Its Own Work: A UAT Loop With Claude Code and Playwright
The practice I use to have Claude Code test its own work with a UAT file, Playwright, and per-persona .env credentials — then ask it to fix what it finds and retest, almost on its own.
One Database, One Repo: Why Multi-Repo Hurts AI Coding
A multi-repo split I made for scalability reasons turned into duplicated code and handover files. My rule now: one database, one repo, period.
Stop Prompting in English If It's Not Your Language
Prompting an LLM in English when it's not your native language adds a translation layer between your thinking and the model — switch to your own language and that layer disappears.
Sometimes You Need to Let Them Go (And Sometimes You Need to Let Yourself Go)
Personal reflections on letting people go, being let go, and knowing when to leave a company yourself, drawn from the author's PM career.
What If AI Sat in the Middle of Every Conversation?
A WhatsApp voice message and an old failed startup called Alfred got me thinking: what if AI sat between every sender and every receiver, translating each message into the style the other person actually wants?
If You Want to Ride the Horse, You Need to Speak Its Language: A Non-Engineer's Survival Guide to Git and GitHub
A plain-language glossary and workflow guide to Git and GitHub for non-developers using AI coding tools.
GSD (Get Shit Done): The Framework That Changed How I Build Serious Software With AI
A deep dive into the GSD plugin for structuring multi-phase software projects with LLMs, from planning to autonomous execution and testing.