Welcome to my personal page! While I do blog, I won't quite call it a blog anymore since I am not a prolific author and because I plan on including links to projects and other work that I do.

Recent Posts

Another missing piece: std::raw_memory and lifecycle management

C++ gives us precise tools for managing the ownership of objects, but when it comes to the transitions between raw storage and live objects, there’s a lot to be desired.

A view to nowhere: Why the UB in std::string_view constructors makes our life worse

Following on my earlier post about the many little C++ papercuts that we all deal with everyday, comes std::string_view and says “hold my beer.”

A Missing Piece: Why std::array Should Accept std::span Assignment

After nearly 30 years of C++ development, you’d think the little papercuts would stop bothering me. But sometimes you hit one that’s so perfectly illustrative of the language’s occasional blind spots that it demands attention.

Today’s frustration: std::array<T, N> lacks an assignment operator that lets you pass in a std::span<T, N>. It’s a small thing, but it is incredibly frustrating.

The $20,000 Lesson Every Consultant Should Learn: Due Diligence and Consulting Agreements

If you’re reading this post, you’re probably a software developer trying to work as a consultant or, more generally, a knowledge worker who trades expertise for money. Like me, you probably spent years honing your technical skills, perfecting your craft. Then you read a couple of books about negotiation, felt like you learned what you needed and you were off to the races.

But let me tell you how skipping 30 minutes of corporate due diligence and a bit of extra one-time work cost me $20,000 and taught me more about business than a dozen MBA courses.