Set-Associative Cache in C#, Part 2: Interface Design

This is part 2 of a three-part series on implementing a set-associative cache in C#. In part 1, we looked at how set-associative caches work and sketched out the basic design. In this part, we’ll expand on the design a bit more and define a code interface for the cache. In part 3, we’ll turn …
Continue reading Set-Associative Cache in C#, Part 2: Interface Design

Set-Associative Cache in C#, Part 1: Analysis & Initial Design

A couple of weeks ago, I had never heard of a set-associative cache. Then, I was assigned an interview exercise on HackerRank entitled “Set-Associative Cache Optimization”. (I won’t give away the company or any details about the exercise, since that wouldn’t be fair.) Since I hadn’t heard of such a cache, I decided to learn …
Continue reading Set-Associative Cache in C#, Part 1: Analysis & Initial Design

George Orwell and Effective Coding

I spend a lot of time and effort trying to get better at the craft of software development. My goal every day is to fall asleep as a better programmer than the one that awoke that morning. While this involves a lot of reading and practice within the field, I usually learn more by studying …
Continue reading George Orwell and Effective Coding

Olympic Note Passing

A good analogy can often be useful to explain intricate technical details. In an earlier article, “Wrong Fish Food”, I related an analogy that I used to describe a technical issue to a non-technical audience. This article shares an analogy I created for a technical audience, because sometimes even techies need an analogy to grasp …
Continue reading Olympic Note Passing

Hyphens. Use them. They’re important.

I hate to follow one rant with another one, but I’ve got to get this off my chest. Look at these pictures: See the difference? The first picture is of a high-school student (my elder daughter, Madeline). The second picture is of a high school student (Sean Penn as Jeff Spicoli in Fast Times at …
Continue reading Hyphens. Use them. They’re important.