Hi, I’m Dave. I’m a computer programmer and startup founder. I’m looking for a job as a software engineer, doing deeply technical work at the edge of the field.

If you’re hiring and think I might be a fit, please reach out! If not, please share this with everyone you know. I’m excited to find a great job, and I really appreciate your help.

How I got here

I’ve been programming computers since I was a kid.

From 2010 through 2023 I helped run the Recurse Center, a company I started with two friends. RC is a retreat for computer programmers. It’s a special place and I care about it deeply. Leaving was incredibly difficult.

I left because I want to get back to technical work. I’ve always loved computers. This made me a great “keeper of the RC spirit,” and I’d make a great Recurser. But none of RC’s biggest problems are technical, and that’s the work I want to do.

At RC I had lots of jobs. Chief among them was being the primary developer of the software that runs the retreat (200,000+ lines of code across three web apps), but I had my hands in everything – strategy, operations, marketing, hiring, legal, crisis management, etc.

What I can do

My software work at RC was mostly web development. We built a calendar (c.f. Google Calendar) and a web forum (c.f. Discourse) to help run the retreat, a CRM and a chat app (Slack, but specialized) for our recruiting business, a catalog of Recursers’ work to help potential attendees understand RC, a 2D virtual space for when RC went online for COVID, and much more. In retrospect, we should have used way more off the shelf software, but we were young and inexperienced.

My personal interests have always been lower down the stack.

From 2015 through 2019, my nights and weekends were spent building Thimble, a hobby operating system for PC and Raspberry Pi. It’s rudimentary, but has protected memory, preemptive multitasking, user space processes, and a number of drivers. I spent the last year on sabbatical, primarily working on Watt, a high performance text editor for macOS (there are YouTube videos). I once took a week-long vacation to do a CPU design course where everyone built a simple pipelined RISC-V core in TL-Verilog, and I just started working on a new systems programming language.

All told, I’ve done work in computer networks, operating systems, filesystems, concurrent programming, text layout, high performance data structures, parsers, VMs, computer graphics and a bit of physics simulation.

I’m good at jumping into large, unfamiliar codebases, understanding complex systems, debugging, and root cause analysis. I can navigate the “full stack,” from grapheme clusters and UI toolkits down to cache lines and memory barriers.

How I can help

Most importantly, I can write code to help solve hard technical problems that are important to your organization.

I’m pragmatic. I know that software isn’t valuable until it ships, and that looking for a “perfect solution” is a recipe for disaster. I won’t overcomplicate things or abstract too early. Even the most interesting technical problems involve tedious work, and I’m willing to do that too.

My business experience can also be useful. I’ve spent years thinking about strategy, goal setting, building alignment within a team, how to empower others, and how to really understand an organization and its most important problems. I don’t want to be a manager, but I can use this to help support my teammates as an IC.