kevgathuku.devMastering Clojure Iteration: A Practical GuideYou're working with a collection in Clojure and need to iterate over it. You reach for... wait, which one? for map doseq run! In my experience, while the official documentation exists, it's often unclear when to use each construct. This guide b...Dec 30, 2025路5 min read
kevgathuku.devURL WTFsWhile working on an application that would accept user-provided URLs, it would be nice to test a wide range of URLs to figure out which ones to accept and which ones not to accept. Lots of security vulnerabilities might be hiding behind such simple f...Dec 14, 2025路9 min read
kevgathuku.devReviving Legacy Code: Rescript Tips for Modernizing Your JavaScript Projects with AII have been on a journey to revive one of my oldest projects, partly to explore the capabilities of AI agents. This project in particular is around 10 years old, a full stack JavaScript app. The backend API is built with Express & MongoDB, and the fr...Dec 3, 2025路7 min read
kevgathuku.devThe AI ReckoningDo you believe your job can be done by AI? Up until very recently I believed this was all hype. No way this could happen. There have always been proclamations of new technologies like AI taking jobs. Most of the time dismissed as fantasy, most takes ...Nov 5, 2025路3 min read
kevgathuku.devBuilding our own zsh_stats command line appIn the previous post we saw how zsh has a nice inbuilt function zsh_stats to get a summarized list of the most commonly used terminal commands. This got me wondering, can we replicate this result ourselves? 馃 Let鈥檚 find out. Language of Choice We wi...Sep 17, 2024路11 min read