Kind of a fragmented year.
tigerbeetle
I left in May. I learned a lot and I'm proud of the work I did. But I don't like the culture that surrounds startups, and that discomfort turns to burnout over time. 7am meetings probably didn't help either, putting me well out of sync with my wife who works evening shifts.
I spent very little of that time writing about what I learned, other than scattered log entries (0030-0034) and a talk at systems distributed titled What is a database?.
zest
I spent much of the summer tinkering with programming languages. I convinced myself that a lot of the ideas in imp don't actually require a relational language - it's just that the properties that are important just happen to have mostly appeared in relational languages to date. In There are no strings on me I sketched out a path to importing these propeties into a functional/imperative setting, and in Implementing interactive language and Baby's first wasm compiler I tested out an implementation strategy.
In the fall I started fleshing out the language in a tree-walking interpreter. So far:
- I'm really happy with the data notation and the control-flow-capturing closures.
- Mutation is totally missing but the core design is worked out and probably won't change much.
- The dynamic type system exists but will probably see a lot of tweaking.
- The static type system is totally missing but will just be an abstract interpretation of the dynamic type system.
- Error handling via control-flow-capture works but needs a lot of sugar to be pleasant.
consulting
I spent a month at the start of the winter consulting on adding a columnar query engine to an existing project. I ended up bailing because we couldn't agree on the approach at all, and I can't help thinking of this as a missing consulting skill - that I should have been able to figure out beforehand whether we were actually aligned before committing to the project and wasting their time.
I put a lot of prep time in before the project. I brushed up on the state of the art in A shallow survey of OLAP and HTAP query engines. I also learned go, which was tangentially useful in that it gave me a very clear list of things not to do in language design (eg see the struggle in Columnar kernels in go).
misc
I wanted to experiement with not reading any fiction during 2023, because I tend to end up binge-reading and sucking time away from other things I would rather be doing. I ended up making an exception during the summer when I was burnt out, but I kept it up for the rest of the year. I thought that I would end up reading more non-fiction instead, but it seems like that's more limited by the number of intesting books I know about than by time. Instead I just ended up being bored a lot. Which isn't bad in itself, but since I didn't plan some replacement hobby I often ended up browsing tech media instead.
In december I experimented with completely ignoring tech social media (hacker news, lobsters, twitter etc) and, having learned my lesson about leaving time vacuums, listening to podcasts instead. That's been a great change because tech social media is always cynical and mean but the podcasts I've been listening too are more curious and engaged. Plus I'm not tied to a screen so I can stretch, juggle or pace around while listening. I've been enjoying:
- Oxide and friends for computing history and context.
- Clearer thinking for gently but insistently refusing to allow interviewees to dodge questions or hide behind vagueness. ("So can you give me a concrete example of how that would sound in practice? I'm still not sure I'm following - can you give an example dialogue? Ok, but what actual words would you say?")
- Deep questions, despite being repetitive and full of ads, for a weekly reminder to take thinking seriously.
- Lattice training for solid advice and regular inspiration.
I'd love some more recommendations. I'm finding that I enjoy listening to well-prepared interviews more than rambling conversation, and to critical discussion more than story-telling (eg I didn't enjoy 99% invisible).
2024
I'm not feeling full of computering plans right now. Maybe that's just the winter creeping in to my bones.
consulting
I'll likely pick up some consulting work from time to time. I haven't decided yet how much or how often. It's certainly not going to be the bulk of my time - I'm quite happy to hunker down through the downturn rather than lower my rates and work more.
zest
The design is coming together nicely and I want to see how it works out. I know that if I try to make it THE PROJECT then I'll end up feeling pressured and not wanting to work on it. But maybe it can be a background default - something to tinker with when I don't have anything else going on. I'd like to at least be able to put up a little interactive tutorial for the core language, and as a stretch get it working well enough to use for some toy projects and get a feel for how the weird design choices play out.
misc
Ignoring tech media over the holidays has been wonderful. I aim to continue that forever. I miss nothing.