Blog

Bad Assumptions

July 15, 2025

Over the past few days, I’ve seen a number of posts questioning how employees handle adversity, often framed as tests of character. One story criti...

Read more →
Bad Assumptions

July 15, 2025

Over the past few days, I’ve seen a number of posts questioning how employees handle adversity, often framed as tests of character. One story criti...

Read more →
The $45 Tool That Saved My $35K Bathroom—And What It Taught Me About Building Software

June 5, 2025

I recently spent over $35,000 having a bathroom professionally built. New tile, new layout, high-end finishes—the works. I trusted the process and ...

Read more →
The $45 Tool That Saved My $35K Bathroom—And What It Taught Me About Building Software

June 5, 2025

I recently spent over $35,000 having a bathroom professionally built. New tile, new layout, high-end finishes—the works. I trusted the process and ...

Read more →
The One Who Showed Up

May 28, 2025

We were shopping for higher-end lighting—ceiling fans, fixtures, and accent pieces that would complement the design of our home while solving some ...

Read more →
The One Who Showed Up

May 28, 2025

We were shopping for higher-end lighting—ceiling fans, fixtures, and accent pieces that would complement the design of our home while solving some ...

Read more →
The Coffee Queue: How Developers Solve Real Problems

May 7, 2025

At a company I once worked for, we had a very specific rule: only one carafe of coffee in the office at a time.

Read more →
Observing

May 7, 2025

Years ago, I was fortunate enough to take a class on experimental design. Paraphrasing the professor: “The great thing about animals is they don’t ...

Read more →
The Coffee Queue: How Developers Solve Real Problems

May 7, 2025

At a company I once worked for, we had a very specific rule: only one carafe of coffee in the office at a time.

Read more →
A Lesson in Blind Trust

April 30, 2025

Years ago, I worked for a company with several sister organizations that sold products to both consumers and businesses. One of these organizations...

Read more →
A Lesson in Blind Trust

April 30, 2025

Years ago, I worked for a company with several sister organizations that sold products to both consumers and businesses. One of these organizations...

Read more →
Not Afraid of AI

April 16, 2025

Everyone talks about how AI is going to replace jobs, put people out of work, and do the thinking for the rest of us. Like every other machine, it’...

Read more →
Great Ideas

April 8, 2025

One conversation that’s always stuck with me was about the role of ideas in the creative process. I was speaking with someone who owned a software ...

Read more →
Great Ideas

April 8, 2025

One conversation that’s always stuck with me was about the role of ideas in the creative process. I was speaking with someone who owned a software ...

Read more →
Intuitive, what is it?

March 22, 2025

We often make the same mistake repeatedly. We look at a problem or an existing product and think, “This can be better.” We say, “We’re going to cre...

Read more →
Start Feeling the Vibe

March 22, 2025

In 1947, an engineer named Percy Spencer made an accidental but groundbreaking discovery—one that would lead to a revolutionary invention. What he ...

Read more →
Start Feeling the Vibe

March 22, 2025

In 1947, an engineer named Percy Spencer made an accidental but groundbreaking discovery—one that would lead to a revolutionary invention. What he ...

Read more →
Reduce over functions or Data, Data Everywhere

March 22, 2025

Walking through the concept of functions as data and applying it can lead to applying and manipluating different code. Assuming that code is a seri...

Read more →
Intuitive, what is it?

March 22, 2025

We often make the same mistake repeatedly. We look at a problem or an existing product and think, “This can be better.” We say, “We’re going to cre...

Read more →
AI and our Obsession with Authenticity

March 15, 2025

Years ago, a family friend of ours was a talented picture framer, highly regarded both for his artistic sensibility and technical precision. One da...

Read more →
AI and our Obsession with Authenticity

March 15, 2025

Years ago, a family friend of ours was a talented picture framer, highly regarded both for his artistic sensibility and technical precision. One da...

Read more →
Finding the right person

March 7, 2025

When I ran the intern program at a previous company, we gave applicants a small coding test—not to weed people out but to ensure they had a basic a...

Read more →
What is AI good for?

January 15, 2025

I recently participated in a discussion that centered around the question, “What is AI good for?” The general sentiment seemed to be one of indiffe...

Read more →
._2023-10-04-Types-A-Reflection

October 4, 2023

Mac OS X  2q£ATTR£˜ ˜ com.apple.provena...

Read more →
Looking back at C#

