Why You Should Learn Regex (Regular Expressions) - It's Not Just for Code

I spent a significant part of my career thinking of regular expressions as tools only for complex pattern matching in code—and the inevitable debugging nightmare when I had to revisit that code later. Now I know how helpful they are for tasks that support writing code, and I use them regularly for the massive productivity boost they can provide.

Read full post gblog_arrow_right

Top 10 Software Development Skills for 2025

This is my list of the top 10 software development skills for 2025. The list is based mostly on my own experience. Both skills that I see and work with on a daily basis, as well as trends I see emerging in the industry. Being a software developer requires a lifelong learning mindset. (side note: I’m planning a follow up post on what I think are the best qualities of a software developer.) These are the skills that I think will be important in 2025 and going forward.

Read full post gblog_arrow_right

How to Query Large SQL Tables Efficiently Using Only the Primary Key

Do you need to query a massive SQL table with millions of rows, but there is no index on the column you care about? In this post, we’ll look at a simple technique to speed up your queries by using only the index that you do have — the primary key — to improve performance.

Including the primary key in the SQL query when no other index exists on the target table can significantly reduce the amount of database resources it takes to find the data you are looking for. This can prevent performance degradation for other users by keeping the queries running quickly and efficiently. It can also help you find the data you are looking for much more quickly. You may just need to do a little bit of work to figure out how to find the correct key values that equate to the data you are searching for.

Read full post gblog_arrow_right

Improve C# App Performance by Eliminating Nested Loop Lookups

The Problem: Nested Loops and Repeated Queries

Data lookups can often cause a common performance problem to be introduced into code. In this post, we’ll look at an example of that problem and one possible solution.

For this example, we’ll be using a C# console application that reads from the country table of the MySql sakila sample database. However, the refactoring solution presented is language and database agnostic.

Read full post gblog_arrow_right

Making Better Software Decisions: Trade-offs and the Type 1 and Type 2 Strategy

After 25 years in software development, I’ve come to realize that every decision involves a trade-off.

Do you need to make an algorithm highly performant? Then you may need to make some sacrifices in maintainability and readability.

Do you need to make the architecture of a software system extremely flexible and resilient to change? Then you may need to make the architecture more complex.

Do you need to use a framework that is a great fit for solving specific business needs? Then you may need to accept the performance overhead of the framework in order to gain benefits in other areas.

Read full post gblog_arrow_right