I’m a full-stack developer with a passion for coding clean, semantic, and functional websites and applications. I do a lot of PHP, I dabble in Rails, and I enjoy using HTML, CSS, and JavaScript to build slick, modern interfaces. By day, I’m working as a Senior Software Engineer at Liquid Web.

Over the past few years, I’ve developed quite a fondness for WordPress, the platform on which this site is built (You can view the source of this site over on GitHub). You may have come across one of my WordPress plugins, WP Password Generator or WP Client Reference, both of which are available through the WordPress plugin repository.

Latest Blog Posts

Quick Tips for New Speakers

I’m not a professional speaker by any stretch of the imagination, but I do tend to make it to a non-negligible number of conferences each year, where I get up on stage for 45 minutes to an hour at a time and try to help people.

Lately, I’ve been trying to pay more attention to newer conference speakers, and trying to offer what little advice I feel qualified enough to give. This post aims to sum up some of the more common points.

Improvising a vacation coffee dripper

Last week, my wife, daughter, in-laws, and I took a week long vacation to the west coast of Michigan. Bookended by two weekends in Grand Rapids (the second of which was centered around WordCamp Grand Rapids), we rented a cottage in Spring Lake, just outside Grand Haven, MI.

The trip started off well enough (I should mention that my in-laws and I get along well, and my father-in-law joined me a couple of years ago on my walk across Columbus), but things got rough once we arrived at the cottage. No, it wasn’t family drama, nor was the toddler to blame (though her “terrible twos” aren’t helping) — the coffee pot in the cottage was on its last leg.

The first morning, the coffee was…okay. I had brought some beans from Upper Cup Coffee (one of my hometown favorites), but the coffee pot had obviously not been well-maintained. The coffee maker itself took about 30min to brew a 12 cup pot (which is way too damn long!), and when we tried to make a second pot the coffee maker decided it’d had enough: the heating element stopped working, and no heat means no hot coffee (and a severe lack of cognitive function on my part).

Automatically Install PHP’s Runkit7 via Composer

A WordPress plugin I’ve been working on recently needed to be able to accept configuration in a few different ways: users should be able to define a constant in the wp-config.php file or fill out a form within a settings screen. If the constant is defined, the setting screen should be aware of that and hide the setting, since the constant should take precedence.

This is a pretty common pattern in WordPress plugins, but it can get rather tricky to test; by design, once a constant is defined in PHP, you shouldn’t be able to change its value. PHPUnit has ways to work around this by running tests that define constants in separate processes, but this can seriously impact the performance of your test suite. Furthermore, the WordPress core test suite is pretty tightly coupled, so it doesn’t like when tests are run separately.

Get your geeky fill on my blog!