My 2025 Summary

Another year is coming to an end, and following my new tradition, I would like to sum up some results in writing. Overall, the year felt rather passive for me. I don’t remember planning any big things, but still, previous years were more active for me in terms of creativity and beyond (open source, learning new skills, and so on).
Open Source
This year, I didn’t release any new open-source projects, although I had some work in progress. I’m still maintaining my older projects little by little, but also without much enthusiasm (for some of them, this was the main idea from the start — stability).
More details about the main projects:
- twscrape (my most popular project) — it constantly requires dealing with new obstacles introduced by X;
- apigen-ts — in the near future, the codegen will need to be rewritten using templates, because TypeScript was rewritten in Go, and there is a chance that AST primitives will be removed from the
typescriptpackage on npm. Also, for me personally, the project has become a bit less relevant due to using tRPC/NextJS in my main stack, but for non-JS backends it is still a must-have; - macmon — it is also quite difficult to maintain, because Apple releases new processors too often and in many different configurations, so it’s not always possible to get the required hardware for testing. I looked for online services that provide access to “bare metal” hardware via SSH for a limited time (a VPS-like model), but didn’t find anything suitable;
- ecloop — I added SIMD optimizations for SHA-256 and RMD-160 to the library. I think this was my most interesting task this year. I wanted to play around with CUDA and even ordered a computer for that, but ended up not using it. As for crypto itself, I got into degen stuff (more on that later).
Public projects on GitHub — a total of 92 commits, 79 closed issues, 11 releases created, and more than 1k stars gained.
UPD: I remembered that at the end of 2024 / beginning of 2025, I worked on badges.ws in Rust. It looked like a fairly simple task, but turned into several months of work and debugging various APIs. In general, I probably should have dropped the project earlier, but I didn’t and pushed it through to a release — at the cost of my motivation to start new projects. What conclusion to draw from this, I’m not sure.
Blog
Overall, this year I wanted to write more posts, and I even have many drafts, but at some point I wanted to switch to a more convenient engine than Zola (which I currently use). However, I couldn’t find anything good and flexible enough.
Problems with Zola:
- a strange templating language that lacks some features, while issues remain open for years;
- GPT tools don’t handle this templating system well — every time I need to make a change, it’s hard even to google how to do it;
- lack of flexibility in page navigation and file organization (I can’t arrange blog files the way I want and have to follow the engine’s structure);
- broken redirects in content — Zola doesn’t understand relative links in text (all links must be written relative to the site navigation), so it’s not convenient to write and work with the blog locally: linking between my own posts and being sure that all links are valid. Right now, I have to solve this with a separate script.
As an engine, I would like something that uses JSX as a templating language, has Tailwind CSS out of the box, doesn’t have Zola’s navigation and linking issues, and is a simple and stable solution. Overall, Astro fits this category, and I tried migrating the blog to it, but it also has a number of its own problems:
- duplicated logic and the difficulty of choosing between
.astroand.jsxformats; - lack of proper MD/MDX integration (any customization is done via CSS classes instead of properly overriding the rendering of Markdown tags with JSX components);
- no built-in Atom feed generation (only RSS is supported), which means it has to be implemented manually.
Overall, I did a test migration of the blog to Astro, but never released it, because the solution felt too complex. A blog is something you might not touch for months, and when you finally do, you want to immediately understand how things work, rather than having to google or ask GPT for solutions.
I also considered NextJS as an option, since it can be configured to fit your needs, but there are big concerns about its stability. I really don’t want to read changelogs every few months just to understand their new vision and figure out what needs to be updated in something that already worked, just to keep it working the same way.
That turned into a lot of text about the blog. In short, I’d like to write more while being less distracted by technical problems. The ideal solution for me right now would be MD/MDX with the ability to override elements. Maybe someone knows a good existing solution? (or maybe it’s an idea for a project on Bun)
Skills
In previous years, I explored and practiced DevOps, Rust, Go, LLMs, NestJS/NextJS, and other things, but this year felt neutral. I can’t quickly name anything new that I learned this year. Probably the main change in my work environment was the switch from iTerm2 to WezTerm. The reason was adding LLM features to the terminal and a security vulnerability.
Overall, throughout the year it felt scary to update software. A lot of things are now being built with AI, and the quality of releases has become frankly weaker. For example:
- I’ve been using Chrome since 2009, and this year was the first time I saw rendering bugs, crashes, and similar issues;
- Google Search was broken for several months, and they didn’t seem to care (if you type a query with a typo, Search suggests the correct version, you can click it and it appears in the search field, but if you then click into the field, it reverts back to the original typo — this might seem like a small issue to some, but it’s a very common use case for me);
- on YouTube, for several days after releasing the new player, the volume couldn’t be increased above 60% via the UI: the slider just wouldn’t move. I don’t understand how something that wasn’t even properly tested in production could be released;
- many similar small bugs that ruin the UX.
In short, something has gone wrong in the world of software development. That’s why updating feels risky — you never know how your workflow will break this time. My favorite app is Sublime Merge: updates there are purely cosmetic and happen only a couple of times a year.
Crypto aka Degen
This area deserves a separate mention. In January, I worked on a small project for bridging ERC-20 / SPL tokens between the Ethereum and Solana networks. Around the same time, Trump released his Meme Coin: those who were insiders or just fast made good money, while everyone else ended up at a loss. That got me interested in how crypto works in general — not the technical side, but the community itself.
As a result, I subscribed to various chats and other sources with related information (though it’s a huge stream, often full of noise). Later, I found the DoubleTop community, where I’m now a member and communicate regularly.
Overall, during the second half of the year I was moderately active in crypto — trying different areas to understand how things work. So far, my experience is this: it is possible to make money in crypto, but it’s really difficult and requires a lot of time and attention. Losing money is much easier. There are no huge multipliers on deposits, but steady percentages are possible.
Cases I participated in:
- Sale Fleek on CoinList — rekt −70%, the team basically scammed;
- Sale Enso on CoinList — good result, +70%;
- Sale Plasma — x10 on allocation, but it was hard to get in, and funds were locked for 3 months;
- Sale Pump.fun — x2 in 3 days, but as always, there were nuances. I was lucky to get part of the allocation through the website, while CEXs issued refunds;
- Almanak on Legion — rekt −50%. Overall, it was a decent project, but the team delayed the launch and went live in a bad market. I forgot that I participated in this sale and didn’t sell the tokens in time;
- Farm Paradex — x2 on spend. The project was expected to launch in summer, but the release was later postponed indefinitely. This was my first retrodrop-focused project, so my enthusiasm for farming other projects cooled down. In November–December, the Paradex team added an XP transfer option, which made it possible to sell points OTC, and I used that;
- Farm Lighter — a lot of multiples here. I earned most of my points from hedge positions and didn’t farm aggressively on purpose. Given how bad the market is right now, the project literally gave everyone a New Year’s gift;
- Binance Alpha — simple daily activity that required generating trading volume on Binance. It brought about $300–400 per month per account, but it was hard to multi-account;
- Sales on BuidlPad — the platform provided stable returns for about half a year. It was easy to multi-account, but accounts were also often blocked. A lot of liquidity was required to participate, since allocations were small. On average, all sales ended up around x2 on spend;
- Flash crash on Oct 10 — the whole crypto market dropped hard within a couple of hours and still hasn’t returned to previous levels. I didn’t have any perp positions, so I got lucky there, but I did have USDT/USDC loans backed by crypto assets that were liquidated;
- Spot positions (bad market): BNB +30%, ETH +20%, SOL −20%, HYPE −40%.
Of course, there were more cases — I listed the main closed ones. In general, it is possible to make money in crypto, but it’s really hard and requires a systematic approach. The crypto market is alive only for a few months a year, when so many events happen that it’s impossible to participate in everything (not enough capital, energy, or time). For most of the year, nothing really happens — that’s when people go work at McDonald’s.
That quiet period is usually the time to farm retrodrops, but it’s genuinely difficult work: the results of your actions and money spent come only after 6–12 months, and psychologically that’s hard for me.
The current meta is Perp DEXes (Paradex / Lighter / Aster / Extended / Pacifica.fi / Ethereal / Trade.xyz / etc.) and opinion markets (Polymarket / Opinion / Limitless / etc.).
The hardest part of crypto for me is tracking balances and understanding whether I’m up or down overall (it’s basically real accounting work). Roughly speaking, I finished the year at about the same level I started, although at some points my deposit was up to +50%. It’s important to note that everything related to crypto should be done with proper risk control — I have a separate budget that I use only for experiments.
Anyway, this is a big topic, and I’ll probably need to talk about it separately.
Health
Still alive — and that’s good.
This year I quit smoking — I’m very happy about it, I feel better, and I’ve reduced the risk of various cancers. Overall, quitting wasn’t that hard: I watched a few YouTube videos to understand what to expect and what kind of “tricks” my brain would use to convince me to smoke again. For the first three weeks or so, you constantly think about smoking, and then it fades. Most of this “thinking” isn’t about smoking itself, but about habits and routines — like taking a break, looking out the window, having a coffee, and going for a smoke. Now, from time to time, I get short five-minute urges in the form of flashbacks.
I also started doing regular stretching/exercises — at least a couple of times a week (I track it in Sheets). Without this, I genuinely feel worse: it’s hard to work when your back hurts, for example. I periodically take body measurements, and probably the main change is my biceps: +2 cm.
Leisure
I bought an Xbox to relax by playing games (I had a PlayStation 4 in the past, so I wanted to try a different platform). I tried quite a lot of games via Game Pass — before that, I hadn’t played much for several years. From what I liked:
- Clair Obscur: Expedition 33 — an obvious game of the year, 100% worth playing: the story, art, music, and combat are all excellent.
- Mafia: Definitive Edition — a remake of a classic, slightly simplified. The racing mission still takes dozens of attempts — and that’s a good thing.
- Indiana Jones and the Great Circle — a solid game. It was enjoyable to explore Rome and the Egyptian pyramids and solve local puzzles. The fistfights are also quite fun, and you don’t really want to use firearms.
- Doom: The Dark Ages — the legendary demon-slaying series. I only played Doom 1 and Doom 3 before and skipped the entire modern lineup. I decided to start with The Dark Ages. Overall, the first half of the game is interesting: great locations, new weapons constantly unlocking, and so on. But the second half feels tedious — all locations turn into the same gray corridors. The robot titan missions were cool, though.
- Assassin's Creed Mirage — at first it felt like just another Assassin’s Creed, but the more I played, the better it got. I have warm memories of Baghdad. In my opinion, it’s one of the strongest games in the series. What’s nice is that it’s short. I played it before the recent DLC; people say it’s even better now.
- Escape from Duckov — a meme game in the extraction genre. I didn’t finish it because it’s quite long, but it’s worth trying to understand the genre. It’s addictive.
- Lies of P — my first proper soulslike (before that, I only tried Sekiro, which was hell for me). I liked it: the bosses are manageable for a regular player, and there are many ways to beat them (shadow pulls, throwable jars with liquids). The story is simple and interesting, although the playtime feels a bit stretched toward the end.
Other media that stood out.
Movies / TV shows: Fly Me to the Moon (2024), The Fighting Sullivans (1944), American Beauty (1999), The Naked Gun (2025), How to Steal a Million (1966), Once Upon a Time... in Hollywood (2019), Bugonia (2025), Аватар: Путь воды (2022).
Music: Sabrina Carpenter, The Velvet Sundown (yes, AI slop), Alice in Chains.
Books: I didn’t read much; the most recent one was Ionesco’s Rhinoceros.
Happy New Year to everyone! 🎉