Look Bro, I Know How to Write Good Code
One challenge I have, doing what I do, is getting into "discussions" with enterprise engineers who like to throw the weight of their enterprise position at me. This happens a lot. Especially when discussing AI.

Making Productivity Turing Complete
The last three weeks of my life have not been easy as I struggle to adjust to my new reality of doing 5 to 10 things at once. This can't live in my head, and I need a system.

The Token Police
When discussing things like OpenClaw or frontier models like Opus 4.6 and Sonnet 4.6 with 1M token windows, programmers start to get jittery...
Becoming The Wolf
You need to be on the cutting edge of AI if you're going to survive this wave. The hype cycle has ended, and we're now into the transition, and I'm talking to your boss.
Let Go, Let Claude
My mind can't seem to handle just how much I can get done with AI. Right now, I have 3 tabs open in iTerm, each of them running different Claude Code processes. I don't know how much more of this I can take...
The Ground Has Shifted
I'm building out a fleet of applications to power my business. I would never try this kind of thing in the past, but now with Claude Code... what the hell.
The Split
It quite literally is the best of times and the worst of times to be a software developer. You should be dreadfully inspired.
Enjoying The Ride
It's easy to worry about changes in life and work, but that's exactly what life is: constant change. We can fight it, or we can let it ride...
🤭 Let's try it and see if it sucks
One of the fun things you can do with AI is to "just try it", rather than think about it for days or do endless investigation. Let's see how that works.
Creating an MCP Server Using Node
I gave two in-person workshops recently at NDC Porto where we built out an MCP server for Claude... using Claude. Here's a recap.
Actual, tangible steps to get over Imposter Syndrome
I was telling a good friend about my new coaching/workshop thing I'm trying to get off the ground (ridding yourself of Imposter Syndrome) and they asked me a great question (paraphrased): This sounds like a slam dunk for people dealing with it, but are you offering a practical solution with steps or just inspirational stuff? How can you guarantee such a thing? This was in response to my offer: I want to help you break through your personal barriers and transform into the professional you want

In the Land of the Blind...
AI backlash is inevitable, but it doesn't help things if you spout nonsense and shout at clouds. In fact, it actually hurts.
The Incremental Tutorial
Using Claude Sonnet to learn something new is a ton of fun, especially if you focus on moving one small step at a time and asking a lot of questions.
When You Stop Loving What You Do
People write a lot about burnout and how to get over it, but they don't write about what happens when they face the same burnout for the 5th time, with the periods between decreasing. Eventually you face a hard truth: I just don't love this any more. AI seems to be accelerating this feeling, at least with many of my friends. There is a sense of malaise and frustration at what appears to be the slow erosion of intentional care and effort in our industry. Just let the AI do it, while you ... do

Checking Your Docs with Claude
I did a short stint at a startup over the last month and one of the things they asked me to do was verify the steps on one of their quick start pages. Super exciting stuff 🙄 but that's exactly the kind of thing Claude is good for.

How Did You Learn AI Tools?
I can't go for more than a few hours without reading someone's "horror story" about using AI for coding. I've had sessions which surely aren't fun, but I've never had a complete disaster like some people are having.

The AI Genie in the Bottle
I went to a startup pitch night a few days ago, and it was quite interesting. Every deck featured some form of AI integration, but a few actually centered their entire business model on the idea that AI will carry out the core operation of their business. Is this a good idea?

Following the Fun
Note: this post is a bit old and I've folded this venture back into this here site because... well just because...

Creating a Markdown Compiler
One of the most powerful things that AI can do for you is to create a script that does a thing you don't want to do. Mind-numbing, boring tasks, like compiling markdown documents into a format for a documentation site, or, in my case, a course template.

Using Gemini CLI to Learn Something New
Another week, another groovy tool to play with. This time it's Gemini CLI from Google, and it's impressive.

Initial Thoughts: Claude Code 2025
I've been using Claude Code for a solid 2 weeks now, completely replacing all tasks that I used to do in Copilot. I love this thing, but there are a few changes I don't love.

Using Claude Code to Learn Something New
Using an LLM to learn something new is a fun process that comes with a few caveats, such as "how can I trust what I'm seeing isn't complete crap?" I'll address all of this in today's video.

Turning a Markdown Spec Into a Database - With Test Data!
Working with AI coding tools takes repetition, and sometimes have a simple task to perform will unlock the process in your mind, and you'll start seeing patterns you never thought possible. Here's a fun task that will hopefully do just that.
How To Write a Prompt
AI is a simple tool that our code editors are mangling into an over-engineered mess. Underneath all of the confusion is a simple way of thinking which I'll get into here.

Copilot, The Good Parts: Efficiency
There are so many opinions about Copilot and AI in general - many of them negative - and it's easy to see why. There are some good parts, however, and I want to explore them.
🫡 The Best Job, The Worst Job
For over a year I had been working at least one weekend a month and well over 50 hours a week. I loved it, I hated it.

Just Released: The AI Pro
Everyone's talking about how AI is "revolutionizing everything" while you're sitting there wondering if you're missing some crucial piece of the puzzle. You've written a few prompts, read some crappy generated code, and turned it all off. If this sounds familiar, let me offer some help. In just a few hours I can make it all make sense with this simple, self-paced workshop. Find out morePreview the content
It's a Strange and Wildly Fun Time to Be Doing This Work
You already know this: there's a load of noise right now and most of the bearded oracles on YouTube love to talk about things they haven't shipped and claims of "Snake Oil" and "Hype Tribe" are rampant. These things are true. It's also true that AI, when carefully considered and implemented, will dramatically change your workflow. All it takes is that one sprint or debugging session when you're completely under the gun... and Claude comes in to save the day, nailing the solution. Those moments

