• Building a standalone block editor in WordPress using Gutenberg

    A few month’s ago I merged a PR to Gutenberg Core for a new documentation tutorial called Building a custom block editor. The tutorial was originally produced for my own learning, but I was encouraged to add it to the official documentation by members of the Gutenberg core team and the WordPress community. The tutorial … Continued

  • Learning the React Context API

    I have to admit, I’ve never fully taken the time to learn React Context API. Sure I’ve “used” it, but it’s always been me skirting around the edges of existing code. This post puts an end to that. I’ll walk through the basics of what I’ve learnt and how to put it into practice in … Continued

  • Avoiding React component re-renders with React.memo

    Used properly, React.memo can help avoid unnecessary re-renders. Learn how to apply it correctly.

  • 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