Retrospective 2024

12/27/2024

Attention Conservation Notice

A personal retrospective for 2024. This is mostly for me to reflect on the past year and to reason about how I want to approach 2025.

Major Goals for the Year

Here are the goals I wrote up last December 27th:

Goal NameGoal Type
record 10 original trackssynthesizer
participate in Jamuarysynthesizer
finish 3 patchbookssynthesizer
Complete 50 leetcode problemsComputer Science
Read 3 books on system designComputer Science
Complete 20 AoC problemsComputer Science
Contribute to OSS 2 timesComputer Science
Participate in 5 (tidy tuesday / kaggle)Computer Science
Create 5 research notebooksComputer Science
Build a Full Stack ApplicationComputer Science
use summit all year for habitsLife
run at least 10 D&D sessionsLife
meditate at least 5 days / weekLife

How did I do on the prescribed goals?

record 10 original tracks

I likely did more like 15 or so. These were part of Jamuary. I think that if I were to spend a solid couple of quarters on expanding my composition skills I would have an EP worth publishing.

Most of this was done on the train to and from work using a polyend tracker mini, which is a very fun gameboy-style sample synthesizer.

participate in Jamuary

I participated! Out of 31 days, I made a significant jam or piece of music 24 days.

finish 3 patchbooks

Not even close on this one. I got maybe 70% through a patchbook for the pulsar23. This helped my wrap my head around a lot of the functionality that the machine offers. At some point though, my original exploratory jams were a lot more fun than following the patchbook. As a result, I stopped using the patchbook.

Complete 50 leetcode problems

I finished ~51 leetcode problems. My ability to solve leetcode mediums in a reasonable amount of time has gotten much better. There are still some topics that I find particularly difficult (like dynammic programming, backtracking, greedy algorithms). Much like music, I think that if I spent a solid amount of time just focusing on increasing my competitive programming skills I may see good gains here, but my approach is likely too haphazard at the moment.

Read 3 books on system design

I read several books that touched on software architecture:

  • Architecture Patterns in Python
  • Fundamentals of Software Architecture
  • Mastering API Architecture
  • Learning Domain-Driven Design

Of these, I got the most value out of Architecture Patterns in Python, followed by Learning Domain-Driven Design. I'm still not sure I fully grok some of the architectures, but I have learned the value of having a solid scaffold upon which to build an API. A lot of it feels like design patterns for data plumbing. Furthermore, I have been able to directly implement these patterns at work, which has been excellent.

Complete 20 AoC problems

I way out-performed this goal. As of this writing, I have done:

  • 17/25 2015 Problems
  • 25/25 2020 Problems
  • 19/25 2024 Problems

for a total of 61 advent of code problems. These were all done in Racket, which I am now much more comfortable in. I find AoC problems to be more enjoyable than leetcode problems. Leetcode problems have much better specificity when drilling a specific skill-set and a lot less parsing, but AoC problems have fun snippets about helping out elves and often offer a surprise for part 2.

Contribute to OSS 2 times

I added hash-filter, hash-filter-values, and hash-filter-keys to the racket standard library. I also added a dark mode theme to scribble, but it didn't get merged because I wasn't sure how to add a button to toggle themes in scribble and I didn't want to dig into a large domain-specific language and find out.

I also started making the python comps package, but I didn't finish because I almost never use python except for $JOB.

https://github.com/dr-neptune/comps

That said, if I were to finish it, here are some ideas:

  • rewrite the functions in cython
  • try to merge them with cytoolz as a subset package, maybe fortoolz?

Participate in 5 (tidy tuesday / kaggle)

Nothing! I did mentor someone on Data Science though and highly suggested tidy tuesday for exercises.

Create 5 research notebooks

Maybe? Probably not.

I wrote some blog posts that explored different ideas. Here is one that explores momentum in algorithmic trading:

Here is a re-imagining of one of my earliest blog posts in react:

Here are several generative art blog posts:

There are certainly more than 5 items here, but I think I need a better definition for what is a research notebook and what is not.

Build a Full Stack Application

Totally!

I began designing and building a fairly substantial full-stack application at $JOB. I also re-built this blog using react. I also made a few small web applications that use a separated front/backend architecture this year, but they haven't seen the light of day (yet). My latest one is being written in clojure which has been fun so far.

Use summit all year for habits

This has gone wonderfully. I've gotten the chance to see summit grow as a product quite a bit throughout the year. I'm still a big believer in this tool, but I would love to figure out how to leverage it better. Currently I get stuck in long stretches of the same habits, and it becomes just a habit checking application that texts me at night. Ideally it would help me work towards long-term, mastery-oriented goals.

