Hi! 👋

I’m a Sr. Software Engineer @ Netlify based out of Toronto, 🇨🇦 Welcome to my site!

Why are custom headers missing in "304 (Not Modified)" responses?

304 (Not Modified) responses minimize the amount of information that needs to be transferred in subsequent requests made after an initial 200 (OK) response if the resources being requested are unchanged1. This has performance benefits for a website, particularly where larger assets such as images are involved. If you are developing a website that makes use of custom headers in responses, it’s worth noting a behaviour with respect to headers that 304 responses have that differ from 200 responses....

August 22, 2022

Bypassing Git Hooks

Git hooks are a useful mechanism for performing code quality checks in your local development environment before committing that code or pushing it up to a remote branch. A common quality check that a git hook can perform is running the project’s code linter, such as eslint. While it can be good practice to have these hooks configured within a project, at times they can be annoying when you’re trying to share a work-in-progress branch with a team mate by pushing the changes to a remote branch....

August 17, 2022

Useful Github Search Capabilities for Issues and Pull Requests

In my day-to-day I often find myself wanting to search for pull requests and issues that I’ve commented on without necessarily being the author of the pull request/issue. Fortunately, Github has a couple of pretty useful search options for just this purpose! Search by commenter This is a filter I now use multiple times a day when I’m chatting with someone and have a “I know I’ve been in a conversation about this somewhere on Github already” moment....

August 1, 2022

Testing a project contained in a monorepo

A ‘monorepo’ is the term used to describe the organization of multiple distinct projects with well-defined relationships into a single code repository1 rather than having each project be in its own dedicated repository. Monorepos have been around for a while, but if you haven’t worked with them before, figuring out how to test changes made in one of the projects contained within a monorepo in a local or deployed staging environment might not be the most intuitive....

July 2, 2022

Write how much work is required, not the work itself

The format for outlining what work needs to be done to achieve an outcome varies from company to company. It can be challenging to convey a sense of scope when writing what work needs to be completed, and the result can sometimes amount to ‘do X so a user can do Y’ with the hope that the developer doing the work understands what the writer is getting at or to have a sense of who to ask follow up questions to if they’re unsure....

June 24, 2022

Deploying a RedwoodJS app to Netlify without an API or database

This information is accurate as of RedwoodJS v1.3 and may have changed since this was first published. Simple static sites are sometimes all we need for our use case, in which case we don’t need an API layer or database for our site. Redwood’s file structure makes a clean separation between the frontend (located in the /web folder) and the backend (the /api folder), making it easy to remove the API layer and database when it’s not needed in the site by simply deleting the /api folder1....

May 13, 2022

Create a comprehensive .gitignore file in seconds!

When getting started with a project, there are some files and directories that we should not include in source control. Files that contain credentials that should be kept secret (such as a .env file), or directories that contain the output of a build are a couple of examples. Often, when we remember to include a .gitignore file in our project, there is a file or directory that we forget to add as we our project evolves....

April 26, 2022