Kelly Norton is a software engineer living in Surf City, North Carolina. He holds degrees from Georgia Tech's School of Electrical and Computer Engineering and from the MIT Media Lab where he studied under John Maeda. From 2006–2012, he was a software engineer at Google working on Google Web Toolkit, Speed Tracer, Google Chrome and other stuff. He co-founded Connexxia LLC in 2000 to help universities effectively recruit high school seniors through online social engagement. He was co-founder at FullStory. He worked on product search at Etsy. Now he is a Distinguished Software Engineer at MailChimp, now part of Intuit.


Recently someone shared a link to a Javascript quiz that asks various questions about Javascript's infamous quirks. One of the questions required that the reader have basic understanding of floating point rounding. This is not a problem unique to Javascript and I attempt to explain why.
How many bits are set to one in a bit string? It’s a problem that pops up in a number of areas: bitsets, cryptography, error correction, and most of all interview questions. This problem is also known by many names: hamming weight, population count, popcount, sideways sum just to name a few. I recently revisited this problem in the context of writing a simple bitset and found myself falling down a rabbit hole when I tried to answer the question: how is std::popcount implemented in C++20?
A thing I learned recently is that constexpr and consteval, in modern C++, are more powerful than I orinally thought. While I never write C++ professionally these days, I recently ported a sudoku solver over to modern C++ and eventually realized that I could compute one of the static data tables at compile time using plain ole C++ code. This is a post about that.
This post is just some fascinating (or quite boring depending on your perspective) minutia that arises in the handling of time and timezones in programming. This deals with a little corner that exists in almost every time library yet I’ve never had much reason to explore it. That little corner is daylight savings time transitions.