• Some contributions to the Gutenberg Core Navigation Block

    Over the past few months, the team I work in at Automattic were allocated to spend some time improving the experimental Navigation block in Gutenberg Core. This is how I was able to help.

  • Deploying WordPress sites to Pressable via the command line

    Pressable is a reliable and powerful WordPress hosting solution, but it doesn’t provide SSH access. So how can we achieve robust and automated deployments that can be run from the command line?

  • On Getting Hired at Automattic

    As I recently posted, I’m joining (or if you’re reading this after Nov 12th 2018 – have joined) Automattic as a JavaScript Engineer. For those who don’t know, Automattic (abbreviated to A8c for the remainder of this article) is a fully distributed company, meaning it’s employees work remotely from all over the world. As a … Continued

  • Joining Automattic

    I’m excited to announce that as of November 12th 2018, I will be joining Automattic – the company behind WordPress.com, Akismet and more – as a JavaScript Engineer. This is the culmination of a 3 year journey to focus more deeply on JavaScript, and my new role provides me with the opportunity to work in … Continued

  • What is the JavaScript Event Loop?

    If you’ve been working on significant JavaScript applications for a while, you’ve likely heard engineers using terms like “non-blocking”, “single threaded” and “the event loop”. If you’re anything like me, for a long time I had only a superficial understanding of what those terms meant and even less of an idea how JavaScript worked under … Continued

  • What is a closure in JavaScript?

    If you are working with JavaScript it is critical that you understand the definition of a closure. Closures are widely employed in JavaScript code, for example: as callback functions for information hiding in currying or partial application As a result, without a firm grasp of how closures work you will struggle to produce high quality … Continued

  • Demystifying JavaScript Function Expressions vs Declarations

    I was recently asked to explain the difference between a JavaScript function expression and a function declaration. This one always caught me out until I created a mental model to allow me to understand it. Firstly though, let’s clear up which is which: A function expression looks like this …where as a function definition looks … Continued

  • Introducing FetchPjax – PJAX (PushState + Ajax) navigation functionality using the native Fetch API

    For the past couple of weeks I’ve been working on a new JavaScript library to handle PJAX using the native Fetch API that’s build right into modern browsers. As a result of these efforts I’m pleased to announce the release of FetchPjax. TDLR; you can grab fetch-pjax on npm or view the source on Github. What is … Continued

  • A brief intro to Redux

    Recently I’ve been learning a lot about React and it’s associated ecosystem. If you have any awareness of React, you’ll probably be aware that it’s primarily concerned with the View layer. As a result, if you’re looking to build anything beyond the most simple application you’ll need a (sane) way to manage state. One solution to this … Continued

  • Animating CSS text alignment

    This week, a colleague of mine asked whether it was possible to animate the CSS text-align property using CSS transitions. My immediate response was of course “no!”, but despite having said that I had a nagging suspicion it was in fact achievable in some (as yet unknown) way. Given that the animation was fairly critical to … Continued