About

Michael smiling into the camera.

My story

Why, hello there. 👋

I'm a Senior Software Engineer at Recursion where I help a team of scientists and engineers discover promising new drug candidates using a combination of biology, chemistry, automation, data science and machine learning. It's easily the most worthy cause I've ever contributed code to and I feel super lucky to be part of this awesome team.

Before joining Recursion, I was a Senior Software Engineer on ecobee's ".com" team where I helped migrate ecobee's ecommerce website from a legacy WordPress codebase to a modern stack built with React, Gatsby, TypeScript, Netlify, Contentful and Shopify. I’m especially proud of leading the planning and development of ecobee’s shopping cart, which reliably facilitates $100K+ in sales per week.

Before joining ecobee, I built and maintained 25+ marketing websites for Coffeeshop Creative and initiated a number of new best practices, including a git-based workflow, continuous deployment with Netlify, and regular performance, SEO and accessibility audits with Lighthouse and similar tools.

Outside of work, I enjoy teaching web development to new coders and created a 10-video series that teaches beginners how to get started with React and Gatsby.

You can find me on Twitter where I chat about web development and share links to learning resources I've enjoyed, or on GitHub where I work on side projects in the open.

Projects

Where my time goes after work.

  • Gatsby Tutorials

    A community-updated list of 200+ Gatsby.js tutorials with 100+ stars on GitHub. The tutorials are searchable and filterable and include video, audio and written learning resources.

  • Up and Running with Gatsby

    10 beginner-friendly YouTube videos that teach the basics of React and how to get a Gatsby project up and running.

  • Dotfiles

    Configuration files for setting up a comfortable development experience on Mac that include my favourite settings for Neovim, Tmux, Alacritty, Zsh, Git, Homebrew and macOS, plus a script that sets them up on a new Mac with a single command.

Writing

Thoughts about coding.

  1. How ecobee Uses Slack to Report Data Entry Errors to Content Editors

    How the ".com" team at ecobee uses Slack as an alert system.

    Updated 2 years ago

  2. The filter(Boolean) trick

    How to remove empty values from an array.

    Updated 3 years ago

  3. Using GraphQL with Gatsby

    How to write GraphQL queries in a Gatsby project.

    Updated 4 years ago

  4. Adding Content to a Gatsby Project

    The pros and cons of different approaches.

    Updated 4 years ago

  5. Writing CSS-in-JS in a Gatsby Project

    How CSS-in-JS libraries like CSS Modules and Styled Components make it easier to safely add and remove styles.

    Updated 4 years ago

See all posts →Subscribe via RSS →