Posts

  • Bullets, Cannonballs, and Web Components

    In his book Great by Choice, Jim Collins describes how launching new initiatives is best done by first firing bullets, then cannonballs. That is, performing small, inexpensive experiments helps companies "calibrate their line of sight," increasing the chance of success when the more substantial cannonballs are finally launched. It's hard...Read It
  • Deploying WordPress to WP Engine with GitHub Actions and Composer

    It's difficult to overstate the value of GitHub Actions in automating tasks we previously had to perform manually -- deploying WordPress sites included. Recently, I was tasked with setting up a WordPress repository to automatically deploy to a WP Engine environment whenever a commit is made to a particular branch....Read It
  • When DOM Updates Appear to Be Asynchronous

    Imagine we have some JavaScript on a page that updates an element's contents and immediately logs those contents out: After loading the page, you'd correctly expect that "updated text" will be displayed on the screen. And when it's exposed via that console.log(), you'll see the same value there too. The...Read It
  • Why I Like Tailwind CSS

    I've used Tailwind CSS for a few projects over the last several months, and it's been steadily growing on me -- to the point of it becoming my go-to tool for styling new projects. At the same time, I'm seeing a lot of people ask what all the hype is...Read It
  • Don't Feel Bad About Using XMLHttpRequest

    A while back, I began contributing to a small JavaScript library responsible for sending a POST request with some data to an endpoint. At the time, it used axios to make that request, and I wanted to simplify things by shedding a dependency. The obvious alternative was fetch -- modern,...Read It
  • As an Engineer, Write

    A post on behalf of my team about why growing in your craft requires writing more than just code....Read It
  • When It Makes Sense to Use a Utility Function Instead of a Polyfill

    Modern iterations of JavaScript have introduced some nice methods that make writing code a lot more legible, performant, and fun to write. Take, for example, the find() method on the Array prototype, which allows you to elegantly retrieve the first item in an array that meets some condition. Features like...Read It
  • Why Webpacker Wouldn't Compile Assets in a Specific Environment

    A while back, I started working in a Rails application in which I needed to introduce a JavaScript file that'd be compiled with Webpacker. To do so, I created the file in my packs directory and loaded it up via content_for: Locally, things worked great! But once I deployed, integration...Read It
  • Clean Up Your Redux Store Listeners When Component State Updates

    I'm writing a Gutenberg block for TypeIt that'll allow content creators to easily drop typewriter effects into WordPress. The Gutenberg infrastructure is heavily rooted in the React ecosystem, so building a block feels very much like building a React application. One piece of this ecosystem that's new to me, however,...Read It

1 of 4