December 23, 2021

Happy Holidays! This is my post for the C# advent calendar!

Read more →
Looking back at C#

December 23, 2021

Happy Holidays! This is my post for the C# advent calendar!

Read more →
I thought (var) Gozer was a man. It's whatever it wants to be.

December 23, 2021

Tom Hacohen wrote a great post about his view of types and their place in development. At the end, he asked for different views, and so I thought I...

Read more →
What is says not how it looks

December 1, 2021

Control Shift V to paste without formatting.

Read more →
Language Comparison Euler Problem Two

December 1, 2021

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

Read more →
It's Time For All You SQL Objects to get in Your Proper Execution Order

December 1, 2021

One of the biggest difficulties with moving database objects from one environment to another is getting the execution order correct. It’s possible...

Read more →
Dynamic Testing Is Better Than No Testing At All

December 1, 2021

https://github.com/PombeirP/T4Factories/blob/master/T4Factories.Testbed/CodeTemplates/VisualStudioAutomationHelper.ttinclude

Read more →
It's Time For All You SQL Objects to get in Your Proper Execution Order

December 1, 2021

One of the biggest difficulties with moving database objects from one environment to another is getting the execution order correct. It’s possible...

Read more →
Always Answer the Phone, Respond to the Email, and Go to the Interview

December 26, 2017

Several years ago I worked with someone who really felt he was happy at his job. Was he? I don’t know. He never mentioned not liking where we worke...

Read more →
Always Answer the Phone, Respond to the Email, and Go to the Interview

December 26, 2017

Several years ago I worked with someone who really felt he was happy at his job. Was he? I don’t know. He never mentioned not liking where we worke...

Read more →
Things you Should do with Strings While Your Coworkers are on Holiday and No One is Checking the Production Code Branch

December 20, 2017

Hi everyone! This is part of the really cool new CS Advent Calendar run by Matthew Groves! Go check out all the really great articles by everyone!

Read more →
Are you Null?

November 19, 2017

Within the last couple of days Microsoft released a proposed update for the next major release of C# version 8.  Over the past several years, there...

Read more →
Are you Null?

November 19, 2017

Within the last couple of days Microsoft released a proposed update for the next major release of C# version 8.  Over the past several years, there...

Read more →
Functional Languages in the Workplace

November 5, 2017

On a semi regular basis, people question why I choose to use F# to implement projects. They question why use a lesser known language when one like ...

Read more →
Regular Expressions Presentation

September 29, 2017

I have uploaded my notes from my presentation on Regular Expressions.  Currently, I am flushing out my presentation notes into a more readable form...

Read more →
A Stroll Around C# 7 Remote Viewing

July 10, 2017

If you would like to attend my talk on C# 7, and you can’t attend or don’t happen to live in Indianapolis, you can watch remotely at 11:30 EDT Thur...

Read more →
A Stroll Around C# 7 Remote Viewing

July 10, 2017

If you would like to attend my talk on C# 7, and you can’t attend or don’t happen to live in Indianapolis, you can watch remotely at 11:30 EDT Thur...

Read more →
Practice

July 2, 2017

When was the last time you sat down and talked to your team about problems?  What was the last task or procedure you changed because it was a bad f...

Read more →
A Stroll Around C# 7

June 23, 2017

If you want to take a peek at the new C# 7, come stop by the TCC Lunch and Learn on July 20th!  We’ll try and have a remote option too if you can’t...

Read more →
A Stroll Around C# 7

June 23, 2017

If you want to take a peek at the new C# 7, come stop by the TCC Lunch and Learn on July 20th!  We’ll try and have a remote option too if you can’t...

Read more →
Quirks with Pattern Matching in C# 7

June 5, 2017

With C# 7, Microsoft added the concept of pattern matching by enhancing the switch statement. Compared to functional languages (both pure and impu...

Read more →
Quirks with Pattern Matching in C# 7

June 5, 2017

With C# 7, Microsoft added the concept of pattern matching by enhancing the switch statement. Compared to functional languages (both pure and impu...

Read more →
Happy Birthday Visual Studio!

March 2, 2017

I’m hosting a Visual Studio launch party on March 21st.  If you are in the Indianapolis area and want to come check out what’s new, you should stop...

Read more →
Happy Birthday Visual Studio!

March 2, 2017

I’m hosting a Visual Studio launch party on March 21st.  If you are in the Indianapolis area and want to come check out what’s new, you should stop...

