Blog & Insights
Technical thoughts, project stories, and lessons learned from years of building software

Tidy, Offload, and the Shape of Personal Infrastructure
Notes from building a small pair of terminal tools: one that understands what is taking space on a machine, and one that safely moves the things that do not belong there.

The Padded Room
What happens when you get gaslighted by your tools?

Building the Definitive Guide to MCP Servers
Why I'm writing a practical book on building MCP servers, who it's for, and what readers can expect from the draft today.

Vestigial Interview Processes
Explore how outdated tech interview processes fail to predict engineering success, and discover the transformative impact of AI tools in modern software development.

Marked Spam
A verified, source-backed guide to diagnosing Google Workspace email deliverability issues with Gmail, focused on authentication, reputation, and sender requirements.

Coding is (finally) for Dinosaurs
A short follow-up on how the “autocomplete era” quietly evolved into “intent-first” software creation—where shipping is mostly conversation, and touching code starts to look like nostalgia.

Building a Family Electronic Bulletin Board with Next.js
How I built a full-featured family bulletin board with Next.js, SQLite, and Tailwind CSS - perfect for a mud room kiosk display

How does this activity love others
A meditation on why we do what we do, and how our actions touch others.

Prefer type over interface
Prefer Type over Interface

Building a Salesforce Sync pipe with Node.js
Architecture notes

Config Based Data Layer
A pattern for building declarative, configuration-driven data layers using Redux Toolkit and Redux Observable that eliminates useEffect hooks and simplifies React components.

I just can't do this anymore, Copilot
After two weeks with GitHub Copilot, I’m convinced it quietly injects subtle bugs and breaks my flow—so I turned it off (maybe for good).

4A Testing - Arrange Act Assert Annul
A small upgrade to Arrange–Act–Assert: add “Annul” as a reminder to clean up state and make tests independent.

The Lead Developer - London - 2019
Conference notes

Learning to Ride the Bike
Practice is the difference between doing something and becoming it: you get good when you stop thinking and start repeating the work.

My Favorite JavaScript Unit Testing Resources
A short list of tools and references I’ve found useful for JavaScript unit testing (plus a few practical “testing ecosystem” picks).

Configure package.json variables with npmrc
How to keep credentials out of package.json while still wiring scripts: use npm config variables and per-project .npmrc files.

Introducing Generator-SFDC
Why I built a Yeoman generator for Salesforce (Generator-SFDC), what problem it solves, and what it can scaffold for you.

Understanding Yeoman
A practical guide to Yeoman: what it is, how to run generators, how to author your own generator, and how to test it.

Using Webdriver.io with JSForce, Mocha and Chai for fluent BDD on SFDC
A practical walkthrough of end-to-end testing Salesforce with WebdriverIO + JSForce, using Mocha/Chai and a Selenium server—plus an example BDD workflow with user stories and acceptance criteria.

The modern Salesforce development workflow with Visual Studio Code
A pragmatic workflow for Salesforce development using modern JavaScript tooling: Node.js, Git, build systems, and Visual Studio Code.

Selenium
A practical introduction to Selenium: what it is, why you’d use it, how Selenium IDE works, and how to move from recorded tests to code-driven WebDriver automation.

Get good with Git guide
A practical, beginner-friendly Git overview: what it is, how to set it up, and the core commands (clone/add/commit/pull/push/branch/merge/rebase).

Generators, APEX, and Unix commands, OH MY!
A quick, link-heavy cheat sheet: modern JavaScript scaffolding tools, a handful of Unix commands, and the Salesforce @RemoteAction concept.

New Force.com Project
A step-by-step checklist for starting a new Force.com project with MavensMate and a Gulp/Angular build pipeline.

Crockford on JS
Notes and a link to Douglas Crockford’s talks on JavaScript and pragmatic software design.
