Blog

Exploring FastEndpoints: A Better Approach to Building APIs
Brad Jolicoeur - 05/21/2023
I recently stumbled upon a Library called FastEndpoints while doing research and it immediately struck me as something I wanted to learn more about. I had started experimenting with Minimal APIs at the time. While I liked that Minimal APIs lower the entry point for simple API creation and are significantly more performant than MVC Controllers, they quickly turn your program.cs file into a jumbled mess with anything beyond trivial. The desire for code organization quickly pushes towards finding a sensible way to orient the code.

The Importance of API Versioning: Ensuring Compatibility and Flexibility
Brad Jolicoeur - 05/18/2023
Not versioning APIs is one of the biggest issues I see with teams that attempt to implement a distributed architecture. Not supporting multiple versions of an API means all the teams are coupled together and requires downtime to deploy. I've actually seen where this is actually listed as a reason to use a monolith instead of a distributed architecture.

Exploring Rebus
Brad Jolicoeur - 10/23/2020
Recently, I became aware of two other options in the .NET Service Bus space that I felt deserved a closer look. Rebus and Brighter. Since Rebus seemed to be similar to NServiceBus and MassTransit I started there.

What are Architectural Decision Records (ADR)?
Brad Jolicoeur - 08/21/2020
- tags:
- Architecture
One of the most painful parts of starting with a new team is to learn all of the nuanced patterns and practices you must adhere to. Often these nuances are not documented and to make matters worse, the common response given for why is, "that is just how we do it here". The tribal knowledge runs so deep it starts to look like cargo cult culture and in some cases it is just that.

The Architect Elevator
Brad Jolicoeur - 03/24/2020
- tags:
- Architecture
The role of Software Architect is typically not well defined in most organizations and I've found Gregor Hohpe's description of The Architect Elevator to be the most enlightening.

Maturity Model for Lasting Change
Brad Jolicoeur - 11/30/2019
Change is hard as a individual. Implementing lasting change in a team or organization is probably one of the most difficult things one can attempt. I say lasting change, because it is easy to impose short term change, but hard to make that change stick.

Adopting New Technology
Brad Jolicoeur - 02/25/2019
Dr. Eliyahu M. Goldratt, author of The Goal and father of the Theory of Constrain identified Four questions necessary to realize the full benefits of adopting a new technology. These Four questions can be used to help your organization realize order of magnitude advantages when adopting new technologies like the Cloud.

NServiceBus Message Versioning
Brad Jolicoeur - 10/02/2018
As a software engineers we all know the requirements will change over time. At some point you will need to become comfortable with versioning your NServiceBus messages to adapt to those changing requirements. When you start thinking about the nuances of deploying endpoints that need to handle messages of different versions in flight or in an error queue waiting for retries it can be overwhelming at first. Luckily, there is a straight forward and relatively painless way to make changes to your contracts that will enable your endpoints to process old and new versions in parallel.

Technical Leader Reading List
Brad Jolicoeur - 09/26/2018
Over the years I have read countless management and technical books and of those books there are a select few that had a profound impact on how I view the world and my capabilities as a leader. I have put together this list of books to share so that others can benefit from their knowledge and so I can remind myself of some books I should periodically read.