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).
climbing
This was a slightly frustrating season. The burnout really interfered with my spring training so I arrived at the start of the season feeling unprepared. I managed to clean up my two 12c projects from last year and tick a new 12b, but otherwise did very little sport climbing.
I mostly climb with my wife and this summer she wanted to climb in a lot of different places with a lot of new friends, which resulted in cranking out a lot of moderate boulders and also a not-insignificant amount of sulking on my part. But the lesson is that I need to be more deliberate about organizing and pursuing projects rather than just expecting things to fall into place around me.
To compound the sulking I picked up some bicep tendonitis which I steadily mismanaged throughout the fall, so when we made a beautiful winter trip to Heuco Tanks I wasn't able to try most of the classic problems that we visited. It was still a great trip, but it really hammered home that I need to take load management seriously.
joints
I'd been struggling with lower and upper cross syndrome in 2022, to the point of having a few weeks where I could barely manage the stairs from my apartment. Visiting the physiotherapist was largely unhelpful - yes, massaging my legs for a few minutes does somewhat reduce the pain for a few hours, but after a few months of treatment I handn't really regained much function.
I think the root of the problem is that most patients won't even comply with the easiest treatments and so most physios won't prescribe anything that requires any real commitment. I don't know the secret handshake that communicates that having working knees again is my number one priority and I'm actually willing to do something about it.
Anyway, the solution I eventually found was pretty direct. The problem is caused by sitting down too much, so stop sitting down. I replaced all the seating in my apartment with a huge foam floor mat and switched to working at a standing desk. A few weeks later I could already walk for an hour or two without pain. Later I built up to lifting and weighted mobility drills, and eventually was able to return to parkour. But the key thing really was just not sitting down - I was shocked at how quickly my knees just fixed themselves afterwards.
My shoulders took more active fixing, probably because climbing produces a huge imbalance and I'm not going to stop climbing. Building up some more back muscle fixed the tendency towards impingement but I'm still slowly working on getting my mobility back to where it was in my late 20s.
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.
climbing
I signed up for the lattice coaching program in November. I'm hoping to learn how to manage load properly to avoid getting injured all the time. I haven't made any sustained strength gains over the last three years of training and it's beginning to feel like the main limiting factor on my climbing. The initial assessment from lattice certainly supports that:
Hopefully this time next year I'll be able to show some progress.
One cause of injury is the length of the climbing season here. With 5-6 months of good climbing followed by a long dreary winter, we always feel like we have to make the most of the season by climbing as much as possible but 5 months of climbing at our limit is totally unsustainable. So we're going to experiment with breaking this year up into mini-seasons. June and September typically have the best conditions for climbing hard projects at home. July/August can be reserved for recovery, training and social climbing. And then a long trip in January can break up the winter and make us feel less pressure to maximize climbing time through the whole summer.
My focus for June is going to be Just Can't Do It, a vertical 13a that starts with a long crux sequence on tiny sidepull crimps and glassy feet, followed by another ~15m of sustained technical moves with little opportunity to rest (some people divert ~3m out of the middle of the route to a jug to rest and then traverse back in, but I've already decided that I wouldn't feel satisfied by that). I spent a few evenings working it towards the end of this summer and it feels so plausible, if I can just build a little bit more finger strength to survive this painful three move sequence in the crux.
For the rest of the season I want to spend a good amount of time hanging out on the Cacodemon boulder. There's a pragmatic appeal - it's a short walk from lots of boulder problems that my wife would like to work on, so it's logistically easy. But also the easiest routes on it are harder than anything I've ever climbed and the hard routes are among the hardest in Canada. Getting in line with those people is intimidating, to put it mildly. Yet it feels like the right amount of uncomfortable.
parkour
Not even mentioned in previous years because I've been neglecting it. In London I went out with a small group every week. I really enjoyed the playfulness and feeling of adventure, exploring a city with such different eyes that it felt like a new place, full of hidden layers and angles. Moving to Vancouver, an endless flat suburb, it's been hard to recover that. At first going to the local gym had some of the same feeling, but as the lockdown faded and membership soared the vibe changed a lot. Shorter classes, more formal structure, no open-gym-only membershps and drastically reduced open-gym times, too many people and too little time to stop and chat. Lately it feels less like a club and more like a business. I'm glad they're thriving, but I miss when it felt like part of my social circle rather than just another subscription.
It seems like the theme of 2024 is going to be taking ownership of things. For the winter I'm planning to try out one of the daytime classes, which I hear are much smaller and less strutured, and rejig my schedule so that I can get to some of the few remaining open gym slots. And for the summer I think I'll cancel my membership entirely and instead spend more time exploring and playing outside, trying to recapture that feeling.
misc
The last four years have been the year where I'm going to get a driving license, but this time it's for real. I can't move to north america and get away with not driving.
I could do with a new hobby. Computering takes up most of my mental capacity and climbing takes up most of my physical capacity. But there are still plenty of hours in the day that are not filled with either. Maybe I'll get back into drawing. Or learn to play the guitar.
Ignoring tech media over the holidays has been wonderful. I aim to continue that forever. I miss nothing.