Section

Posts archive

Structured notes, essays, and pragmatic field reports.

May 20, 2026

Windows 10/11 Repair Commands Worth Knowing

When a Windows machine starts behaving unpredictably, it is tempting to jump straight to a major fix: prayers, reinstall Windows, replace hardware, or spend an afternoon chasing scattered advice across forums. Sometimes …

Apr 27, 2026

JavaScript 'this' and Arrow Functions Explained

JavaScript functions do not all decide this the same way. Regular functions usually get this from how they are called. Arrow functions do not create their own this at all. This post is about two questions: Where does a …

Apr 26, 2026

JavaScript Hoisting Explained

Hoisting is JavaScript’s setup behavior for declarations. It affects whether a function or variable can be used before the line where it appears in the file. That matters because function, var, let, and const do …

Apr 25, 2026

JavaScript Var, Let, and Const Explained

Most JavaScript code starts with a simple act: you give a value a name. We call that a variable declaration. That sounds small, but the way you create that name affects how the rest of your code can use it. A variable …

Apr 12, 2026

From Agent to a Soul

I’ve been thinking about how we talk about AI systems, and Anthropic’s use of the word “soul” keeps sticking with me. At first, that sounds too poetic for software. Then you start layering …

Apr 2, 2026

Announcing TypeScript Type Guards

TypeScript is excellent at telling you what you meant to pass around. Runtime is excellent at reminding you that expectations are not a security boundary. I published TypeScript Type Guards as a small utility package for …

Oct 22, 2025

JavaScript Promise

A Promise is a guaranteed placeholder value for what a function or series of functions will return. It’s a promise to return a value eventually. The function swears this time is different. You can trust it. It …

Oct 22, 2025

The UI of AI is CLI

We spent decades trying to make computers easier to use. We went from punch cards to command lines to graphical user interfaces to touch screens. We added buttons, menus, icons, gestures, or really anything to avoid …

Mar 20, 2025

When Pragmatism Meets Silence

Had one of those surreal conversations at work recently. I needed to onboard with an internal AI service—because, frankly, there’s only one option available: and it’s run by a team building their own wrapper around …

Mar 12, 2025

The Problem With Floss

You ever have it where you’re flossing, and the floss just will not go between the teeth? You are standing there, doing your routine, nothing unusual. Then suddenly the floss hits a wall. Just stops. Like your …

Feb 21, 2025

Unit Testing: Rules and Best Practices

Rules to Follow FIRST Principles Fast – Tests should run quickly to allow frequent execution. Independent – Tests must not depend on each other. Repeatable – A test should always yield the same result. Self-Checking – …

Sep 9, 2024

Backstage.io Cisco Webex Scaffolder Backend Plugin

Looking to integrate Webex messaging in Backstage? The Webex Module for Backstage Scaffolder makes it simple. This plugin enables seamless integration with Webex Incoming Hooks, allowing you to send messages to one or …

Aug 17, 2024

In Da' Tub

Go, go, go, go get in the tub, With a laptop, start that remote club. We gonna soak while we on the job, Look, team, I got the foam, let’s multitask and bub'. You can find me in the tub, Zoom on with no flub, …

Aug 28, 2023

Alienware Laptop: The 'Good Place' of Laptops

The world of gaming laptops has given us beasts, titans, and powerhouses. And now, let me introduce to you - the Alienware R1 M16 or as we affectionately dub it, the “Lapchonk”. Never has a device so …

Feb 24, 2023

File > New

As I reflect on my time as a professional developer, I realized recently that the only real thing I created was the act of sharing my knowledge with my colleagues. While we developed some impressive products and achieved …

Nov 26, 2022

The Last Lesson

I lost my dad in April of 2020. It was exactly one week after my family and I should have been with him for Easter. We had planned a visit, to sit by his side, to hold his hand during the Easter service he loved so much. …

Aug 25, 2022

Technology Choice Matters

Developers need consistency in the tools they use, as well as a clear understanding of what is expected of them to be productive and successful in their roles. These tools not only impact productivity but also play a …

Mar 3, 2022

JavaScript Spread Syntax Explained

The JavaScript spread ... syntax is amazing. What it does is let you take the individual items from an array, or the individual properties from an object, and spread them out into another place. That “another …

Nov 16, 2021

Why You Should Use IPFS

Interplanetary File System (IPFS) is a peer-to-peer distributed file hosting protocol. When a file or collection of files in a folder are uploaded to the IPFS network. Each individual file and folder is identified with a …

Nov 14, 2021

Netlify Functions RESTful API Without Express

What are Netlify Functions? Netlify Functions provide a simple way to build a serverless API layer for any front-end projects. These serverless functions are executed atop AWS’s Lambda platform. The rule here is …

Nov 8, 2021

Netlify Single Page App 404 Redirect

tl;dr Add a netlify.toml file to the root of your project if one doesn’t exist. Add the following setting to redirect all routes to your single-page-application. [[redirects]] from = "/*" to = …

May 3, 2021

JavaScript Callbacks

Brief History of Callbacks It all starts with the callback function. A callback function is just a plain JavaScript function that is passed into another function as an argument. That’s it. Nothing special. This …

Apr 29, 2021

New Course: Event Handling in jQuery

Event Handling in jQuery My newest course, “Event Handling in jQuery” went live at Pluralsight! View My Course - Event Handling in jQuery GitHub Files - Event Handling in jQuery Course Description Open your …

Apr 16, 2021

Contributing to the .NET Runtime

My First .Net Contribution Today a feature enhancement I proposed and implemented was merged into the .Net runtime main branch for .Net 6 release! The Background At the time I was working for a company called, WatchGuard …

Oct 30, 2013

Being a Programmer

What does that even mean? I love creating something that didn’t exist before, and then ‘bam’—it’s a thing that others can use. It’s thrilling if it’s something people need to use, and …