Blog Posts

Refactoring Legacy Monoliths – Part 4: Refactoring Tools

As a software developer it’s important to know what tools are available to you. Tedious and repetitive tasks or large “one-off” time-consuming tasks can often be automated by third-party tooling. And yes - sometimes it’s even worth purchasing some of these tools with your own money. Specifically, when refactoring, we should have some knowledge of what refactoring tools are available to us.

Continuing my “Refactoring Legacy Monoliths” series - I want to go over a few tools that I’ve found super helpful and worth investing in.

To make this blog post more useful than a list of products, I’ll go through some high-level steps that represent a way to tackle a refactoring project.

[Read More]

How I Made LINQ 6X Faster Using A Functional Optimization!

Note: This seems like a failed experiment / moot post 😂 . As some commenters have noted, the benchmarks are not performed properly. Any LINQ queries performed are not truly evalutated in the tests.

Cnsider this a learning experience you may or may not want to read 😋. Hey - we all make mistakes!


This was a little experiment to see if I could speed up LINQ queries by using the functional pipe technique. By “piping” LINQ queries, we can avoid the inherent issue with LINQ whereby each query will issue a whole iteration over the collection. This optimization allows us to issue the equivalent of one iteration and pass each element through the entire method chain.

[Read More]

Refactoring Legacy Monoliths - Part 3: Game Plan And Refactoring Tips

So your engineering team is convinced that you need to make some drastic changes. The direction of future development needs to improve. Things can’t stay as they are. Management is also convinced that the product needs to move in a new direction. What’s next?

Before doing any actual changes or refactoring to your product, planning a refactor is your next step. In other words, you need a game plan. I’ll also discuss some refactoring tips for you to get started!

[Read More]

6 Ways To Implement The Strategy Pattern In C# (Basic To Advanced)

Let’s look at some different ways you could implement the strategy pattern in C#. First, I’d like to briefly mention why we care about design patterns and where the strategy pattern fits in.

Note: This is day #9 of the First C# Advent Calendar @ https://crosscuttingconcerns.com

[Read More]

Functional Programming With C#: Simple Use Case

Update: I created a YouTube video based on this post, if you are interested.

During the past year and a half I have been making a point to learn about and develop my skills in functional programming. For the majority of this experience, I have been using JavaScript and TypeScript. After moving onto another project at work, I was brought back to “C# and SQL world.” Long story short, I noticed the way I was thinking about software problems in C# were totally different than before.

[Read More]