Latest Articles


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 →


When building a domain model, proper object-oriented design and encapsulation should be applied as much as possible. Some teams choose to intentionally create anemic models with little encapsulation, which can lead to problems. Some of my past NimblePros clients have even had coding conventions and standards that basically required every domain entity be essentially a DTO, with no methods and a…

Keep Reading →


Commands and events are two common types of messages used in distributed application architectures, including microservice designs. Sometimes message formats need to be updated. Which party in the communication is responsible for the message definition? Who owns the message schema? Let's look at an example. Distributed Messages Example Imagine you have a product catalog service. Other systems rely…

Keep Reading →


The Aggregate Pattern comes from Domain-Driven Design and provides a way to encapsulate business logic among several related objects. The pattern has a few rules that, when followed, can help to organize complexity by creating an encapsulation boundary somewhere between the individual entity or value object and the whole domain model. The basic rules of the Aggregate pattern are: Every aggregate…

Keep Reading →


Preamble After a conversation on our devBetter Discord server, I published a short twitter thread about learning. It resonated a bit and as of writing this has had over 22k impressions, so I figured I'd make an article out of it. Note that doing this is literally one of the tips in the thread, so this is slightly meta. Have a Learning Strategy If you're in a fast-paced industry like software…

Keep Reading →


If you're not already practicing continuous deployment, odds are your team and company would benefit from more frequent deployments. Let's look at why this is true. Deploying Software Deploying software is the process of moving it from your development team's tools into a production (or sometimes other) environment. Deploying software is not necessarily the same as releasing it, though for many…

Keep Reading →


GitHub recently announced support for diagrams embedded directly in markdown files. The new feature leverages the Mermaid diagramming and charting tool, which is JavaScript-based and supports many common diagram formats. I've solved this problem in other ways in the past and in this article I'll show how to get started using Mermaid in your GitHub projects and how it compares to other approaches…

Keep Reading →


Ardalis

Copyright © 2021