Honlsoft logo

Honlsoft

BlogProjectsAboutLinksFitness
March 19, 2026

Parallelizing Chess Engine Work with GitHub Copilot CLI

I had the day off for spring break to spend time with family, but everyone was still asleep and I had a quiet block of time in the morning. Instead of scrolling, I decided to use that time to level up my AI workflow. Over the last few weeks, GitHub Copilot has shifted for me from a tool that answers questions and occasionally completes code to something closer to an entry-level co-contributor.

February 13, 2026

How to Create a Custom GitHub Copilot Agent

I’ve been trying to use Copilot more for focused workflows lately, and one of the best upgrades is creating custom agents for specific tasks. Instead of re-explaining context in every prompt, I can encode behavior once in an agent profile and reuse it. In this article, I'll share how I created a custom Copilot agent for authoring blog post which actually helped me with the rough draft of this blog article.

April 19, 2025

Building a Pig Latin Translating Chat Bot

Generative AI is reshaping software development and becoming a tool that is rapidly expanding in capability. As such, I plan to spend more time on learning and implementing AI-related functionality over the coming year. I'm going to make an LLM that translates a statement to pig latin.

January 21, 2024

Using Kiota to Generate an HTTP Client

For years, I've been using open api generator or NSwag to generate HTTP clients for my projects. While this work well, there were edge cases I felt were hard to satisfy. Recently I learned about Kiota to generate API clients, and it takes a much different approach that I think is better.

January 14, 2024

Project Graph Traversal with the MS Build SDK

I've been taking a break for a while from my blog. I had been spending some extra time outside of work trying to push forward an initiative inside work to move my workplace forward on containers. It's just been one of those things I personally find important in technical leadership.

October 04, 2023

.NET 8: My Favorite Feature

It's getting close to November, and that means a new .NET release is about to be released. While there are a lot of features that deserve attention, there is one feature that is one of my favorites as it's going to reduce the amount of code I need to write. That feature is primary constructors.

September 15, 2023

Utilizing Testcontainers for Integration Testing

When writing automated tests, one of the hardest parts of is when integration testing and external dependencies are required-- like a database or external service. While running these things may not be hard an and of itself, maintaining consistency between the tests and the dependencies can be difficult. Recently, I've been working on a legacy data access library that needed some refactoring to get to .NET 6 from .NET 4.8.

July 21, 2023

Jetbrains Rider 2023.2 EAP and AI Assisted Unit Testing

In my pursuit of refining software development methodologies, I have put a few artificial intelligence (AI) assistants to the test. Initial experiences, were met with mixed results. However, they are continually making progress.

April 07, 2023

GIT Branching: Branch by Abstraction

Many branching strategies work to split up work into smaller pieces that are regularly integrated into a mainline branch. However, often time it is difficult to do this with much larger tasks. I want to highlight a common software development strategy used to overcome this: Branching by Abstraction.

April 04, 2023

Software Development Books

Every year I try to pick up a few engineering books and read them. I decided to look through my bookshelf and compile a list of some of my favorites I've gone through in the past few years and record them in a blog post. Hopefully in a few more years, I will do this again.

March 26, 2023

GIT: Branching Strategies

In the past, I have written several posts about GIT on my blog. Specifically, I want to reflect on the lessons I have learned while trying to determine the appropriate branching strategy for various projects. Over the years, I have had to make this decision numerous times and realized that documenting my experiences would help me better organize my thoughts.

January 07, 2023

Kubernetes: Using ConfigMaps to Manage Application Configuration

Most applications contain settings which differ from environment to environment, or just need to be able to have behavior changed without making changes to the code. Configuration allows applications to do this. Thankfully, Kubernetes provides a simple way to store configuration values in a cluster and reference them in a Pod specification.

October 21, 2022

Demystifying GIT: Merge Commits as GIT Objects

Up to this point, we've covered the internal object structure of GIT and the basics of how branches work and how GIT internally tracks branches. I wanted to highlight merging specifically to show how commit objects change based on the different merge types. Merging in GIT is the act of combining two or more commits together.

October 13, 2022

Demystifying GIT: Branching

Branching in source control is crucial to building software, and understanding how branching works in GIT can make it much easier to use. Branching is a concept in GIT that differs drastically from traditional source control providers. In my previous post, I discussed the internal structure of GIT commits.

October 07, 2022

Demystifying GIT: An Overview of How Git Stores Files

I've been using it in some form for the past 10 years. First to keep personal projects, and later at work. In stack overflow surveys of developer, GIT it consistently ranks high in usage with 90%+ of surveyed developer utilization using it in the last survey.

October 05, 2022

Creating Containers in .NET 7 with the .NET CLI

One really handy feature with .NET 7 is the ability to create containers directly from the dotnet command line. This lowers the bar to entry with container development, and if you've got a standard ASP.Net application, it's easy to throw it in a container. I just want to put a disclaimer before I begin.

September 24, 2022

Output Caching in .NET 7 with ASP.Net Core

The release of .NET 7 is around the corner with it now in RC. There are several new features that have grabbed my attention that I decided to try out. The first of these is Output Caching in ASP.Net Core 7.

August 20, 2022

Publishing a NuGet Package Through GitHub Actions

I've been working with Roslyn Source Generators and have gotten to the pointer where there are a few I would like to use for other projects. In order to share the code between these projects, I've decided to create a NuGet package. While I've used NuGet for years and occasionally have had to create a NuGet package here and there for work, I've never actually published one to the official public NuGet repository before.

July 29, 2022

Metaprogramming in .NET: Building a Source Generator for a Factory Pattern with Roslyn

In every project there is boilerplate code. It is a particular evil more seen in statically typed languages with the need to express every object in a type safe way. In this post I'm going to be talking about building a Source Generator with Roslyn to auto generate some of this boilerplate.

June 25, 2022

Kubernetes: Deployments

In my previous posts regarding Kubernetes, I've written primarily about running containers in Pods on Kubernetes. Pods provide a basic building block in kubernetes that allows to execute containers within a Kubernetes cluster. In future posts, I'm going to move on to other concepts that can be built off of Pods within Kubernetes.

Page 1 of 478 total posts