Here's everything I've ever written, starting all the way back to 2008. Enjoy!
Install PHPMyAdmin alongside your local macOS development environment running Apache, MySQL, and PHP using Docker.
Have your Docker container prompt match your local prompt and add a simple emoji so you know where you are.
Interact with Docker containers by name using one simple, custom command.
A tutorial for installing Apache, MySQL, and PHP on macOS for local development using Docker.
Developers often choose to use inheritance. However, in Laravel, this may prove to be a painful decision.
Last week Shift had a database outage with a data loss of over 600 orders.
A look back at my goals from 2019 and an outline of my goals for 2020.
Test your controller actions use the expected middleware with a simple assertion.
A proposal of the top changes I'd like to see which streamline Laravel and a the developer experience.
Steps to configure PHP, Apache, and MySQL after upgrading from Mac OS X Mojave to macOS Catalina.
This is an update of a previous post to install Apache, PHP, and MySQL on Mac OS for macOS Catalina.
10 tips for crafting maintainable Laravel applications which leverage features of the Laravel framework while remaining easy to upgrade.
A review of a recent change to Laravel Shift as it relates to a recommendation for crafting maintainable Laravel applications.
Answers to 42 Git questions asked during a recent training I lead to guide a development team from git init to Git Master.
An outline of developing a feature practicing TDD, Outside-In, and YAGNI to demonstrate the intricacies of these practices working together.
Why upgrading your old Laravel applications is a waste of your resources with a pitch for Shift do it instead.
A guide for testing Stripe Checkout using Laravel Dusk to verify the most important piece of your application - accepting payments.
Tests provide confidence the code behaves as expected and confidence to refactor the code in the future.
A review of underutilized Laravel features found by Shift analytics and shared at Laracon US 2019.
Ways to reduce the cost of setting up your existing Laravel application for testing.
I woke up to 56 emails, 17 tweets, 9 Slack messages, and 4 telegrams. It was 7:07 AM.
An in-depth guide to using HTTP Tests to get started writing tests for your Laravel application.
An alternative approach to testing validation in Laravel which minimizes the number of tests required, while maximizing confidence.
Some insight in how I price my products and services, and the reasoning behind a recent price increase for Shift.
The second in a series on building products where I review steps done to grow a new audience for my upcoming product Optionality.
Some notes on the process of converting the static site generator I use from Jekyll to Jigsaw.
A look back at my 2018 dev goals and a lookahead at my dev goals for 2019.
The first in a series of posts on building products from the ground up.
Steps to configure PHP, Apache, and MySQL after upgrading from Mac OS X Sierra to macOS Mojave.
This is an update of a previous post to install Apache, PHP, and MySQL on Mac OS for macOS Mojave.
A set of 10 practices for writing code with a focus on improving readability and reducing complexity.
A unique analysis of data from Laravel Shift on over 8,000 Laravel apps.
How to identify the different forms of nested code and refactor them to more readable code.
A little backstory on the 5 development goals I set to achieve in 2018.
Why differences in test objects are often inconsequential and how abstraction can improve developer happiness.
Three more practices to write clean code and help improve code readability.
In an effort to provide on the go support for Laravel Shift, I created an SMS based admin using Nexmo and Laravel.
Exploring the various Git commands you can run when you make a commit on the wrong branch.
Additional references from my recent post "Writing Clean Code" containing motivation and practices for writing clean code.
Three simple practices to help write clean code and improve the readability of a codebase.
The backstory for my plan to host an online workshop on Git.
A closer look at the important difference between changing code and refactoring code.
I started invested in the stock market when I was 20. Over the past 15 years, I learned these valuable lessons.
Most high performance web sites optimize for the sad path. In this article, we address a way to optimize for the happy path too.
Advice on compensation, seeking raises, and determining when to change jobs shared from my own experiences.
A real world example of using git bisect to find a bug deep in my application code.
Some claim aliasing core Git commands is the "Right Way". It's not.
Why I believe Lumen is dying and what the future holds for Lumen.
A response to Adam Wathan's challenge that isolated unit testing is incompatible with TDD.