All Blog Posts
BigQuery syntax I wish I'd known sooner /blog/bigquery-syntax/
These can save a lot of typing and complexity.
Syntax-aware find and replace /blog/syntax-aware-find-and-replace/
Make rapid, safe changes to your codebase in ways `sed` can only dream about.
In praise of making a mess /blog/in-praise-of-making-a-mess/
Sometimes more disorder brings more order.
What's it like working with GitHub Copilot? /blog/working-with-github-copilot/
Amid the controversy, it still has great use cases.
The art of selective optimisation /blog/art-of-selective-optimisation/
More speed doesn't always make you faster.
Supporting Dark Mode using Tailwind CSS /blog/adding-a-dark-theme-using-tailwindcss/
With the right CSS abstractions, creating a dark theme is easy.
An introduction to bitwise operations /blog/intro-to-bitwise-operations/
An interactive guide to bit manipulation for the binary novice.
A brief introduction to JavaScript build tools /blog/introduction-to-js-build-tools/
Confused by the world of frontend build tools? You will still be after reading this article.
A pattern for strongly-typed IFrame messaging /blog/strongly-typed-iframe-messaging/
Using TypeScript to help with code that communicates between IFrames.
Typing a try-catch function /blog/typing-try-catch-function/
A fully-typed abstraction of the try-catch pattern in TypeScript.
Type-safe monitoring code /blog/typesafe-monitoring-code/
Another example of using TypeScript to supercharge the developer experience.
Retyping the Google Maps SDK /blog/retyping-the-google-maps-sdk/
A neat way to improve developer experience with the power of TypeScript.