Nearly every application in existence requires some form of configuration. After all, no two instances of the same app are exactly the same. The "tried and true" (read "quick and dirty") way of doing this has conventionally been with arrays. This works well for most basic configuration values of scalar types, however, sometimes it may be necessary to configure complex objects.
azPHP Presentation: Don't Fear the RegEx
Check out my presentation from the October 2020 azPHP meetup: Don't Fear the RegEx, a crash corse on regular expressions.
Directory Lister 3 (beta) is here!
I'm excited to announce the immediate availability of Directory Lister 3 Beta for testing and feedback. Everyone is encouraged to download the Directory Lister 3 beta and start testing today. Head on over to beta.directorylister.com to get started.

Embrace the Framework
Frameworks are among the most important tools we developers have and yet they are often taken for granted. The way I see it is a framework has two primary benefits: 1) saving individual developers time by providing predefined solutions to common problems and 2) allowing teams to work more efficiently by giving them a common model for coding standards, file organization, design language and more. However, these benefits quickly break down when framework conventions are broken or ignored, intentionally or otherwise.
azPHP Presentation: PsySh
My presentation from the June 2019 azPHP meeting on PsySH, the terminal-based interactive PHP debugger and REPL.
Read More
Seeding is Hard
We've all been there... banging our heads against a wall for 20 minutes wondering why our app isn't working before we realize we forgot to seed our database when running migrations. Okay, easy fix:
$ php artisan migrate --seed
Migration table created successfully.
Migrating: 1996_02_27_123456_create_pokemon_table
Migrated: 1996_02_27_123456_create_pokemon_table
Seeding: PokemonSeederReflectionException : Class PokemonSeeder does not exist
A small personal accomplishment
While working on a project at work it was necessary to interface with the Okta API for user authentication and authorization. To accomplish this I created, an independent PHP client library. As it stood there were no official or unofficial PHP libraries available for working with the Okta API and I felt it would be beneficial to the community, as well as my employer, to publish this library as an open source project on the company GitHub account. So I talked to some people, sent some emails and ultimately got the legal department to okay it.