End of year wrap: 2025
A personal retrospective on the this year. Plus some thoughts about this newsletter and the most-read articles of the year.
Hi Friends,
Welcome to the 154th issue of the Polymathic Engineer newsletter.
This is the last article of 2025, and the outline will be as follows:
End-of-year reflections
The Polymathic Engineer in 2025
Best articles of the year
Tech interviews are hard. But with the right strategy and resources, it’s a game you can win. ByteByteGo provides a set of practical resources that covers all phases of a technical interview. You can find useful content to ace coding, system design, ML, behavioural, and object-oriented interviews, and much more.
Join ByteByteGo and start your preparation today
End-of-year reflections
Dear readers, I hope everyone is doing well and can find some peace and quiet, even if only for a little while, whether you are enjoying a well-deserved break or have to keep working.
We are a few days after Christmas and a few days away from a new year, and this is the period of the year when I always find myself looking back to what happened, taking stock, and marvelling how twelve months can feel both endless and alarmingly fast.
People of more advanced age often comment that the days go slowly and the years go quickly. Even though I'm not even close to retirement, I have to remark that this year has gone by incredibly fast because a lot has happened behind the scenes.
On the personal and family side, things went pretty well. Luckily, we all enjoyed good health and had a good time together. Kids are growing fast, and I want to enjoy every bit of time I can with them.
Professionally speaking, 2025 was a challenging year for me. I have worked on many time-critical projects and had to rush from one deadline to the next. However, I also had the opportunity to grow a lot, both in technical and soft skills.
Over the years, I have learned that I don't like to waste a season. Although it’s hard, I want to leave it knowing that it made me a better person. One of the worst things for me is not learning the lesson. Seasons are meant to change, but I've learned that if you ignore what's going on right now, the cycle keeps running until you receive what you need. When you don't, it often feels like you are stuck.
These are the three main lessons I learned or re-learned this year:
1. Discipline makes your life better. One of the best ways to improve your life is to be disciplined in the areas that need it. It's hard and sometimes painful to be disciplined, but it's always worth it. Learn to do things even when you don't want to. You won't believe how much you can do when you stick to your goals. It's all in your head. Most of the time, your mind gives up before your body does. Give yourself a boost. Even if it makes you uncomfortable, show up.
2. Keep your body in good shape. Take care of your body by moving it. Find a physical activity you like and do it regularly, whether it is going to the gym, running, walking, playing football, or tennis. It's hard to explain how clear your thoughts may get after you work out. It truly benefits your mental health, plus you get a fit, banging body at the same time. Do it gradually. You don't have to run a half-marathon right away. Start with 3 km, then go up to 5 km. Be patient with your body and learn about it. You'll see how strong it is.
3. Focus on what’s within your control. Life is beautiful because so much is going on at the same time. Some things happen to us, and some things happen for us. Some are the results of our actions, while others are best characterized as grace or favor. You can't study or prepare too much for life or the things that happen in it. The only thing you can really control is yourself, your thoughts, your behaviors, and you. You give everything else to God and let it go.
The Polymathic Engineer in 2025
As of today, this newsletter has 34,791 readers, of whom more than 9,000 have joined in the past year alone. I want to give special thanks to paying subscribers, who get full access to all deep-dive articles. This newsletter is run by a solo software engineer, and none of this would be possible without your support.
There is no AI in the loop. I write every article you read, and every diagram you see is hand-drawn by me. I do my best to keep each article as high-quality as possible, which means a significant slice of my free time goes into this newsletter.
Next year, I will continue dedicating more time and effort to the newsletter, and I also plan to experiment with different kinds of content. Since my PhD studies and part of my work have been related to computer vision and machine learning, I would also like to start writing about those topics. But of course, I will still keep writing about system design, distributed systems, algorithms, and software engineering in general.
One idea I have is to increase the frequency of the Polymathic Engineer to twice per week, maybe starting with a shorter article in the middle of the week. For sure, this will be the main channel I use to write technical content, and everything I post on X or LinkedIn will be only a tiny subset of what you can read here.
In the past year, I've been open to sponsorships, but I only did so if I liked the product or the company and I thought it could be interesting and relevant for you all. I’ll keep doing this this year, since this gives me the possibility to share content for free. If you want to sponsor this newsletter, or you know someone who is interested in doing this, feel free to reply to this email.
Best Articles of this year
Here is a list of my favorite articles from this year, grouped by topic.
Algorithms and Data Structures
Space Complexity: How to analyze the space complexity of an algorithm: time and space trade-offs and recursion.
Heap Use Cases Every Algorist Should Know: Three must-know applications of the heap data structures: largest elements, graphs, and Huffman encoding.
Backtracking: How to master backtracking algorithms: a step-by-step guide to solve any problem.
Mastering the Two-Pointers Technique: How to use the two-pointer method to efficiently solve array and string problems (with code templates).
Fundamental Graph Algorithms: Part I: BFS (shortest paths, connected components, and bipartite testing), Part II: DFS (finding cycles and articulation vertices), PART III: DFS Directed Graphs (topological sorting and strongly connected component)
System Design and Distributed Systems
A Comprehensive Guide to Database Sharding: All you need to know to make your database more scalable, faster, and available with sharding.
Caching in Distributed Systems: Part I (cache performance, architecture, and deployment strategies), Part II (read and write strategies, replacement policies, invalidation, and TTL), Part III (cache avalanche and penetration, traffic patterns, cold start, and consistency challenges)
Requirements: the foundation of good system design: How to define system requirements and go from vague problems to clear solutions.
The RAFT Consensus Algorithm: How RAFT solves the consensus problem in distributed systems: a step-by-step breakdown that every engineer can understand.
Designing a URL Shortener: How to answer this popular system design question. From a simple concept to a scalable system.
Software Engineering and Programming
How the Operating System Manages the Hardware: A Complete Guide to understand what happens when a program runs on your computer.
How to Estimate the Duration of a Task: Eight strategies you can use to give better estimations as a software engineer.
How to Become a Confident Software Engineer: Six critical steps to build your confidence as a software engineer
How (not to) fail a coding interview: Common mistakes developers make during coding interviews and how to avoid them
What to Look for in Code Reviews: A detailed guide on what to focus on as a reviewer during pull requests
Thank you
I’d like once again to thank everyone who reads this publication; your support is truly valued. I hope that everybody had a very wonderful Christmas and will have the best possible start to the New Year. See you again in 2026.
Yours sincerely,
Fernando



