Writing on programming, career, and life.

All of my long-form thoughts on programming, career, databases, and more, collected in chronological order.

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.

I Would Love to Work With You

Like so many, I was laid off from Microsoft on May 13, 2025. Never good news, but life moves on and I'm still fired up to do fun things with the right group of people.

👹 The Wrath of the Junior Developer

There are a lot of opinions about AI, whether it helps or hinders our coding process and our team in general. Many are concerned that junior devs will be the ones impacted the most.

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.

It wasn't what you said, but how you said it

I make videos for a living and I swear: each one is an adventure. You would think I would have a system down by now but, as it turns out, each video is a unique thing that demands it's own type of story telling.

Embracing Mediocrity

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

Using Obsidian as a Programming Journal

A journal is critical for your career - but it's more than just throwing words on a page. How do you organize things, and what process do you use? Let's find out...

The Happiness and Terror of Shipping

You would think that after years of development, the act of shipping something would be nothing but joy and relief. In the moment, however, "pushing send" is te...

✈️ What's Your Exit Plan?

Retirement is one thing, being where you want to be and doing what you want to do when your current job is finished in another thing entirely. What’s your exit strategy?

👼🏼 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.

👻 Hacking Ghost for Fun and Profit

Back in 2014 I created a course for Pluralsight called Hacking Ghost, which is the CMS platform you're reading this post on (or maybe got an email from). I had...

🤖 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...

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...

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 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!

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.

Hello PostgreSQL

In this production, a SQL Server DBA (Rob Sullivan) and a developer (Rob Conery) take a deep dive into PostGreSQL (v9.1) and are surprised by just how capable, intelligent and *fast* PostGreSQL is.

Get Involved!

In this feature-length production, Scott Hanselman and Rob Conery offer suggestions and advice on how you can get out there, and get involved. Blogging, Twitter, Github, StackOverflow, User Groups and Conferences: get out there!

Why Blogs Make Outstanding Books

Can a blog be turned into a book? Yes! But it can't be just any old blog - the writer has to have something to say and no fear of saying it... like Troy Hunt. Here's the story of how I turned his blog into a book.

Losing Yourself

The hardest thing anyone can do is break down their own mental constructs, realizing they're toxic and destroy relationships. It's part of the journey.

Just Paddle

I really think too much. I have a lot of fear in me that keeps me from doing things I love to do. It's unhealthy and also self-obsessive (there are 3 "I's" and 2 "me's" above). I really need to stop thinking and just... do...

The Fabulous Linked List

It’s always fun to study the basics, and in this video we dive into the linked list and how to create one from scratch. Sounds ridiculous, but it can rescue an interview!

What's Your Exit Plan?

Retirement is one thing, being where you want to be and doing what you want to do when your current job is finished in another thing entirely. What’s your exit strategy?

Big O Notation

Understanding Big O has many real world benefits, aside from passing a technical interview. In this post I'll provide a cheat sheet and some real world examples.

What’s the Best Hashing Algorithm for Storing Passwords?

Most people will default to bcrypt when choosing a hashing algorithm for storing sensitive information - but why? Are there other choices? Indeed! In this video we'll take a look at scrypt, PBKDF2 and my favorite: argon2

Virtual, Computed Columns in PostgreSQL 12

PostgreSQL 12 introduced a feature I've long wished for: computed columns that are indexable and stored on disk! They're amazing and in this post I'll show you how they work and how things kind of go...