Read more →
Indy.Code()

March 1, 2017

I have been fortunate enough to be allowed to speak at Indy.Code() which really means I’m grateful to get the chance to listen to all the other spe...

Read more →
Indy.Code()

March 1, 2017

I have been fortunate enough to be allowed to speak at Indy.Code() which really means I’m grateful to get the chance to listen to all the other spe...

Read more →
C# 7 Overview

September 7, 2016

I’ll be talking about C# 7 on, Friday September 9th at 9 A.M. Come and listen, or if you can’t make it and are interested, view it remotely.

Read more →
C# 7 Overview

September 7, 2016

I’ll be talking about C# 7 on, Friday September 9th at 9 A.M. Come and listen, or if you can’t make it and are interested, view it remotely.

Read more →
C# 7 Additions - Pattern Matching

September 6, 2016

C# 7 has started to introduce Pattern Matching. This is a concept found in functional programming, and although it isn’t fully implemented compare...

Read more →
C# 7 Additions - Pattern Matching

September 6, 2016

C# 7 has started to introduce Pattern Matching. This is a concept found in functional programming, and although it isn’t fully implemented compare...

Read more →
C# 7 Additions – Literals

September 2, 2016

A small, but nice chance in C# 7 is increased flexibility in literals. Previously, large numeric constants had no separator, and it was difficult ...

Read more →
C# 7 Additions – Literals

September 2, 2016

A small, but nice chance in C# 7 is increased flexibility in literals. Previously, large numeric constants had no separator, and it was difficult ...

Read more →
C# 7 Additions – Throw Expressions

September 1, 2016

In previous versions, throwing exceptions had certain limitations where they could be used. Although not hampering, at times it caused additional ...

Read more →
C# 7 Additions – Throw Expressions

September 1, 2016

In previous versions, throwing exceptions had certain limitations where they could be used. Although not hampering, at times it caused additional ...

Read more →
C# 7 Additions – ref Variables

August 31, 2016

C# 7 expands the use of the ref keyword. Along with its previous use, it can now be used in return statements, and local variables can store a refe...

Read more →
C# 7 Additions – ref Variables

August 31, 2016

C# 7 expands the use of the ref keyword. Along with its previous use, it can now be used in return statements, and local variables can store a refe...

Read more →
C# 7 Additions – Out Variables

August 30, 2016

C# 7 removes the need for out variables to be predeclared before passing them into a function.

Read more →
C# 7 Additions – Out Variables

August 30, 2016

C# 7 removes the need for out variables to be predeclared before passing them into a function.

Read more →
C# 7 Additions – Deconstructors

August 29, 2016

C# has a new type of method, the Deconstructor. When a type implements this method type with the name of Deconstruct, multiple variables maybe dir...

Read more →
C# 7 Additions – Deconstructors

August 29, 2016

C# has a new type of method, the Deconstructor. When a type implements this method type with the name of Deconstruct, multiple variables maybe dir...

Read more →
C# 7 Additions – Local Functions

August 28, 2016

In C# 7 it is now possible to create a function within a function termed a Local Function. This is for instances where a second function is helpfu...

Read more →
C# 7 Additions – Local Functions

August 28, 2016

In C# 7 it is now possible to create a function within a function termed a Local Function. This is for instances where a second function is helpfu...

Read more →
C# 7 Additions - Tuples

August 27, 2016

In C# 7 Microsoft has introduced an updated Tuple type. It has a streamlined syntax compared to it’s predecessor making it fall it look more like F...

Read more →
C# 7 Additions - Tuples

August 27, 2016

In C# 7 Microsoft has introduced an updated Tuple type. It has a streamlined syntax compared to it’s predecessor making it fall it look more like F...

Read more →
It's OK, My eval is Sandboxed (No It's Not)

July 6, 2016

The idea of using eval has always been in interesting debate. Instead of writing logic which accounts for possibly hundreds of different scenarios,...

Read more →
It's OK, My eval is Sandboxed (No It's Not)

July 6, 2016

The idea of using eval has always been in interesting debate. Instead of writing logic which accounts for possibly hundreds of different scenarios,...

Read more →
Project Oxford - Image Text Detection

March 21, 2016

Microsoft has a new set of services which use machine learning to extrapolate data from images and speech called Project Oxford. Each service has ...

Read more →
Minutes and Seconds

