All Blog Posts
In praise of making a mess/blog/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/
/blog/working-with-github-copilot/
Amid the controversy, it still has great use cases.
The art of selective optimisation/blog/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/
/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/
/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/
/blog/introduction-to-js-build-tools/
Confused by the world of frontend build tools? You will still be after reading this article.
A beginners' guide to ads on the internet/blog/beginners-guide-to-ads-on-the-internet/
/blog/beginners-guide-to-ads-on-the-internet/
Ideas for non-techies to get the best out of the world's most powerful tool.
A pattern for strongly-typed IFrame messaging/blog/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/
/blog/typing-try-catch-function/
A fully-typed abstraction of the try-catch pattern in TypeScript.
Type-safe monitoring code/blog/typesafe-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/
/blog/retyping-the-google-maps-sdk/
A neat way to improve developer experience with the power of TypeScript.