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

Barbecue and Project Management

As I begin to write this article, it’s 8:30 on the Saturday morning of Memorial Day weekend, the de facto start of the summer season in the United States. In most parts of the country, and especially in the South where I live, that means it’s also barbecue season. I take my barbecue seriously, so …
Continue reading Barbecue and Project Management

Scheduling Every Minute, Revisited

Note: I originally posted this article on LinkedIn.  “Planning is bringing the future into the present so that you can do something about it now.” —  Alan Lakein Late last year, I published an article entitled “How I Plan Every Minute of My Day to Stay Productive,” where I described my personal daily workflow of planning the …
Continue reading Scheduling Every Minute, Revisited

On Recruiting

I’ll have more to say about this later, but I want to get this quote out there now so that technical leads, engineering managers, engineering directors, and vice-presidents of software engineering can have it embroidered on a pillow, printed on a t-shirt, and taped to their bathroom mirrors: The quality of your company’s software will …
Continue reading On Recruiting

Conway’s Game of Life in JavaScript

I realized yesterday that I had never implemented Conway’s Game of Life, which is something of a rite of passage for young computer-science students. As I opted for a more non-traditional path to the software profession, I somehow missed that fun, even though I’ve made a point of implementing other computer-sciency things like it. Here …
Continue reading Conway’s Game of Life in JavaScript

How I Plan Every Minute of My Day to Stay Productive

Note: I also posted this article on LinkedIn. “In preparing for battle I have always found that plans are useless, but planning is indispensable.” — Dwight D. Eisenhower Over the years, I have progressed from being a software developer who focuses on code all day, to a designer who designs and codes, to a technical …
Continue reading How I Plan Every Minute of My Day to Stay Productive

Master Foo and the Technical Recruiter

I found Eric Raymond’s Unix Koans of Master Foo several years ago and simply loved them. Like the Zen koans they are taken from, they are a succinct way to communicate concepts of software development, specifically as they relate to the Unix development subculture. In the same spirit as Eric’s koans, I wrote a similar …
Continue reading Master Foo and the Technical Recruiter