Advertisement · 728 × 90

Posts by Fernando

I 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!

3 months ago 0 0 0 0
Post image

I don't know why software engineers and developers dream of retiring to become farmers. I just would like a house by the sea and a small boat to sail.

3 months ago 0 0 1 0
Preview
How to Estimate the Duration of a Task Eight strategies you can use to give better estimations as a software engineer.

9. Eight strategies you can use to give better estimations as a software engineer. newsletter.francofernando.com/p/how-to-est...

10. A detailed guide on what to focus on as a reviewer during pull requests newsletter.francofernando.com/p/what-to-lo...

3 months ago 1 0 0 0
Preview
Requirements Understanding system requirements in distributed system design.

7. How to define system requirements and go from vague problems to clear solutions.
newsletter.francofernando.com/p/requiremen...

8. How RAFT solves the consensus problem in distributed systems: a breakdown that every engineer can understand.
newsletter.francofernando.com/p/the-raft-c...

3 months ago 0 0 1 0
Preview
How to Become a Confident Software Engineer Six critical steps to build your confidence as a software engineer.

5. Six critical steps to build your confidence as a software engineer newsletter.francofernando.com/p/how-to-bec...

6. Fundamental Graph Algorithms: topological sorting and strongly connected component newsletter.francofernando.com/p/fundamenta...

3 months ago 0 0 1 0
Preview
How the Operating System Manages the Hardware A Complete Guide to understand what happens when a program runs on your computer.

3. A Complete Guide to understand what happens when a program runs on your computer.

newsletter.francofernando.com/p/how-the-op...

4. How to master backtracking algorithms: a step-by-step guide to solve any problem.

newsletter.francofernando.com/p/backtracking

3 months ago 0 0 1 0
Preview
A Comprehensive Guide to Database Sharding All what you need to know to make your database more scalable, faster, and available with sharding.

1. All you need to know to make your database more scalable, faster, and available with sharding.

newsletter.francofernando.com/p/a-comprehe...

2. Cache performance, architecture, and deployment strategies

newsletter.francofernando.com/p/caching-in...

3 months ago 0 0 1 0
Advertisement
Post image

This year, I wrote 51 articles (one per week) about fundamental topics like:

- Algorithms and Data Structures

- System Design and Distributed Systems

- Programming and Software Engineering

Here are the 10 most read ones (links below):

3 months ago 0 0 1 0

But once you've made it simple, your software is as flexible as it can be: easy to modify, or even rewrite, to suit any changes in the requirements.

3 months ago 0 0 0 0

In 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.

3 months ago 1 0 1 0
Preview
From a Single Server to Global Scale The evolution of a web application architecture when going from serving hundreds to millions of users.

The evolution of a web application architecture when going from serving hundreds to millions of users.

newsletter.francofernando.com/p/from-a-sin...

6 months ago 2 0 0 0

Be 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.

7 months ago 1 0 0 0
Preview
The DRY Principle Why every software engineer should care about repetition: solutions that actually works.

When 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...

7 months ago 1 0 0 0

We 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.

7 months ago 2 0 0 0

One 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.

7 months ago 2 0 0 0
Preview
A Critical Guide to Content Delivery Networks How do CDNs work, and how to get the most benefits out of them.

How 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...

7 months ago 3 0 0 0

If 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.

7 months ago 1 0 0 0
Advertisement

If 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.

7 months ago 2 1 0 0

Life 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.

7 months ago 4 1 0 0
Preview
Requirements Understanding system requirements in distributed system design.

If 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...

7 months ago 0 0 0 0

If 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.

7 months ago 0 0 0 0
Post image

Do you know what a database does most of the time?

This classic paper makes a very detailed profile of a transactional database, figuring out what each CPU command does.

Only 10% of the CPU instructions do critical work.

The rest are spread out fairly evenly between:

7 months ago 1 1 1 0

Read the paper here:

nms.csail.mit.edu/~stavros/pub...

7 months ago 0 0 0 0

There are many places where such overhead comes from, but all are necessary for a standard database to work.

Having a faster database is a matter of trade-offs:

no buffers -> keep the database entirely in memory
no locking or latching -> single-threaded system
no logs -> replication.

7 months ago 0 0 1 0

- Taking care of buffers (moving pages from a cache pool to the disk)
- Locking (row-level locks that manage concurrent multiple transactions)
- Latching (lightweight locks keep the internals of data structures safe)
- Logging (writing down operations before they happen so they can be recovered)

7 months ago 0 0 1 0
Post image

Do you know what a database does most of the time?

This classic paper makes a very detailed profile of a transactional database, figuring out what each CPU command does.

Only 10% of the CPU instructions do critical work.

The rest are spread out fairly evenly between:

7 months ago 1 1 1 0

Building 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.

8 months ago 1 0 0 0
Advertisement
Preview
How to Become a Confident Software Engineer Six critical steps to build your confidence as a software engineer.

It 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...

8 months ago 2 0 0 0

One thing people new to DSA often miss is that time complexity differs from speed.

O(N^2) algorithms can definitely outperform O(logN) algorithms for small input sizes.

8 months ago 0 0 0 0

I see many CVs from experienced engineers that put too much emphasis on their educational background.

But the truth is that once you get your first job, no one cares what school you went to.

Once you start building a small track record, things like your edu aren’t so important.

8 months ago 1 0 0 0