DM at least 10 D&D sessions

I ran 6 D&D sessions this year. This has been a lot of fun, but also a lot of work. The campaign I chose initially didn't prove too exciting, so this quickly became almost entirely homebrew.

meditate at least 5 days / week

Not even a bit.

Goals completed

I completed 7/13 goals, and kind of completed 2 others. I'll give myself a rough 8/13 or 61.5%

Explorations

Workflow Change

For most of this year I had a significant deviation from my normal logging and measurement process. In previous years I've used daily logging combined with a small kanban board to track each item I was working on and how it related to my overall goals. This year I did that until early March or so then stopped.

I think this was due to a change in my daily schedule in which I stopped starting my day by going to my personal computer. Instead I often woke up then went to work or went on the train, and instead had more time at the end of the day. This year I hope to revisit the core assumptions around my personal workflows and build a better system that is easier to stick to.

Life tends to be what happens when you are planning for other things. Here are some of the major things I did this year that weren't included in my yearly plan.

Health

This year I placed a lot more emphasis on my health. Starting around April I started learning about longevity and started implementing some changes to better increase my own healthspan.

The biggest differentiator was sleep. I got a whoop band and took it very seriously. Most nights this year I got a 100% sleep score. I also used the feedback from whoop journaling to figure out ways to increase my HRV and REM sleep.

For example, I found that adding a sleep mask on average more than tripled the amount of REM sleep I logged. I also found that small things like sleeping on my side helped increase my heart rate variability (more is better). Another big thing to note is that alcohol absolutely demolishes healthy sleep.

...And I stopped drinking. This was probably long overdue. I like beer, but the downsides of hangovers outweighed the upsides. This coincided with working with a therapist. With my therapist, we have essentially begun debugging my mind and assumptions and it has given me a much healthier outlook on life and provided a way to continuously improve that outlook over time.

I focused heavily on weight loss this year. I ended going from around 210-215 down to 175. This was spurred by feeling too heavy and for wanting to be more competitive for powerliftng. I read a post (link) about the ideal weight class for your height to be as competitive as possible in powerlifting. I'm still not quite there, but I'm getting close.

Weight loss with my method hasn't been too bad, it just takes a long time and it is boring. I focused on losing 1 lb a week, tracked calories and workouts closely, and took some great advice from Dr. Mike Israetel: blocks of 12 weeks cutting followed by 4 weeks of maintenance to take a break and set a new baseline before further cutting. This proved to be excellent advice, as my weight loss would often stall right around the 10 week mark or so. It would then commence with a renewed vigor after the 4 week maintenance period.

Reading

This year I introduced fiction into my reading and began reading for pleasure instead of purely for study benefit. I don't have exact numbers, but my estimate is probably around 30 books read this year.

There were some real winners:

  • Phillip K Dick books
    • Ubik! Three Stigmata of Palmer Eldritch! Do Androids Dream of Electric Sheep! The Man in the High Castle!
  • Akira
  • Some of the H.P. Lovecraft short stories
    • The Dunwich Horror! The Colour Out of Space!

Lots of react, backend dev in python

My tech stack at work changed from entirely python to using react / typescript on the frontend and python on the backend. I had a lot of fun with this. I even rewrote this blog in react.

Some thoughts

This was my first year without mathematics (in the traditional sense) after university. I think this is probably ok longer term. I'm not sure what I was trying to achieve with all my mathematics study before (aside from stuying more math.) Perhaps this is a bad argument, as it is also hard to say why I study other things as well.

I used GPT almost daily this year. It has made technology even more exciting, and has made me want to program more as a hobby. I feel bad for those folks who only see some downsides and rule out any value it could provide.

2025

For 2024 I switched to quarterly goals at work. I feel like this makes much more sense than yearly goals. It is hard for my mind to really grasp the enormity of an entire year, but I can carefully track a week at a time and link it upwards to the overarching quarter. This year I will be applying quarterly goals to my personal goals as well.

Here are some quick notes (in the style of my 2023 retro post)

  • my personal workflows should become more efficient. I bought a notebook which should add some reflection to my updates.
  • 13 goals is too much. Quarterly goals should be short and thematic to capture any synergies between goals.
  • much like 2023:
    • figure out how to better connect the 'tactical' usage of summit with longer term goals
    • consider getting a coach for things outside of powerlifting
    • figure out a way to make blogging easier and more fluid