Here are some of my recent, popular, and favorite articles I have written.

Of course you're welcome to browse the archives for all my articles.


Launching another side-project

Coming to my decision to launch another side-project and key takeaways for working on side-projects.

7 minute read →


A lookbehind at 2023 and lookahead for 2024

A look back at my goals from 2023 and an outline of my goals for 2024.

3 minute read →


4 personal finance tips for Indie Hackers

A review of the personal finance decisions which increased my calm as an Indie Hacker running a successful SaaS.

6 minute read →


Spawning workers based on queue workload

The backstory for building a feature to spawn additional worker servers based on the job queue workload.

5 minute read →


A lookbehind at 2021 and lookahead for 2022

A look back at my goals from 2021 and an outline of my goals for 2022.

4 minute read →


Grinding to $1,000,000 in revenue over 6 years

A review of growing my SaaS product to $1,000,000 in revenue over 6 years, both from a business and personal perspective.

35 minute read →


Building a PHPUnit to Pest Converter in a week

The motivation and execution around building a PHPUnit to Pest Convert in one week.

5 minute read →


A lookbehind at 2020 and lookahead for 2021

A look back at my goals from 2020 and an outline of my goals for 2021.

6 minute read →


Configuration precedence when testing Laravel

A deep dive into the precedence of the various configurations when testing Laravel applications.

6 minute read →


Custom command to interact with Docker containers

Interact with Docker containers by name using one simple, custom command.

2 minute read →


Installing Apache, MySQL, and PHP on macOS using Docker

A tutorial for installing Apache, MySQL, and PHP on macOS for local development using Docker.

14 minute read →


Avoiding inheritance in Laravel

Developers often choose to use inheritance. However, in Laravel, this may prove to be a painful decision.

4 minute read →


Shift Database Outage

Last week Shift had a database outage with a data loss of over 600 orders.

4 minute read →


Testing middleware behavior with controller assertions

Test your controller actions use the expected middleware with a simple assertion.

2 minute read →


Streamlining Laravel

A proposal of the top changes I'd like to see which streamline Laravel and a the developer experience.

7 minute read →


Installing Apache, PHP, and MySQL on macOS Catalina

This is an update of a previous post to install Apache, PHP, and MySQL on Mac OS for macOS Catalina.

3 minute read →


Crafting maintainable Laravel applications

10 tips for crafting maintainable Laravel applications which leverage features of the Laravel framework while remaining easy to upgrade.

10 minute read →


Maintaining Laravel config files

A review of a recent change to Laravel Shift as it relates to a recommendation for crafting maintainable Laravel applications.

5 minute read →


TDD, Outside-In, and YAGNI

An outline of developing a feature practicing TDD, Outside-In, and YAGNI to demonstrate the intricacies of these practices working together.

5 minute read →


Why your team should not be upgrading old Laravel applications

Why upgrading your old Laravel applications is a waste of your resources with a pitch for Shift do it instead.

3 minute read →


Start testing your Laravel applications

An in-depth guide to using HTTP Tests to get started writing tests for your Laravel application.

19 minute read →


10 practices for readable code

A set of 10 practices for writing code with a focus on improving readability and reducing complexity.

5 minute read →


Untangling Nested Code

How to identify the different forms of nested code and refactor them to more readable code.

6 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 →


Compensation tips

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

4 minute read →


Practicing YAGNI

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

4 minute read →


100 days practicing TDD

A retro after practicing test driven development for 100 days.

2 minute read →


Are you a Boy Scout?

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

1 minute read →


Configuring Apache Virtual Hosts on Mac OS X

Tutorial for configuring Apache Virtual Hosts on Mac OS X.

5 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 →


Common debugging for PHP and MySQL

This post provides a basic checklist for common database debugging when developing with examples in PHP and MySQL.

2 minute read →


Why I leave a job

A reflection on the core criteria of a good job after deciding to leave The New York Times.

2 minute read →