Posts
I write about front-end architecture, engineering leadership, and the messy reality of building production systems. Most posts are either βhereβs what I learned the hard wayβ or βhereβs what Iβm still trying to figure out.β
- Sucking at Something is the First Step
- Let it break
- I have big plans for this code
- What Iβve been up to
- Salesforce Commerce Cloud - Display a React app as a page in business manager
- Salesforce Commerce Cloud - React powered Custom Attribute Editors
- Runtime configuration for Mock Service Worker (MSW) with localStorage
- A nostalgia trip with Netlify
- Salesforce Commerce Cloud - Drag-and-drop support in page designer
- Salesforce Commerce Cloud - A headless CMS with React
- Your website has a carbon footprint
- Custom list styles with the css @counter-style rule
- Feature flags in a React app with GitLab's feature toggles
- Displaying a progress bar for a series of promises
- Lightweight templated pages with Alpine.js
- Using GitHub issues as a CMS
- Building an app using Gatsby, Firebase, and Sanity.io
- Monitoring subresource integrity issues on the client
- Using the Toggl Track API to automate a daily ritual with Python
- Designing APIs with the OpenAPI spec (v3.0)
- Ditching Tailwind.css and embracing MDX
- Automate git activities with Node
- Building a README badge image API with Python
- Using the Xcode iOS simulator CLI
- Building a component props editor with React
- Sets in JavaScript
- Expanding on my Google App Scripts text formatter
- Site improvements and changes for 2021
- Programmatic text formatting in Google Sheets with Google Apps Script
- Opacity in CSS hex color notation
- Migrating from Hugo to Gatsby
- Camping at Grundy Lake Provincial Park
- Building my own PC
- A CSS wheel of fortune
- Personal development goals for 2020
- A start to my General Transit Feed Specification project: GTFS to SQL
- Fixing the PHPStorm command line launcher
- Stack Upgrade: Ditching google Chrome for Firefox Quantum
- MacOS: Make TextEdit.app open new file on launch
- MacOS: Creating a right click option to copy a file path
- Recreating the field set <legend> effect, just without the field set
- A wild Chrome extension appears
- I think Iβve survived my first winter in Canada!
- A deep dive into the console API
- Fisticuffs with timezones in Javascript
- JavaScript Encryption with RSA and AES
- I emigrated to Canada!
- Moving from WordPress to Hugo
- CSS attribute selectors
- Getting started with SSH config
- Autocomplete branch names on the command line
- Fetch domain information in the command line
- Finding files by size with the command line
- Feature Flags WordPress Plugin
- Useful git commands
- zxcvbn β A sensible password strength estimator
- Long live the WordPress CLI
- Terminal Aliases
- Social Links
- Postcardware
- Quick Save (QS) β Side project
- Sending a variable as an attachment with PHP Mailer
- Zipping folder contents
- .htaccess redirects scratchpad
- Git/SSH Keys Personal Cheat sheet
- Article β Life as a Web Developer
- Aside from work, what do you do?
- Where was I when 2015 turned into 2016? Is that where I wanted to be?
- As long as human beings have the element of choice and exercise that element of choice, technology will stay the slave and man its master.
- Sucking at Something is the First Step
- Let it break
- I have big plans for this code
- What Iβve been up to
- Salesforce Commerce Cloud - Display a React app as a page in business manager
- Salesforce Commerce Cloud - React powered Custom Attribute Editors
- Runtime configuration for Mock Service Worker (MSW) with localStorage
- A nostalgia trip with Netlify
- Salesforce Commerce Cloud - Drag-and-drop support in page designer
- Salesforce Commerce Cloud - A headless CMS with React
- Your website has a carbon footprint
- Custom list styles with the css @counter-style rule
- Feature flags in a React app with GitLab's feature toggles
- Displaying a progress bar for a series of promises
- Lightweight templated pages with Alpine.js
- Using GitHub issues as a CMS
- Building an app using Gatsby, Firebase, and Sanity.io
- Monitoring subresource integrity issues on the client
- Using the Toggl Track API to automate a daily ritual with Python
- Designing APIs with the OpenAPI spec (v3.0)
- Ditching Tailwind.css and embracing MDX
- Automate git activities with Node
- Building a README badge image API with Python
- Using the Xcode iOS simulator CLI
- Building a component props editor with React
- Sets in JavaScript
- Expanding on my Google App Scripts text formatter
- Site improvements and changes for 2021
- Programmatic text formatting in Google Sheets with Google Apps Script
- Opacity in CSS hex color notation
- Migrating from Hugo to Gatsby
- Camping at Grundy Lake Provincial Park
- Building my own PC
- A CSS wheel of fortune
- Personal development goals for 2020
- A start to my General Transit Feed Specification project: GTFS to SQL
- Fixing the PHPStorm command line launcher
- Stack Upgrade: Ditching google Chrome for Firefox Quantum
- MacOS: Make TextEdit.app open new file on launch
- MacOS: Creating a right click option to copy a file path
- Recreating the field set <legend> effect, just without the field set
- A wild Chrome extension appears
- I think Iβve survived my first winter in Canada!
- A deep dive into the console API
- Fisticuffs with timezones in Javascript
- JavaScript Encryption with RSA and AES
- I emigrated to Canada!
- Moving from WordPress to Hugo
- CSS attribute selectors
- Getting started with SSH config
- Autocomplete branch names on the command line
- Fetch domain information in the command line
- Finding files by size with the command line
- Feature Flags WordPress Plugin
- Useful git commands
- zxcvbn β A sensible password strength estimator
- Long live the WordPress CLI
- Terminal Aliases
- Social Links
- Postcardware
- Quick Save (QS) β Side project
- Sending a variable as an attachment with PHP Mailer
- Zipping folder contents
- .htaccess redirects scratchpad
- Git/SSH Keys Personal Cheat sheet
- Article β Life as a Web Developer
- Aside from work, what do you do?
- Where was I when 2015 turned into 2016? Is that where I wanted to be?
- As long as human beings have the element of choice and exercise that element of choice, technology will stay the slave and man its master.