Building Kotlin in a Bazel environment

Kotlin on Bazel I’ve worked on the Advent of Code problems in a variety of languages. I prefer to have them in one consistent build environment, so I standardized on Bazel. There are several guides online which attempt to explain this process, but when trying to set up a project from scratch rather than modify an existing Java (or other) project I found that none of them seemed to capture everything that was required. [Read More]

Small Parts Organization

There are all sorts of reasons to amass a large number of various small items depending on your hobbies and interests. Whether it’s hardware, electrical components, plastic bricks, or any other passion, things tend to pile up. There are a number of ways to deal with this - drawers, tool cabinets, and so on - but my favorite is modular boxes. These boxes have spaces for items of various sizes and can be carried around to where you need them, while still being stored in a central location for quick reference. [Read More]

Integrating Rifftrax Audio Into Movies

RiffTrax is a project by the actors behind MST3K. While they specialize in Sci-Fi B-Movies, they also offer “Just the Jokes": riff tracks that play over traditional Hollywood movies you’ve seen before. The tracks are traditionally played on a secondary device - you’re watching the movie and playing the provided MP3 file via some other means and doing your best to keep the two in sync with the provided sound cues. [Read More]

Scope Creep

I have a brand new home office setup. This all started when I planned to build a bed - a bed that doesn’t exist and that won’t be finished any time soon. How did things come to this? It was a series of small changes, each of which seemed reasonable at the time: Back in December, I started planning to build a bed. I ordered the hardware but not the wood (more on that later). [Read More]

Reading List

This is a list of some books I’ve enjoyed or found useful, grouped roughly by subject. It is by no means conclusive. This list was most recently updated on March 15, 2020. Software Engineering Working Effectively With Legacy Code by Michael C. Feathers - More than any other, I wish I had read this book earlier in my career. It’s packed with advice on interacting with existing systems in the real world. [Read More]

The Importance of "No"

A tremendous amount of time, money, and effort goes towards training people how to get software jobs. Once someone has been hired, however, too often they are left on their own. Good workplaces pair new engineers with mentors (and if the new hire is fortunate enough to be paired with someone passionate about mentoring, the results can be good). For those who know where to look there are a number of good books which can help, but for the rest there are a number of lessons that are usually learned the hard way. [Read More]