I’m a software engineer, runner, dad, and indie maker currently living in Raleigh, NC.
This is my personal website. What you see below are a collection of my thoughts, insights, and sometimes just public documentation. I’ve realized that if I try to get my thoughts perfect before hitting publish they will never see the light of day. So strap yourself in and read the things I was happy to put out into the world, freed from expectations.
I was recently asked about the best way to calculate a particular Fibonacci number. In this post I explain why you may not always want to reach for recursion, a favorite technique of interviewers. ✨ WITH MEMES AND GRAPHS. ✨
Running a Docker container usually does not allow you to persist any configs or other files. Let's look at a few ways to make this more useful.
This is a dramatic retelling of the time I had to chase a particular bug across several layers of the stack. Read on and see if you can figure out what the issue was.
Automate the process of updating your Slack status using information in your calendar.
We spend far more time reading code than writing it. Set up a linter and code formatter so you don't spend time worrying about how your code should look, and automatically fix a lot of common errors.
It gets tedious if you need to write a script every time you need to parse an API response to do some data analysis on it. This post shows you how to do that from the command line.
Unix/Linux utilities are one of my favorite ways to do basic text analysis. This post was originally a Twitter thread but I kept running into the character limit and wanted to write it down in longer form, so here we are.
Fix your interview process! Complicated whiteboarding sessions only test whether you’re good at interviewing and whether you are good at memorizing textbook solutions to textbook problems. They don't tell you if someone will be good at their job.
yakdb is a highly-performant in-memory key-value store. This in an experiment in writing a key-value store with Golang.
I seem to get a lot of traffic to my post about mass virtual hosting with Apache, so I felt like I should probably write this simply for the sake of completeness, even though it's brutally simple.
I needed to move a 100gb database (all tables are INNODB) from a server in datacenter A to a different server in datacenter B. It was complicated enough to need to be documented.
Sometimes you have no choice but to use Apache. And you might want to support wildcard domains for your entire team so dynamic hostnames work.
Once upon a time, I really enjoyed writing in my blog. While I enjoyed blogging, the website/server maintenance part of it sucked because I had to keep Wordpress updated and run yum update semi-religiously to ensure that my server didn't get taken over by a bunch of script kiddies, all to protect a few dozen blog entries.