2024 Q3 Retrospective

We’re 3 quarters of the way through the year! What’s the vibe heading into the final sprint?


It’s been a crazy couple months and I’ve felt like I’ve been running around like a headless chicken for a lot of it. Taking the time to record some of my learnings here helps me keep track of it all. To set some context, the overarching goal this year was to stay focused on my long term goals.

I’ll be structuring this post to be in a sort of “reverse-order”. The sections closer to the top will be things I tend to write about less on this blog. If you like my usual content, scroll all the way to the end.

Personal

I need to get better at taking breaks. I’ve been in a constant state of chasing my next goal for the last couple years and it’s definitely caught up to me - I even ended taking a trip to the hospital after neglecting some health issues. I think I assumed that the only way through burn out was to just keep pushing, but I don’t think that’s ever actually worked. Now I’m trying something slightly different - I’m working less and making more time and space for actually unwinding after work or on the weekends. No more 7am-7pm, 7 days a week - at least not for a while. Counter intuitively, slowing down has been hugely beneficial for my productivity. I feel like I rediscover this every couple years…

Live Music

I saw three shows this quarter:

  • Ghost Funk Orchestra
    • Amazing show, the opening bands were really cool too.
  • Avatar in concert
    • Reliving memories of ATLA was fun! It was also cool to see all the audience members who dressed up for the occasion.
  • Brothertiger
    • Amazing show. The accompanying laser visuals were also super cool. It was one of the smaller shows I’ve been to - Brothertiger is criminally underrated IMO.

Live music is cool - I want to go and support local artists more often.

Fitness

Between the harsh summer, a busy schedule, and me just not making enough time for exercise, I haven’t made a lot of progress with any fitness goals. I’ve only ran 13 miles this quarter, but I’ve biked 336. Not bad considering the heat. Only 2 “big” rides, but in both of those I felt pretty good about how it felt. I’m signed up for an event to do my first 100 mile ride in a couple weeks - honestly feeling a bit iffy about it, but I’m hopeful. I’m going to have to be careful about pacing, but I’ve got a good group of people to ride with so I’m looking forward to it.

Reading

8 out of 12 books read! Starting to fall behind schedule, but I’ve got a few flights coming up and that’s usually a good chance to read a book or two. The only books I read this quarter were both part of Robin Hobb’s assassin trilogy. It was an amazingly addictive series, though the second half of book three fell slightly flat for me.

Cooking

Haven’t cooked as much as I’d hoped, but I had a brief phase where I got really into making pizza. Also went through a brief Japanese curry phase. I’m definitely eating out far less than the start of the year, and I’ve even been cutting down on junk food pretty significantly!

Computing

Work

Work has been interesting. I took a couple weeks off to focus on my mental health and it was hugely beneficial. Got a big project done - it took longer than expected, but I think some part of that was because my project exposed some deeper latent bugs in the system.

Not Work

Open source contributions

This quarter I contributed to two open source projects:

  • hostfile
    • This is an open source library that I published years ago. Someone filed an issue regarding a longstanding bug so I fixed it. It made me happy to realize that my work is actually being used by people - and apparently a lot of people according to the stats on crates.io. Seems like some library has hostfile as a dependency.
  • Galois
    • A small optimization for a distributed triangle counting implementation.

XYBoard

In 2020, I started building a custom keyboard with some unique features - joysticks that emulate keys. I built a small proof of concept, but then I put the project down until a few months ago, when I decided it was time to make some progress. Since then, I’ve built a much better prototype, and even worked on the firmware. It was a super fun experience, mainly because I got to engage in some physical problem solving and see my work manifest as a tangible object. Along the way, I had to learn some lessons around patience as I had to debug things like broken traces on my PCBs. The project is once again on pause, but there’s a much clearer set of tasks to pick up now.

While I’m happy about the progress made, I do acknowledge that this project became a bit of a distraction. Although I had higher priority tasks, I found myself putting hours I couldn’t afford to lose into working on XYBoard. When I acknowledged that, I was able to harness this to some extent by using working on the keyboard as a reward for completing other tasks.

PyShell

For a while I tried to start doing livestreams of a project idea I had for a while - building better tools to integrate scripting languages with shells. I only streamed once, but had a ton of AV issues. I only allowed myself to pick this project with the premise that I’d only work on it on streams to have only a bounded amount of time towards side projects that aren’t related to my long term goals. I’d like to return to this project but it might have to wait till next year.

Research/Academia

This quarter, I took the GRE and did better than I did in 2019! It was a pretty minor difference, with the biggest improvement being my writing score (I got a 4 in 2019, vs a 5 in 2024). I think I’ve just gotten a lot better at understanding what makes an argument good or bad by virtue of having interacted with more persuasive writing professionally. Aside from my work with UW, I’ve also been working to define my own research project about using graph query languages to build better development tools. This builds off of a project I’ve worked on the past called Rainbow, and I’ll hopefully write more about that work here eventually.

PyLLVMPass

I was trying to extend my work on Rainbow by making it work as an LLVM optimization pass instead of an AST walker. I didn’t want to have to reimplement the whole thing in C++ or another language that could link again the LLVM C API. So I wrote a small shim library in Rust that allows one to load python modules as LLVM optimization passes. I think this is a super useful tool. It helps lower the barrier of entry to working with LLVM and I hope to find more users and usecases for it.

This blog!

9 new posts this quarter, coincidentally, the exact same number as last quarter. 4 of those posts were about XYBoard - I was just so excited about it that I had to put my thoughts out there. Pretty cool to see that I’ve kept the momentum going, and lately I’ve gotten the chance to share my blog around more often. I think my favorite blog post from this quarter was the one about PyLLVMPass. Building tools that solve a real problem that I’ve faced is always a satisfying experience.

Q4

Honestly, Q3 felt like a fever dream. Over the last three quarters, I stretched myself too thin and left no room for recovery. I think Q4 is going to be about making sure that my efforts so far this year aren’t in vain. I’ve done a lot of good work up to this point, but now I need to slow down and work smarter, not harder. The final part of this year is going to be around packaging up the work I’ve done into a solid application for grad school and figuring out a good direction for my career. I’m hoping to take a sabbatical towards the end of the year/into next year to give me some time to explore larger projects as well as to take some time to explore goals unrelated to computing.

Written on October 1, 2024