Blog
Plan, Code, Review: How I Use AI Agents Without Losing Control
I have been integrating AI agents into my workflow as a developer. The most useful mental model so far is...
A Simple Currying Refactor: Remove Pass-Through Arguments
Like I said at the beginning of this series, I wanted refactoring existing code to use currying and partial application...
Currying in JavaScript
In this post, I want to keep things simple: what currying is, how it relates to partial application, and why...
Predicate Functions in JavaScript
If you’ve written code in any programming language, you’ve already used predicate functions, even if you never called them that....
Higher-order functions for currying in JavaScript
I’ve been working on my functional programming skills and applying what I learn in real JavaScript projects. JavaScript is a...
Customer Data Management, 1959 Edition: The Forgotten Beginning of Personalization
“An electronic computer and a religious mission are not very closely associated in most people’s minds”. This is how “The...
How Small Changes Can Drive Big Results Without Blocking the Business
Software serves the business, not the other way around. Yet many technical teams struggle to balance improving their code with...