Fernando @francofernando.com · 28/09/2026so the receiver can find gaps and duplicates. The receiver acknowledges every segment, and the sender transmits it again if the acknowledgment doesn’t arrive in time. That’s how data arrives in order, no gaps. It’s also why TCP gives you lower bandwidth and higher latencies than 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. 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 · 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 · 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 · 28/07/2025His blog posts about interview preparation were memorable 010
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 · 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
Fernando @francofernando.com · 20/05/2025One of the most important things working in tech is to adapt quickly 000
Fernando @francofernando.com · 19/05/2025The ability to communicate and deal with people is at least as important as having outstanding technical skills. 000
Fernando @francofernando.com · 18/05/2025This morning, I did some math exercises with my son. The task was to complete the multiplications with the missing numbers. I'm not sure how the teacher wanted us to solve it, but we did it by trying all possible combinations using backtracking. My son got the idea right away. 010
Fernando @francofernando.com · 17/05/2025Helpful trade-offs in system design: • TCP vs UDP • Sql vs NoSql • Accuracy vs Latency • Consistency vs Availability • Batch vs Stream Processing • Duplication vs Normalization • Strong vs Eventual Consistency • Synchronous vs Asynchronous Processing 010
Fernando @francofernando.com · 16/05/2025How can data stay secure over the internet? Part of the answer is the TLS protocol. TLS acts like a secure link between two processes. No one can stop, halt, or change the information going through. I wrote in detail about how it works below: newsletter.francofernando.com/p/understand...newsletter.francofernando.comUnderstanding TLS: how data stays secure over the internetHow the TLS protocol works under the hood and why it's important. 000
Fernando @francofernando.com · 15/05/2025A funny thing is that many books are trying to help people pass tech interviews. But almost no book teaches companies how to interview and hire software engineers well. 020
Fernando @francofernando.com · 15/05/2025When a problem is too hard to be solved, the best approach is to break it down into smaller, easier-to-solve problems. 000
Fernando @francofernando.com · 14/05/202512. Pagination What is API pagination and how different pagination method works newsletter.francofernando.com/p/pagination 000
Fernando @francofernando.com · 14/05/202511. Indexing - Part 2 A deep dive into database indexing. Part two: clustered indexes, secondary indexes, multi-column indexes, full-text indexes. Plus database indexing strategies. newsletter.francofernando.com/p/indexing-p... 100