Fernando @francofernando.com · 28/09/2026Every guarantee TCP gives you is paid in bandwidth and latency. The IP protocol doesn’t ensure that the data you send arrives at its destination. If a router gets overloaded, it might start dropping packets. TCP fixes that on top of IP. It breaks the byte stream into numbered segments, 100
Fernando @francofernando.com · 22/09/2026Your program never reads a file. It asks the kernel to do it. The kernel is the only part with direct control over the hardware. A read is a system call: control goes to the kernel, the kernel does the work, and control comes back. 100
Fernando @francofernando.com · 01/07/2026The one rule that prevents most BFS bugs: mark a node visited when you enqueue it, not when you dequeue it. If you mark on dequeue, the same node gets pushed many times before it is processed -> duplicates in the queue, wrong distances, TLE. 100
Fernando @francofernando.com · 01/01/2026I love the first day of the year because it reminds me that one of life's greatest joys is to begin. Living is beautiful because it means to start, always, at every moment. You're always on time to have a life that makes you happy every morning. Happy New Year, lovely folks! 000
Fernando @francofernando.com · 28/12/2025In software development, the simplest solution is almost never the most obvious, so reaching it is actually not trivial. In many cases, you have to design big parts of your software at least twice. 110
Fernando @francofernando.com · 12/09/2025The evolution of a web application architecture when going from serving hundreds to millions of users. newsletter.francofernando.com/p/from-a-sin...newsletter.francofernando.comFrom a Single Server to Global ScaleThe evolution of a web application architecture when going from serving hundreds to millions of users. 010
Fernando @francofernando.com · 31/08/2025Be honest with yourself about what you want and work hard to get it. Be meaningful and intentional with your time. That is the only way to ensure that you give yourself the best odds. 010
Fernando @francofernando.com · 29/08/2025When they hear "Don't Repeat Yourself," 99 out of 100 developers think of copy-paste code. But DRY is about much more than that. The main focus is on knowledge, not code. I wrote more about how to use DRY without falling into common traps here: newsletter.francofernando.com/p/the-dry-pr...newsletter.francofernando.comThe DRY PrincipleWhy every software engineer should care about repetition: solutions that actually works. 010
Fernando @francofernando.com · 28/08/2025We all go through 2 significant steps in our careers: - Junior to mid-level developer - Senior developer In the first one, it matters more how well you code. "Nobody" will still listen to you. But in the second stage and beyond, how well you communicate matters way more. 020
Fernando @francofernando.com · 26/08/2025One thing I'm glad I paid a lot of attention to during my CS studies is "networking fundamentals". Almost every project I've worked on has needed that background, and I've seen others who didn't have it have a hard time. 020
Fernando @francofernando.com · 22/08/2025How do CDNs speed up content delivery on the internet? You can read my in-depth article on how CDNs work under the hood and best practices when using them here: newsletter.francofernando.com/p/a-critical...newsletter.francofernando.comA Critical Guide to Content Delivery NetworksHow do CDNs work, and how to get the most benefits out of them. 020
Fernando @francofernando.com · 21/08/2025If you work hard and are nice to people, you can get very far in life. Being kind and honest to everyone is a skill that isn't given enough credit. 010
Fernando @francofernando.com · 19/08/2025If you're not interested in your craft, you'll struggle to get a better software engineer. Getting passionate isn't a gift, but a choice. Pick a path, and get into it. Skills don't just come from a desire. 021
Fernando @francofernando.com · 17/08/2025Life is not at extremes but somewhere in the middle: - Work out for 45 minutes instead of 3 hours - Do deep work for 2-3 hours instead of 10 - Get 8 hours of sleep instead of 4 Take breaks, think, and live. We're humans, not robots. 041
Fernando @francofernando.com · 15/08/2025If you're in a system design interview, and you start brainstorming technical stuff, you're on the wrong path. You're missing the most critical part of the design process: requirements. I wrote about how requirements impact your design choices here: newsletter.francofernando.com/p/requiremen...newsletter.francofernando.comRequirementsUnderstanding system requirements in distributed system design. 000
Fernando @francofernando.com · 14/08/2025If you want to become a better programmer, there is no secret sauce. You just need to spend a lot of time coding and building projects. 000
Fernando @francofernando.com · 09/08/2025Building something alongside your 9-5 job is rewarding, but it's important to have limits. There will be times when your body will take breaks for you if you don't take breaks when you need them. 010
Fernando @francofernando.com · 08/08/2025It took me 5+ years to become confident in my skills as a software engineer. But I could have done it in less time if I had followed the 6 pieces of advice in the article below: francofernando.substack.com/p/how-to-bec...francofernando.substack.comHow to Become a Confident Software EngineerSix critical steps to build your confidence as a software engineer. 020
Fernando @francofernando.com · 31/07/2025When I started as a developer, I thought I had to know everything. But I found out that was a fool's errand. You can always learn new tech and find better ways to do things. Do you need to know everything to be successful? Not at all. But can you learn something new every day? Definitely. 000
Fernando @francofernando.com · 29/07/2025Storytelling is one of the best skills to have, both in interviews and in your daily work. It makes it so much easier to establish empathic relationships with other people. 000
Fernando @francofernando.com · 28/07/2025Companies do not promote people for following the tickets. They promote people who solve problems and add value to the business. If you want to move up, ask yourself if you're only writing code or also solving problems. 010
Fernando @francofernando.com · 24/07/2025Multitasking makes you less productive. It's better to start a task and don't switch until it's done. 000
Fernando @francofernando.com · 21/07/2025Good code is neither clever nor complex, but simply readable. Code that you read, and it clicks in your mind. 001
Fernando @francofernando.com · 15/07/2025When I started writing two years ago, I never imagined my newsletter would become a bestseller. I'm speechless. Thank you all for your trust and support 🥹 It means a lot to me and pushes me to always do better. 020
Fernando @francofernando.com · 08/07/2025As a software engineer, work ethic matters as much as good skills. You can't hide bad work habits with good skills. If you stop caring, you'll lose momentum. And people who used to pay you for your skills will no longer believe in you. 020
Fernando @francofernando.com · 07/07/2025Being able to manipulate pointers is crucial for working with Linked Lists and Binary Trees. Once you're comfortable with pointers, understanding such algorithms is much easier. 010
Fernando @francofernando.com · 06/07/2025If you're stuck, all you have to do is do what you're avoiding. If that looks impossible, take the smallest step possible toward what you're avoiding and see what happens from there. 020
Fernando @francofernando.com · 04/07/2025Most software engineers are used to working in a single-process environment. But in a distributed system, you must change the way you think about problems. There are 5 main challenges that you should keep in mind. I wrote about them below: newsletter.francofernando.com/p/the-challe...newsletter.francofernando.comThe Challenges of Distributed SystemsWhat every engineer should know when working with distributed systems. 011
Fernando @francofernando.com · 27/06/2025Your public API has become popular. Many developers are creating apps that run on top of it. But what happens if you need to change the API? This is where a good API versioning strategy becomes critical. I wrote everything you should know below: newsletter.francofernando.com/p/apis-versi...newsletter.francofernando.comAPIs VersioningBest practices for managing API changes without breaking users' trust. 010
Fernando @francofernando.com · 23/06/2025Three valuable pieces of advice I got in my career: • don't take feedback personally, but see it as a chance to get better • care more about who you work with than what you work on • apply for jobs even if you don't think you're good enough for them 000
Fernando @francofernando.com · 20/06/2025Managed object storage like S3 or Azure Storage are a critical part of any modern app. So it's helpful to grasp how they work under the hood and how to make the best use of them. I wrote everything you need to know in the article below: newsletter.francofernando.com/p/understand...newsletter.francofernando.comUnderstanding Object Storage in Modern Cloud SystemsHow object storage systems like S3 or Azure Storage work, and how you can make the best use of them. 011
Fernando @francofernando.com · 19/06/2025I feel best when I follow a regular sleep routine and go to bed at the same time every night. My increased productivity in the morning compensates any potentially lost extra hours in the night. 110
Fernando @francofernando.com · 17/06/2025This is one of my favorite pages of the Design Data Intensive Application book. It's amazing how you can build the worlds simplest database using only two bash functions. A pleasure to read every time. 291
Fernando @francofernando.com · 10/06/2025It's not a good idea for coding interviews to grind LeetCode and do a thousand problems. It's better to solve fewer problems but understand how to solve them and the patterns beneath them. 010
Fernando @francofernando.com · 08/06/2025Having a too-high lifestyle is like being locked up in a cage that you can't get out of. I wouldn't trade my freedom and time for it. 010
Fernando @francofernando.com · 05/06/2025It's easier to grow as a software engineer if you find good mentors. Not just because they give you feedback but also because they hold you accountable for reaching your goals. 000
Fernando @francofernando.com · 03/06/2025The best thing that can happen to you at work is to focus on a single critical project. 000
Fernando @francofernando.com · 03/06/2025Writing code without an understanding of the problem and the solution to implement is rarely a good idea. 010
Fernando @francofernando.com · 30/05/2025If you're preparing for coding interviews, don't skip the 2-pointers method. The key idea is to have 2 pointers (i.e. indexes) going through an array. But there are different ways to implement it. I explained all them with practical examples below: newsletter.francofernando.com/p/mastering-...newsletter.francofernando.comMastering the Two-Pointers TechniqueHow to use the two-pointer method to efficiently solving array and string problems (with code templates). 010
Fernando @francofernando.com · 29/05/2025There is so much to learn about software engineering that knowing it all inside and out is impossible. Even the more experienced people are junior in some things. My way to go is to have a high-level understanding of many areas and specialize in a few of them. 020
Fernando @francofernando.com · 26/05/2025The best tech companies don't care what computer languages you know. They mostly want strong, all-around people who can quickly use new information to solve problems. 010
Fernando @francofernando.com · 26/05/2025Learning to write code is one thing, learning to be a software engineer is another 020
Fernando @francofernando.com · 25/05/2025It takes time to become valuable. Stop chasing immediate success. Instead invest your time and effort in becoming a person of value. 010
Fernando @francofernando.com · 24/05/2025The 9 most important types of algorithms to know for coding interviews: • Sorting • Searching • Backtracking • Strings Algorithms • Graphs Algorithms • Greedy Algorithms • Trees DFS and BFS • Divide and Conquer • Dynamic Programming 010
Fernando @francofernando.com · 23/05/2025All I need to be more productive are time blockers and no meeting days 000
Fernando @francofernando.com · 22/05/2025Interviews are a two-way street. Companies interview you to see if you're a good fit. But you can also interview the company to see if you really want to work there. 010
Fernando @francofernando.com · 22/05/2025Good developers not only write, but also read a lot of code. 010
Fernando @francofernando.com · 20/05/2025Once you understand DFS and BFS, there is no reason to be scared about binary tree questions. Almost all of them can be solved by slightly modifying these traversal methods. 000