January 2025 Retrospective

January 2025

Goals, new technologies, interview preparation

Welcome to the January 2025 retrospective. This month has been busy, and I can already see that the first half of the year is going to be even busier if I want to keep up with my goals.

Catalyst, a nightmare of goals

In the December retrospective, I mentioned that I intended to come back to a project called Catalyst, which is a website that allows users to create and share their passion projects. More specifically, I wanted to rework the backend, clean up the API endpoints and improve the database structure.

So… I did that. And then, a lot more. The backend was a very simple Express setup, where all the logic of a router was handled in a single file. Now, everything is properly divided into routes, controllers and services, and it is very easy to understand where one should touch to change a specific part of the codebase. In addition, the endpoints have been greatly simplified, no more ‘/projects/create/new/branch’ and other nightmares. If you want to create a branch, you hit ‘/branch’ with a POST request, if you want to update it, a PUT request, etc. I also implemented proper middlewares to handle authentication and rate limiting. Oh, and the backend uses TypeScript now!

Then, I looked at the frontend. Initially, maybe naively, I believed I could modify the backend and adjust the frontend minimally to work with the changes. In reality, the frontend was a disaster. The quality of the code was horrendous, as were many of the design decisions. Due to this, I decided to rewrite large parts of the frontend. I streamlined many of the components, implemented React Query, re-thought the route structure, and added utils to streamline communication with the backend.

As you can see, my initial goal of ‘tidy up the backend a bit’ exploded into a near-complete rewrite of the project. What’s worse, I feel like this project would greatly benefit from SSR options, so another rewrite might be in the horizon.

However, it was not all bad. I did learn (or remember) a lot about Express and React. Even though metaframeworks seem to be the future, having these solid fundamentals will be invaluable in the long run.

What’s next?

In the previous retrospective, I mentioned that I had been avoiding proper testing. I am happy to say I’ve been implementing more and more tests, and I am starting to really understand them. I still have a long way to go, many of my projects are missing proper testing, so that will be a big part of the upcoming weeks.

Furthermore, Dungeoneer, my FFXIV collectibles project, has been needing some QoL features for a while now, and I want to finally deliver them.

Then, I have started two new projects, one to learn Svelte and SvelteKit, and another to learn about WebSockets. I don’t know if they will become fully-fledged projects, but I’m excited to see what happens!

Finally, my preparation for interviews is ongoing, with LeetCode, interview questions, mock interviews and more. Wish me luck!

Thank you so much for reading, and see you back next month!