Archive

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


A review of 2019 and goals for 2020

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

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


Updating Apache, PHP, and MySQL for macOS Catalina

Steps to configure PHP, Apache, and MySQL after upgrading from Mac OS X Mojave to macOS Catalina.

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

6 minute read →


42 Git Questions Answered

Answers to 42 Git questions asked during a recent training I lead to guide a development team from git init to Git Master.

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


Testing the most important piece of your application

A guide for testing Stripe Checkout using Laravel Dusk to verify the most important piece of your application - accepting payments.

6 minute read →


Testing makes me a confident developer

Tests provide confidence the code behaves as expected and confidence to refactor the code in the future.

8 minute read →


Laravel - Some Shifty Bits

A review of underutilized Laravel features found by Shift analytics and shared at Laracon US 2019.

12 minute read →


Lowering the time cost of testing existing Laravel applications

Ways to reduce the cost of setting up your existing Laravel application for testing.

5 minute read →


A Shifty Email Bug

I woke up to 56 emails, 17 tweets, 9 Slack messages, and 4 telegrams. It was 7:07 AM.

6 minute read →


Start testing your Laravel applications

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

21 minute read →


Testing validation in Laravel by asserting a Form Request

An alternative approach to testing validation in Laravel which minimizes the number of tests required, while maximizing confidence.

5 minute read →


Pricing is hard. Raising prices.

Some insight in how I price my products and services, and the reasoning behind a recent price increase for Shift.

3 minute read →


Building Products - Building an audience

The second in a series on building products where I review steps done to grow a new audience for my upcoming product Optionality.

4 minute read →


Jekyll to Jigsaw

Some notes on the process of converting the static site generator I use from Jekyll to Jigsaw.

5 minute read →


2018 Lookbehind, Lookahead 2019

A look back at my 2018 dev goals and a lookahead at my dev goals for 2019.

5 minute read →


Building Products - Starting from Square 0

The first in a series of posts on building products from the ground up.

6 minute read →


Updating Apache, PHP, and MySQL for macOS Mojave

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

3 minute read →


Installing Apache, PHP, and MySQL on macOS Mojave

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

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


Laravel by the Numbers

A unique analysis of data from Laravel Shift on over 8,000 Laravel apps.

10 minute read →


Untangling Nested Code

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

6 minute read →


2018 Dev Goals

A little backstory on the 5 development goals I set to achieve in 2018.

5 minute read →


Fake it by stubbing the mock, dummy

Why differences in test objects are often inconsequential and how abstraction can improve developer happiness.

3 minute read →


Writing Clean Code (Part 2)

Three more practices to write clean code and help improve code readability.

4 minute read →


SMS admin in 8 lines of code

In an effort to provide on the go support for Laravel Shift, I created an SMS based admin using Nexmo and Laravel.

4 minute read →


Committing to the wrong branch

Exploring the various Git commands you can run when you make a commit on the wrong branch.

4 minute read →


References from "Writing Clean Code"

Additional references from my recent post "Writing Clean Code" containing motivation and practices for writing clean code.

1 minute read →


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 →


Git - Command line vs GUIs

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

2 minute read →


When to make a Git commit

2 rules I follow for when to make commits.

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