samgeo.codes

Weeks 2 and 3 at RC

It has been a great 3 weeks at RC, so far. Not especially proud that I stopped writing for ~2 weeks, but it has been quite a whirlwind.

The most concrete thing that I've been working on is a project I'm calling Brainlove which is basically just random exploration of Brainfuck tooling. It's been really cool to see how mature the compile-to-wasm ecosystem has become. I still don't think that it would be my first choice for a professional setting, but the developer experience is much better than I was expecting. Deploying the debugger to Netlify as a static bundle was a breeze.

Beyond that, I've probably been spreading myself a little bit too thin in terms of what I'm working on:

  • Paired a lot with Andrew. Learning a lot about effective communication in these sessions. I've also really enjoyed reading Andrew's website and blog.
    • We reached a reasonable conclusion on the 2048 strategy project. We attempted a low-level implementation of board operations that turned out to be slower than the naiive list-based implementation. Really interesting exercise.
    • Wrote a "compiler" for compiling a very small expression language to Brainfuck. This was a mind bender. We both avoided seeking out external resources so it was a lot of fun to solve these problems from scratch.
  • Paired on a bunch of other things (ranging from Leetcode to an Octave LSP).
    • I think pairing has been the biggest benefit of being at RC so far. There are so many things I could explore, but I really want to make the most of being at RC right now, so I hope to continue emphasizing pairing.
  • I put together a small python script for generating LICENSE files. There are already a bunch of implementations of this, but I thought it would be a fun way to learn about how to package python libraries and scripts. There are a lot of outdated resources for python packaging, so this was surprisingly painful.
  • I hobbled together a URL shortener that runs on fly.io but is only accessible within my tailscale network. I used an existing Flask URL shortener that I had worked on with Rana (my wife) a while ago. Once I had a reasonable understanding of how everything fit together, this wasn't too bad. But my mental model of networking could probably use some work.
    • repo for the router code (I didn't write this)
    • repo for the URL shortener
    • post discussing go links on tailscale blog
  • Thought a lot about how to set up an election website that enables users to choose the voting system they use.
  • Made some progress on Crafting Interpreters in C++.
    • repo
    • Most of garbage collection is in place
    • Spent a good amount of time comparing performance with clox across both x86-64 and Apple silicon
  • Read a few chapters of DDIA
    • There's a small reading group for the book at RC where we've had some great discussion, so far. Planning to coordinate reading some papers as well!
  • Finished the available Protohackers problems in Python. These are a blast. I've really been enjoying Amos' series covering Advent of Code in Rust. I think it would be fun to put together a similar style series for Protohackers describing my approach to building out solutions (first in Python, then translating to Rust).

Not a ton of structure to this post, but I want to get back into the swing of writing regularly, so I'm lowering the bar a little bit. If you've made it this far, thanks for reading!