Here's everything I've ever written, starting all the way back to 2008. Enjoy!


Writing Clean Code

Three simple practices to help write clean code and improve the readability of a codebase.

4 minute read →


You changed the code, you didn't refactor the code.

A closer look at the important difference between changing code and refactoring code.

2 minute read →


Starting an online workshop for Git

The backstory for my plan to host an online workshop on Git.

3 minute read →


15 years of amateur trading

I started invested in the stock market when I was 20. Over the past 15 years, I learned these valuable lessons.

12 minute read →


An edge case for cache busting

Most high performance web sites optimize for the sad path. In this article, we address a way to optimize for the happy path too.

4 minute read →


Compensation tips

Advice on compensation, seeking raises, and determining when to change jobs shared from my own experiences.

4 minute read →


Using git bisect

A real world example of using git bisect to find a bug deep in my application code.

4 minute read →


Stop aliasing core Git commands

Some claim aliasing core Git commands is the "Right Way". It's not.

1 minute read →


Lumen is dead. Long live Lumen.

Why I believe Lumen is dying and what the future holds for Lumen.

2 minute read →


Accepting Adam's TDD Challenge

A response to Adam Wathan's challenge that isolated unit testing is incompatible with TDD.

4 minute read →


A closer look at git rebase

For some, git rebase falls on the magic end of the spectrum for Git commands. In this post, we'll take a closer look at git rebase.

3 minute read →


When to make a Git commit

2 rules I follow for when to make commits.

3 minute read →


Git - Command line vs GUIs

A case for using Git from the command line instead of GUIs.

2 minute read →


Pivoting from Laravel Shift

Why I chose to pivot from a recent, successful product to a new product.

2 minute read →


Shift Developer Platform

Announcing a platform for developers to build custom Shifts.

1 minute read →


3 Git Commands I use every day

Some insight into three of the Git commands I use every day.

3 minute read →


Getting Git - A Video Series

The pre-announcement of my new video series "Getting Git" - a comprehensive guide from git init to Git master.

1 minute read →


Practicing YAGNI - Show me the code

A write-up of the code samples given during my "Practicing YAGNI" talk at ZendCon 2016.

0 minute read →


Updating Apache, PHP, and MySQL to Mac OS X Sierra

Steps to configure PHP, Apache, and MySQL after upgrading from Mac OS X El Capitan to Mac OS X Sierra.

3 minute read →


Installing Apache, PHP, and MySQL on Mac OS X Sierra

This is an update for Mac OS X Sierra of a previous post on installing Apache, PHP, and MySQL for Mac OS X.

3 minute read →


Update PHP on Mac OS X

How to upgrade or install a different version of PHP on Mac OS X.

3 minute read →


Laravel Shift - 1,000 applications upgraded

A retrospective on creating Laravel Shift as it reaches its milestone of 1,000 Laravel applications upgraded.

4 minute read →


The Proximity Rule?

A recent coding style I call the "Proximity Rule". Might be called something else, but I still like the code.

2 minute read →


Practicing YAGNI

A summary of my talk at Laracon US 2016 on "Practicing YAGNI".

4 minute read →


From Mentoring to Pair Programming to Coaching

Going beyond mentoring or pair programming with personal development coaching in PHP, JavaScript, Objective-C, TDD, Git, and more.

1 minute read →


Programmer - Stages of Development

A rant on the different stages a programmer reaches during their development.

1 minute read →


Shift: Laravel Automated Upgrade Tool

Introducing Shift - a Laravel framework automated upgrade tool.

1 minute read →


Updating Apache, PHP, and MySQL to Mac OS X El Capitan

Steps to configure PHP, Apache, and MySQL after upgrading from Mac OS X Yosemite to Mac OS X El Capitan.

2 minute read →


Installing Apache, PHP, and MySQL on Mac OS X El Capitan

This is an update for Mac OS X El Capitan of a previous post on installing Apache, PHP, and MySQL for Mac OS X.

3 minute read →


100 days practicing TDD

A retro after practicing test driven development for 100 days.

2 minute read →


Math in Dates

Finding the frequency of dates that satisfy a simple math equation.

1 minute read →


Two Weeks of Extreme Programming

Some initial thoughts after two weeks on a new team practicing extreme programming.

2 minute read →


3 minute read →


I Don't Disagree

A rant for simpler, clearer communication.

1 minute read →


Removing Comments

A closer look at the practice of removing comments from code.

3 minute read →


Migrating from Octopress to Jekyll

Back to the basics with just Jekyll.

2 minute read →


I'm going to kill you Zason!

Childhood fun that took a wrong turn.

2 minute read →


Are you a Boy Scout?

A look at how the simple practice of "boyscouting" can improve your code.

1 minute read →


How Task Driven Development Kills the Craft of Software Engineering

A look at how the process of task driven development kills the craft of software engineering.

2 minute read →


Got Slack?

Got Slack? A look at what slack is, how slack is used, and why you need slack?

2 minute read →


Configuring Apache Virtual Hosts on Mac OS X

Tutorial for configuring Apache Virtual Hosts on Mac OS X.

5 minute read →


Installing Apache, PHP, and MySQL on Mac OS X Yosemite

This is an update for Mac OS X Yosemite of a previous post on installing Apache, PHP, and MySQL for Mac OS X.

3 minute read →


The Reading List

A list of books culled over the years on the journey to improve my craft as a software engineer.

1 minute read →


Finally, I speak PHP

After 3 years of rejection, I am finally speaking at a PHP conference.

1 minute read →


Failures and Fuck-ups

A distinction between failure and fuck ups.

1 minute read →


The Debugging Golden Rule

Developers need to remember the Debugging Golden Rule.

2 minute read →


A rockstar developer can't save you

A rockstar developer can't save you. Why? Because the developer gap.

2 minute read →


Letting a successful app fail

Making the difficult decision to let PocketBracket, a successful app, fail.

2 minute read →


Beerio Kart

The rules for turning Mario Kart for the Nintendo 64 into a drinking game.

1 minute read →


A Comment from StackOverflow

Thoughts on the responsibilities of a top user on StackOverflow after a comment from another user.

2 minute read →