March 14, 2016

When dealing with dates in .NET, most applications use the System.DateTime struct to store and manipulate dates. It has a natural conversion from ...

Read more →
Configuring Logic

March 7, 2016

This question talks about removing a switch statement so that every time the business logic changes concerning a multiplier value, the C# code itse...

Read more →
Pushing Data

February 29, 2016

Consider the following two pieces of code:

Read more →
Just write it here, I'll handle the rest

February 22, 2016

It’s pretty common knowledge in a .NET console application using the following command will produce the following result.

Read more →
Just write it here, I'll handle the rest

February 22, 2016

It’s pretty common knowledge in a .NET console application using the following command will produce the following result.

Read more →
Application Performance Monitoring in .NET

February 9, 2016

I’ll be talking on Application Performance Monitoring in .NET on the 16th at TCC. Come listen and get free pizza!

Read more →
Application Performance Monitoring in .NET

February 9, 2016

I’ll be talking on Application Performance Monitoring in .NET on the 16th at TCC. Come listen and get free pizza!

Read more →
Quick and Dirty Data Auditing

October 19, 2015

A lot of times a project, especially as it progresses, lacks proper requirements, time, or the resources, and tracking changes to data is often an ...

Read more →
Compile Time Stored Procedures

April 25, 2015

(code for this project can be found here)

Read more →
I thought you were the new method?

March 30, 2015

In C#, the concept of a virtual method is not new. It’s a simple concept in which a child class may change the functionality of certain parent met...

Read more →
I thought you were the new method?

March 30, 2015

In C#, the concept of a virtual method is not new. It’s a simple concept in which a child class may change the functionality of certain parent met...

Read more →
It's O.K. It's Just Us Two Rows Joined: Vertical Partitioning Or When a 1x1 Table Relationship Makes Sense

January 12, 2015

From a theoretical sense, there would never be any reason to segregate data which has a one to one relationship. Multiple tables were meant to all...

Read more →
It's O.K. It's Just Us Two Rows Joined: Vertical Partitioning Or When a 1x1 Table Relationship Makes Sense

January 12, 2015

From a theoretical sense, there would never be any reason to segregate data which has a one to one relationship. Multiple tables were meant to all...

Read more →
Reclaiming Stored Procedure Code

January 5, 2015

One of the largest problems people have with keeping stored procedures in source control is not a disagreement that they should be but the change t...

Read more →
Did You Forget to Create a Nuget Package Again?

December 15, 2014

The biggest problem with managing Nuget packages for internal applications is creating and publishing the correct versions for others to consume. ...

Read more →
Did You Forget to Create a Nuget Package Again?

December 15, 2014

The biggest problem with managing Nuget packages for internal applications is creating and publishing the correct versions for others to consume. ...

Read more →
Are you finally going to do something about this?

December 1, 2014

There is often a lot of questions about the execution of finally statements in C#. It is a common assumption that finally blocks reliably execute,...

Read more →
Are you finally going to do something about this?

December 1, 2014

There is often a lot of questions about the execution of finally statements in C#. It is a common assumption that finally blocks reliably execute,...

Read more →
Wait Wait Don't Tell Me.....On Second Thought

November 24, 2014

Consider the following:

Read more →
Wait Wait Don't Tell Me.....On Second Thought

November 24, 2014

Consider the following:

Read more →
Mockups - Now with moving pictures

November 9, 2014

Wireframing applications are great for creating quick visuals of what a screen or series of screens may look like. The quality of the picture co...

Read more →
I'm out of Range? You're out of Range!

October 26, 2014

In IIS there are several different options allowing you to control the behavior of an application. With all of these settings Microsoft attempts t...

Read more →
I'm out of Range? You're out of Range!

October 26, 2014

In IIS there are several different options allowing you to control the behavior of an application. With all of these settings Microsoft attempts t...

Read more →
Under The Mattress (or Compiled Code) is Not a Good Place to Hide Passwords

August 3, 2014

The question comes up from time to time about storing passwords in code, and is it secure. Ultimately, it’s probably a bad idea to store passwords...

Read more →
Under The Mattress (or Compiled Code) is Not a Good Place to Hide Passwords

August 3, 2014

The question comes up from time to time about storing passwords in code, and is it secure. Ultimately, it’s probably a bad idea to store passwords...

Read more →
Can I at Least Get Your Name Before We do This?

