May 14, 2026
AI is going to change software teams whether we pretend to be ready or not.
The lazy version of that change is simple: give everyone an agent, tell them to go faster, and hope review catches whatever falls out the other …
Apr 27, 2026
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 27, 2026
Closures show up any time a JavaScript function uses a variable defined from outside its own curly braces.
That makes them common in callbacks, event handlers, timers, factory functions, and plenty of code that passes …
Apr 26, 2026
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
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
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 10, 2026
The Pattern Nobody Wants to Talk About I’ve seen a distinct pattern where AI slows down software development.
I know. Heresy. But hear me out.
Agents are fast, but in the old saying kind of way:
Fast is slow, and …
Apr 2, 2026
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 …
Feb 10, 2026
AI-assisted development has a trust problem.
Generated code can look polished, type-safe, and reviewable while still smuggling in shortcuts that quietly erode a codebase over time. The faster teams move with agents, the …
Oct 24, 2025
Here’s a secret weapon for building your own agentic workflows: GitHub Copilot Chat’s debug logs.
You know how everyone’s out there wrestling with hallucinating AI agents? Trying to figure out how to …
Oct 22, 2025
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
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 …
Oct 21, 2025
You know what’s wild about working with AI agents to build software? The planning. Oh boy, the planning.
Not just a plan - that would be too simple. No, no. We’re talking about:
Creating a planning document …
May 14, 2025
Sometimes I want full control, not most, but total, end-to-end control over the tools I use to think, build, and create.
That’s where Ollama and Open WebUI comes in. This is my go-to local AI chat setup: a fully local, …
Mar 20, 2025
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
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 22, 2025
For too long, legacy enterprise development has been constrained by a top-down model that stifles innovation and impedes progress. The conventional emphasis on individual developers paired with rigid managerial oversight …
Feb 21, 2025
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 – …
Feb 20, 2025
GitHub Actions doesn’t (seem to?) provide built-in insights into API rate limits, making it difficult to diagnose runtime failures caused by hitting request limits.
To address this, I created a reusable GitHub …
Feb 15, 2025
I finally spent some time experimenting with Sora, and the shift from text-to-image to text-to-video feels bigger than I expected.
I have used Stable Diffusion for a long time. Image generation already changed how I …
Feb 5, 2025
In my recent project, I’ve focused on streamlining the development workflow for Cisco Collaboration by migrating thousands of repository build processes to GitHub Actions. This transition has brought numerous …
Dec 3, 2024
I have been using a Visual Studio Code extension called Continue, and it has become one of my favorite ways to work with local LLMs.
The short version:
Continue lets you bring AI-assisted coding into VS Code while …
Nov 13, 2024
TinyTroupe is incredible.
Imagine running your own focus group composed of multi-personality AI agents. From a UI/UX designer’s perspective, the ability to explicitly define user personas and have them evaluate your …
Sep 11, 2024
Over time, code libraries have a habit of expanding like that one “utility” drawer in your kitchen. At first, it’s helpful—everything in its right place, ready for use. But before long, that drawer becomes a catch-all …
Sep 9, 2024
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 …
Sep 3, 2024
Here’s a quick heads-up that might save you some serious headaches.
Gmail doesn’t treat dots in email addresses as unique. Whether your address is john.smith@gmail.com or jo.hn.smith@gmail.com, if it has a dot a copy of …
Sep 1, 2024
When working with RESTful APIs, there are times when you need to update an entire resource, and other times when you only need to tweak a specific part of it.
This is where the PATCH method shines. Unlike PUT, which …
Sep 1, 2024
Let’s dive into the world of RESTful API design, especially for those of you transitioning from Java or other back-end heavy environments.
One of the common mistakes I see everyday is naming API endpoints based on the …
Aug 24, 2024
I ran into this error while using Rollup and the uuid package:
Error: Crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported
The problem? It boiled down to this small …
Aug 21, 2024
You know what’s going to be funny? When AI services go offline and teachers finally get to see what a student’s real writing would be like. Imagine the shock—“Wait, why does this essay look like a …
Aug 21, 2024
Today, I got to introduce the AI interns to new topics like dogfooding*, cyclomatic complexity, BEM, JSON:API, and why interfaces are so useful. It was great to nerd out with them! Their excitement was contagious, and I …
Aug 20, 2024
TypesScript interface names should start with “I” because while a type is real, an interface is purely “I"maginary.
Aug 18, 2024
If you’re like me, you’ve probably dealt with your fair share of long, messy deeply nested if-else chains. They can get out of hand pretty fast, right?
One minute you’re making a simple decision, the …
Aug 17, 2024
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 16, 2024
Leveraging multiple models can significantly streamline the software development process. Here’s a strategy to consider:
Requirement Analysis: Use one model to gather user requirements.
Edge Case Identification: …
Aug 28, 2023
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 …
Jul 15, 2023
Solving PowerPoint Missing Custom Templates Recently went through setting up a new development machine. The one tool that gave the most grief ended up being PowerPoint.
Specifically setting up custom PowerPoint …
Jun 8, 2023
While working with Backstage.io, you might come across a requirement to create a custom entity relationship. Though the official documentation provides some insights, you may find it too high level. This post offers a …
May 1, 2023
This hybrid API design guide combines elements from both JSend and JSON:API to create a powerful and user-friendly approach for developing REST APIs. By adopting the best practices from both, this guide offers a …
Feb 24, 2023
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
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. …
Nov 10, 2022
Imagine “a world, earth, seen from space, 8k, unreal engine, detailed, photorealistic”…
Remember the common phrase, “a picture is worth a thousand words”? Well, it’s time to rethink …
Aug 25, 2022
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 …
Nov 16, 2021
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
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
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
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
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
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 …
Sep 17, 2020
JavaScript Function Signatures Alright, you’ve probably seen functions before. Something like this maybe?
function doSomething(name, desc, task) { // did something } This function, named doSomething, takes three …
Oct 30, 2013
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 …