--- title: "My 2024 and 2025 roadmap" description: "" date: "2025-02-06" --- # Introduction Hi! I am writing this post on **January 4th, 2025**, which means I was too lazy to write it before the year ended—but no matter, let's get to it now. # 2024 - A Year of Rust Last year was pretty good for me—I think it was the most productive I've ever been. Naturally, I started tons of projects, most of which I still haven't finished ;) but I did manage to make some of them work. In January, I began moving away from React for my portfolio [website](https://gabrielkaszewski.dev/) for one simple reason: I don't think static websites like mine need a UI JavaScript library. When I first created the website, I was learning web development and wanted to showcase my skills to get a job, and React seemed like a good opportunity to do that. My website consisted of two 'modules': 1. REST API + Admin dashboard - written in Django 2. Next.js frontend - used for meta tags and better SEO I really didn't like that approach. It made more sense to just use Django and render static HTML... so that's what I did! But that wasn't all I did in the first month of 2024. I had this crazy idea to create a simple video editor (you know, one that would allow users to put multiple clips on a timeline, cut fragments, and adjust the audio for each clip) using _FFmpeg_ and Rust. I didn’t finish it—not even close—but if my memory isn't playing tricks on me, I think I did manage to make a CLI version that combined multiple clips together. Next, I wrote a **Minesweeper** game in C++ using Raylib. That was pretty fun! The code, however, isn't really good—it's not idiomatic C++, more like C with classes—but the point of the project was just to have fun. That’s why I’m not going to link the repo. However, if someone is interested, they can easily find it on my GitHub. ![minesweeper](/posts/minesweeper.webp) ## February - Small but Fun Projects February, the shortest month of the year! I hopped from project to project, but some were actually finished and published. First, a very small one—**Flappy Bird in the console**. Yes, I recreated Flappy Bird using Rust and the _console_engine_ crate. That was a pleasant experience, and in the future, I’d love to create more interactive console-based applications. Next, I wrote **two Discord bots**, also in Rust. One was a simple reminder bot where you type `!remindme "a thing" WHEN` (for example, `30m` for 30 minutes). The other was a **vxtiktok bot**, which converted TikTok URLs to vxtiktok URLs so they would embed properly in Discord. Very simple, quick projects! To my surprise, using Rust wasn't a pain at all. You might ask, _Why use Rust for that instead of JavaScript?_ Great question! The answer is simple—my VPS only has **2 GiB of RAM**, which isn't much. My tech stack for web services was mostly Python-based (Python uses a lot of memory, just like Node.js). Rust, on the other hand, uses much less memory, and that was a major reason for choosing it. Plus, Rust is actually pretty nice to write in—it's very ergonomic. I love it. Next, I started working on a **Missile Commander clone**—a recreation of the old Atari game **Missile Command**. I actually managed to replicate the core gameplay, but since I’m terrible at designing games and coming up with new mechanics, levels, and features, I abandoned it pretty quickly. I even wrote a **level editor** for it! The game and editor were both written in Rust using **macroquad**, as I wanted to export it to the web. Unfortunately, I ran into some errors when trying to export and gave up. ![missile_commander](/posts/missile_commander.webp)