July 13, 2014

As applications grow in size and age, they can become difficult to navigate and unruly to manage. Most organizations give little thought to spendi...

Read more →
Can I at Least Get Your Name Before We do This?

July 13, 2014

As applications grow in size and age, they can become difficult to navigate and unruly to manage. Most organizations give little thought to spendi...

Read more →
Environments, You All Look the Same to Me

June 15, 2014

Several years ago, I was working on moving data from the reporting server to the development environment so I could test structural changes. Think...

Read more →
Environments, You All Look the Same to Me

June 15, 2014

Several years ago, I was working on moving data from the reporting server to the development environment so I could test structural changes. Think...

Read more →
The Shake and Bake Dashboard

June 11, 2014

A few weeks ago, someone asked me if it is possible to create a server dashboard (real time processor usage, available memory etc.) using web techn...

Read more →
Return From The Void

May 27, 2014

In a recent project, we were tasked with making a service layer more manageable and efficient, and with a tight deadline each minute needed to coun...

Read more →
Adding New Web Applications

April 16, 2014

Using PowerShell to create new web applications with the IIS PowerShell Snap-In is incredibly easy. Just use New-WebApplication and specify S...

Read more →
Cut the Header Off and the Body will Die (Well not really)

April 13, 2014

Recently, I had to work on an audit item concerning removing the “X-Powered-By” header from the IIS websites.

Read more →
Cut the Header Off and the Body will Die (Well not really)

April 13, 2014

Recently, I had to work on an audit item concerning removing the “X-Powered-By” header from the IIS websites.

Read more →
JSIooa nvrtai Sncgtpi -> Sorting In JavaScript

April 6, 2014

JavaScript has built in functionality to sort arrays, but it doesn’t always work the way you think it would.

Read more →
JSIooa nvrtai Sncgtpi -> Sorting In JavaScript

April 6, 2014

JavaScript has built in functionality to sort arrays, but it doesn’t always work the way you think it would.

Read more →
Oh Snap! (Restore)

April 2, 2014

One of the most difficult aspects of the software development process is developing for and testing database updates. Unlike updating web sites, a...

Read more →
Oh Snap! (Restore)

April 2, 2014

One of the most difficult aspects of the software development process is developing for and testing database updates. Unlike updating web sites, a...

Read more →
Please Spell For Me

March 23, 2014

One thing that always frustrated me about writing in technology (documents, resumes etc.) was the abnormal spelling of companies, technologies, and...

Read more →
Where's The Scope

March 20, 2014

When I started programming, it was customary to declare the variables at the top of the method. Many people stated that it was clearer to declare ...

Read more →
Where's The Scope

March 20, 2014

When I started programming, it was customary to declare the variables at the top of the method. Many people stated that it was clearer to declare ...

Read more →
Find a Guid In a Haystack

March 16, 2014

A little while ago we had a problem when an unidentified Guid came up in an error email. Whoever wrote the original message, knew exactly where to...

Read more →
Non Failing Scripts

March 12, 2014

One of the most frustrating parts of database development is double applying scripts. If you are working directly on the production server, this p...

Read more →
Non Failing Scripts

March 12, 2014

One of the most frustrating parts of database development is double applying scripts. If you are working directly on the production server, this p...

Read more →
Brackets

March 9, 2014

When writing a language where { ... } or BEGIN ... END are optional, I always put them in. Some people say this takes up space when not required...

Read more →
Generating SQL

January 15, 2014

Generally, I don’t like writing code more than once if I can avoid it.  Most people apply the DRY principle to application code, but I also find it...

Read more →
What is says not how it looks

January 1, 2014

Control Shift V to paste without formatting.

Read more →
Language Comparison Euler Problem Two

January 1, 2014

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

Read more →
It's Time For All You SQL Objects to get in Your Proper Execution Order

January 1, 2014

One of the biggest difficulties with moving database objects from one environment to another is getting the execution order correct. It’s possible...

Read more →
Dynamic Testing Is Better Than No Testing At All

January 1, 2014

https://github.com/PombeirP/T4Factories/blob/master/T4Factories.Testbed/CodeTemplates/VisualStudioAutomationHelper.ttinclude

Read more →
It's Time For All You SQL Objects to get in Your Proper Execution Order

January 1, 2014

One of the biggest difficulties with moving database objects from one environment to another is getting the execution order correct. It’s possible...

Read more →