Latest Articles


Redis is a popular open source cache server. When you have a web application that reaches the point of needing more than one front end server, or which has a database that's under too much load, introducing a Redis server between the application server and its database is a common approach. However, sometimes a single redis server is insufficient for the required load and performance requirements…

Keep Reading →


Spectre.Console is a dotnet library for making beautiful, more useful console applications. Here's a quick introduction to getting started with it. If you'd rather watch a video, I've recorded a quick video for NimblePros' YouTube channel: YouTube: Introducing Spectre.Console Getting Started The quickest way to get started with Spectre.Console is to add it to a new console application. You can…

Keep Reading →


If you have a linux VM you need to work on, the typical way to connect to it is with ssh. Here's how to get started. What is ssh The utility ssh is short for Secure Shell or Secure Socket Shell and is similar to the insecure terminal emulator telnet. You can use it to create a terminal session on a remote computer. If you're coming from a Windows background and are used to using remote desktop/RDP…

Keep Reading →


A popular extension and later core feature of VS Code, rainbow bracket colorization is now available as a free extension for Visual Studio called Rainbow Braces, by Mads Kristensen. It was just released in the last week and currently lists support only for Visual Studio 2022. Colorizing brackets makes it much easier to visually match opening and closing brackets (or braces or parentheses or curly…

Keep Reading →


Pricing is hard, and pricing yourself and your services can be one of the toughest things to get right. While I can't claim to have the answer for how to ideally price your services, I can tell you this: If no one says no, your price is too low. Getting to No There's a popular book, Getting to Yes, which offers some great information on how to negotiate. It's the obvious inspiration for this…

Keep Reading →


Solved! My dell monitor had started showing an annoying error every 30 seconds or so saying 'Unsupported audio format. Set the audio output to pulse code modulation PCM'. I solved it with a quick change to my video card settings. I'm sharing this here for future me when this happens again (probably with a new video card or a driver update), but hopefully it helps some of you as well. My monitor is…

Keep Reading →


GitHub Issues offer a simpler approach to work item management than many other systems like Jira or Azure DevOps. Despite being lightweight, it can and is used to effectively track and prioritize work on thousands of projects of all sizes. Everything is an Issue In GitHub, every work item is an Issue. Issues can be decorated with tags that indicate whether a particular Issue is a Bug, Question…

Keep Reading →


I do a fair bit of video editing as part of producing content for Pluralsight, clients, and YouTube. Recently I took on the task of editing 48 videos from the Stir Trek 2022 conference, each of which mostly just needed time trimmed from the start and end of the presentation. I tried my usual tools, but then I found a new tool that works much better! TechSmith Camtasia I've been using TechSmith…

Keep Reading →


If you're an employee, you probably have a boss, manager, supervisor, or similarly titled person to whom you report. Normally, you figure it's their job to "manage" you, and your job to do what they tell you. But it's actually a two-way relationship, and understanding this can have a very positive impact on your career. Managing Up The idea of "managing up" has been around for a long time. The "up…

Keep Reading →


Domain models should encapsulate logic operations so that there is only one way to perform a given logical operation. That means avoiding exposing entity state and ensuring operations flow through specific methods. By funneling specific operations through specific code pathways, you can be sure constraints around the operations are enforced. In the previous article, I demonstrated some of the…

Keep Reading →