About This Website

Created: Feb. 24, 2018
Modified: Dec. 13, 2019
Tags: meta, personal

This Website

The motivating idea for this site is that it become a sort of garden that I will tend over time. Revising some parts, pruning others, grafting on new notes.

Less metaphorically, it is a perpetual draft. I am fascinated by human projects that take a long view, that unfold over the years, and that ultimately reward patience. My ambition is that this website can be such a project for myself.


The core principles guiding the design of nwj.cc are:

In keeping with those principles, the site is static HTML and CSS. It loads no Javascript at all. All content is written in CommonMark Markdown and compiled to HTML using Hugo. Pages are styled via the excellent TailwindCSS framework. Hugo Pipes and PostCSS handle all other asset compilation, such as CSS minification. A full revision history is in git (see this Github repo).

The site is hosted on the smallest, cheapest Digital Ocean droplet available (currently 1 GB RAM + 1 CPU) and served with Nginx. It is deployed using Ansible. There is no user tracking code, though I monitor basic traffic via server logs and GoAccess.


I am a software developer and engineering manager living in NYC. Since 2014, I have worked at Braze, where I manage one of their engineering teams. In a prior life, I worked as a policy analyst for the New York State Governor's Office. And before that, I studied history and philosophy at Swarthmore College.



Uses This


Computer-wise, my daily driver is a 2017 MacBook with 16GB of RAM. Apple has since replaced this model with the MacBook Air, which is the same idea but with two USB-C ports instead of one and a slightly larger screen. Anyway, this is easily the best computer I have ever owned. It is sleek and thin and light. It has more than enough power for my needs. If I suddenly need a bunch of compute, it's trivial to spin something up on AWS or Digital Ocean.

I also own a Dell XPS 13, which serves solely as a machine for playing StarCraft II. Consequently, it spends most of its time plugged into an Akitio Node GPU enclosure with a GeForce GTX 970 Mini. Sooner or later, the siren call of PC construction will breach my defenses and I will build a new gaming rig. When that happens, this laptop will likely end up with Ubuntu on it.

At work, I use the standard startup issue 13” MacBook Pro. How boring.

Given that all my computers are laptops, I don't use peripherals that much. Still, I have a Logitech G603 wireless mouse, which would be lovely except that the scroll wheel doesn't work at all on macOS due to some sort of firmware or driver bug. I also have a WhiteFox mechanical keyboard. I have never quite managed to find the mechanical keyboard I dream of and so, periodically, I fantasize about building my own completely custom solution.

My phone is a 1st Generation Pixel XL which I've been dreading upgrading for a while. Google seems to be dropping the ball with their newer Pixel models and all the other Android phone manufacturers keep self-sabotaging by adding their own bloated, crappy software to Android and never issuing OS updates. More broadly, my take on the current phone ecosystem is that the hardware is amazing. Is anyone using modern phones in a way that pushes the limits of the hardware? The software, on the other hand, is so limiting - walled garden apps with no interoperability and design that trades power and creative expression for “usability”.

I read on a Kindle Paperwhite when I'm not reading on my phone. And I listen to music and shelter from the sounds of the subway with a pair of Jabra 65T earbuds.

While I am, by tradition and upbringing, a PC gamer, most of my gaming over the last few years has been on the Nintendo Switch. The Switch is an instant classic, and I hope its form factor and flexibility inspire a bunch of future devices.

Finally, I carry some of these things around in a Tom Bihn Synapse 25 backpack. Do not be fooled by the conservative and somewhat dull appearance. It is an exceptionally well designed bag.


I spend the most time in Firefox (extensions: HTTPS Everywhere, uBlock Origin, Neat URL, Momentum, 1Password). All my writing (of code or text) is done within Neovim (my config) running inside Alacritty + zsh (with oh my zsh) + tmux.

My go to programming languages are Ruby (version managed with rbenv), Javascript, and Elm. I've worked a little bit with Go. I'm learning Rust. I prefer Ansible (my playbooks) for configuration management and deployment. While I sometimes use tools like docker and (to a lesser extent) kubernetes, they strike me as excessive complication unless you are running large distributed systems.

I largely use the same UNIX command line tools as the rest of the world, but a few exceptions are worth mention. ripgrep is a blazing fast replacement for grep, written in Rust. tldr is a simple alternative to man pages. fzf is a fuzzy finder which I mostly use for path and shell history searching.

For facts and ideas that I really care about, I use Anki to remember. Technology aided spaced repetition is the closest thing to a super power I have encountered, other than maybe modern contact lenses. I also keep written notes in nvAlt. I track other things in Todoist (todo lists…), Pinboard (bookmarks), YNAB (finances), and Beeminder (goals).

Other miscellany. Alfred, Bartender, Rectangle, and Day-O are nice quality of life improvements for macOS. f.lux keeps me from messing up my sleep schedule. And there's this lovely tea timer built by Michael Villar.

All of this software is installed and kept up to date via homebrew. Everything is backed up via Dropbox and Borg.