Personal Projects

Personal Projects

The goal with my personal projects is usually a combination of 1) do something cool and 2) get actual experience coding in the area of CS I am interested in (reading books can only do so much). CS is really a learn-by-doing field. Especially with something like performance engineering where you have to be a bit creative with your solutions, getting hands-on experience is ideal.

This past summer I had some free time between finishing school and waiting for my job to start, so I decided to put my efforts into some performance engineering problems I had heard about:

I picked these in particular because they were interesting, didn’t require owning hardware yourself (no AVX512 on my Macbook 💀), and had robust ways of measuring performance.

In the future I plan on doing something related to networking/systems. I would also like to do some more GPU work, but renting those out, especially the bare metal environments needed for reliable performance measurements, are a bit pricy. Once I’ve exhausted my systems goals and I spend the time to make a solid plan of what type of problem I’d like to do on a GPU, I’ll relook into that.

Note on AI: AI is pretty good at programming, especially in contrived, constrained situations like these performance challenges. The point of these personal projects, though, is to learn. I want to be doing the hard work of idea generation and understanding the problem down to the fine implementation details. That is why I try to limit my AI usage in these personal projects to just debugging and as a general rule, use it only in parts of the project that I don't need to learn from (which as of now is nowhere). The one notable exception to this, however, is the creation of this website.