I write about using AI with real codebases in the real world
This industry is doing what it does: completely change overnight. Adaptation is as much as skill as writing clean tests. If you need to get up to speed, this 30 minute video will get you to 80%, today.

Following Your Imagination
I learned to play ice hockey when I was 11 and, as a kid from Southern California, it wasn't easy. I learned how to skate and how to play the game at the same time, all while going through a massive growth spurt. My sister once called me a "baby giraffe on a frozen lake". Nice.

Embracing Mediocrity
AI returns mediocre results by definition - so what do you do to make things better? And why is this "by definition"?

🥷🏽 Self Sabotage: The Good Parts
Personal growth books claim self-sabotage holds us back. Business hustle books frame it as a necessary thing. Which is it?

👼🏼 Divine Code Reviews
Reviewing someone else's code can be frustrating, but also a learning experience for everyone. Let's see how Stephen King might help us.

The Subtle Arts of Logging and Testing
I'm a big fan of testing, but I get lazy sometimes and it ends up costing me money, directly.

Test-driven Development In Action
TDD is one of those things that people talk about, argue about, and think is interesting. I'm one of those people, so I asked Brad Wilson to clear it all up for me.

Meet Playwright
Curious about Playwright, the frontend testing framework? Well hang out for the next hour and I'll show it to you!

🤖 Does Functional Programming Matter To You?
Learning Elixir changed me as a programmer, and learning functional concepts changed the way I think about writing software. How about you? Is functional proogramming a useful thing to learn?
👻 Hacking Ghost for Fun and Profit
I've been using Ghost for many years and recently I decided to see just how far I could push it.
Surviving the Structured Interview
The tech industry is slowly changing over to structured interviews, but most people don't know what they are and that they have a formula!

Explain It Like I'm 5 - Why Are Hashes Irreversible?
How to explain hashing algorithms to 5-year olds? Well... I'll do my best in this post, which comes with a video too!
🤖 A Real World Approach to Playwright
Writing tests can be tricky, especially using a more complex tool like Playwright. I took some time and dug in over the last year and I'm happy I did.
What Is Your Yeet Threshold?
Solving problems is what we do, but sometimes the solution is to burn it all down and start again, learning from your mistakes. How do you make this choice?
😳 Allowing Yourself to Screw Up
I managed to screw a few things up this weekend and I want to believe it's OK. I like screwing up... it means I'm trying. Failure is the best teacher, after all. Then again...
What Should Be a Plugin vs a Composable vs a Store in Vue?
Vue is a very powerful framework that I love a lot, but understanding some of the builtin machinery can be extremely confusing. Here's how I deal with that.
Trying Something Different: A Real World Tutorial for Frontend Programming
I'm creating an episodic walkthrough where I build a real application I need to ship, and you get to do it with me. It's up for presale at 50% off.

Repositories and Unit of Work Don't Mix
There is a trend in the .NET space of trying to abstract EF behind a Repository. This is a fundamentally bad idea and hopefully I'll explain why.

Everyone Has a Plan, Until They Get Hit in the Face
I spent almost 3 hours last weekend trying to figure out one of the most vexing problems I've ever faced, and I recorded all of it.

How Elixir's Concurrency Changed Me as a Programmer
This is an excerpt for a talk I gave in 2016 at NDC London, featuring Elixir and the concurrency features it has, built in. It's easily the most annoying demo I've ever done...
Seven Simple Steps to Overcoming Imposter Syndrome
Getting over imposter syndrome is no easy task, but it starts by recognizing a cold, hard truth: you're being toxic to yourself and those around you. I'll share with you some steps I took to get over it.

Using Constraints to Protect Calendar Data in PostgreSQL
Think about the lines of code you would have to write in order to manage a scheduling system. Duration checks, start and end time requirements as well as checking for overlap! You could spend a few days writing all that code or you could let PostgreSQL do it better with 5 lines of SQL.
Weird Brazil Date Bug with Jon Skeet
Digging through my archives once again and found this wonderful video with Jon Skeet doing what he loves to do: sleuthing date bugs and answering questions on StackOverflow!
The First Draft of Anything Is Shit
I'm allergic to crappy, non-sensical, faked up demos that try to convey highly technical concepts. Yet I find myself falling into that lazy trap constantly. This requires intervention.

The Importance of Knowing Your Numbers
As programmers we tend to think of reports after the fact, often when it's too late. I learned this the hard way over the last few days.

Data Structures and Algorithms
Many people are interviewing these days and you really, really should know the basics if you expect to do well. You'll find that here with common data structures and algorithms.

Handling Dates and Times Properly in Postgres
Handling dates properly is delicate business and, thankfully, Postgres gives you many tools to help make sure you store date information correctly. But that only works if you know what's going on!

Striking Gold in My Archives
Digging through my archives of hundreds of videos, I found an oldy but goody - publishing it for you to enjoy!
Fun Geeky Things To Do For the Holidays
I love nerding out over the holidays and today was no exception. I added a feature to my blog that I've wanted to add forever!

Five Things I Learned Building Bigmachine.io Using Nuxt and Firebase
I like to change my publishing site regularly - it's fun and it keeps me sharp. This iteration is with Nuxt and Firebase, and I learned a ton.
Developing A Potent Voice
Writers often talk about "finding their voice", but what does that even mean? There are ways to loosen the control your internal filters have on your ability to express yourself.

Fast and Simple Web Apps with Nitro
Nitro is an exciting web server created by the unjs team, who are also the people behind Nuxt. Nitro is a study in simplicity and a wonderful tool for your JS belt.