Posts
-
When recursion may not be the right answer
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. ✨
-
Containerizing a Next.js, Remix, or other Node.js app with Docker
This is an example of how to run a node.js app in a Docker container.
-
Building a full stack app with Remix, Prisma, and Supabase
There is a misconception that Remix is only for static sites. This is a how-to guide for building a full-stack app with the new framework + Prisma + Supabase, and deploying it to Vercel.
-
Zen and the art of writing good commit messages
The difference between good and bad commit messages, and how to enforce the structure with commitlint and Husky git hooks.
-
Prettier, ESLint, & the Airbnb Style Guide in VS Code
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.
-
TypeScript: Type Alias versus Interface
Should you use Type Aliases or Interfaces? The answer may surprise you.
-
Migrating away from Google Analytics to Plausible
I've decided to move away from GA and go with a different analytics product.
-
Who's your BFF? Rough notes on the popular BFF architecture pattern
Let's talk about the BFF pattern. No, BFF doesn't mean Best Friends Forever, but really it kinda is.
-
Docker containers with persistent storage
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.
-
Chasing a red herring across the stack
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.
-
Automatically set your Slack status using your Calendar
Automate the process of updating your Slack status using information in your calendar.
-
Convert JSON API responses into CSV with jq
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.
-
The terminal where it happens - basic text analysis using Unix/Linux utilities
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.
-
Don’t make your tech candidates do whiteboarding interviews
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: a NoSQL database in Go
yakdb is a highly-performant in-memory key-value store. This in an experiment in writing a key-value store with Golang.
-
Mass virtual hosting with NGINX
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.
-
Migrating large INNODB database tables
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.
-
Mass virtual hosting with Apache
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.
-
Rebooting a blog in under 24 hours with Jekyll
This is the story of the time I converted my blog to Jekyll.