Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]

Roberto Vitillo's Blog

Roberto Vitillo's...
Understanding Distributed Systems 1.1 Coordination is expensive as it reduces the availability and performance of distributed applications...
over a year ago
25
over a year ago
Coordination is expensive as it reduces the availability and performance of distributed applications (PACELC theorem). I have extended…
Roberto Vitillo's...
Testing and operating distributed systems I am excited to announce that the first edition of my book about distributed systems is finally...
over a year ago
16
over a year ago
I am excited to announce that the first edition of my book about distributed systems is finally complete! First things first, I have…
Roberto Vitillo's...
Leader election best practices Sometimes a single process in a system needs to have special powers, like being the only one that...
over a year ago
18
over a year ago
Sometimes a single process in a system needs to have special powers, like being the only one that can access a shared resource or assign…
Roberto Vitillo's...
How distributed systems fail At scale, any failure that can happen will eventually happen. Hardware failures, software crashes,...
over a year ago
17
over a year ago
At scale, any failure that can happen will eventually happen. Hardware failures, software crashes, memory leaks - you name it. The more…
Roberto Vitillo's...
Scalability patterns of distributed systems I have released a new chapter of Understanding Distributed Systems ! It explores the different...
over a year ago
17
over a year ago
I have released a new chapter of Understanding Distributed Systems ! It explores the different patterns at your disposal when designing…
Roberto Vitillo's...
The costs of microservices An application typically starts its life as a monolith. Take a modern backend of a single-page...
over a year ago
15
over a year ago
An application typically starts its life as a monolith. Take a modern backend of a single-page Javascript application, for example - it…
Roberto Vitillo's...
Resiliency patterns of distributed systems I have released a new chapter of Understanding Distributed Systems : Resiliency Patterns. The...
over a year ago
17
over a year ago
I have released a new chapter of Understanding Distributed Systems : Resiliency Patterns. The chapter is all about failures and their…
Roberto Vitillo's...
How to conduct a system design interview The system design interview is a great way to assess the seniority of a candidate in an interview....
over a year ago
15
over a year ago
The system design interview is a great way to assess the seniority of a candidate in an interview. You can find a lot on the Internet on how…
Roberto Vitillo's...
What every developer should know about database consistency Imagine assigning some value to a variable, reading it back immediately after, and finding out that...
over a year ago
13
over a year ago
Imagine assigning some value to a variable, reading it back immediately after, and finding out that somehow the write had no effect at all…
Roberto Vitillo's...
The second chapter of Understanding Distributed Systems is out In the second chapter of Understanding Distributed Systems , I explore the core building blocks at...
over a year ago
20
over a year ago
In the second chapter of Understanding Distributed Systems , I explore the core building blocks at the heart of many distributed systems…
Roberto Vitillo's...
I am writing a book I have released the first chapter of Understanding Distributed Systems ! "Wait, what? Weren't you...
over a year ago
15
over a year ago
I have released the first chapter of Understanding Distributed Systems ! "Wait, what? Weren't you working on a video class?" - I hear you…
Roberto Vitillo's...
Why you should measure tail latencies The response times of your service can cost you dearly if left unchecked. Even when a small fraction...
over a year ago
15
over a year ago
The response times of your service can cost you dearly if left unchecked. Even when a small fraction of requests experiences extreme…
Roberto Vitillo's...
Back of the envelope estimation hacks There are two types of engineers, the ones that can quickly do estimates and the ones that can't....
over a year ago
16
over a year ago
There are two types of engineers, the ones that can quickly do estimates and the ones that can't. Are these people just smarter, or is there…
Roberto Vitillo's...
What every developer should know about TCP Why do you need to place your servers geographically close to your users? One of the reasons is to...
over a year ago
13
over a year ago
Why do you need to place your servers geographically close to your users? One of the reasons is to achieve lower latencies. That makes a lot…
Roberto Vitillo's...
Don't trust default timeouts Modern applications don't crash; they hang. One of the main reasons for it is the assumption that...
over a year ago
16
over a year ago
Modern applications don't crash; they hang. One of the main reasons for it is the assumption that the network is reliable. It isn't. When…
Roberto Vitillo's...
How do you prepare for the system design interview? I get asked this question a lot. I lost track of people I know that spend all their time brushing up...
over a year ago
14
over a year ago
I get asked this question a lot. I lost track of people I know that spend all their time brushing up on algorithmic puzzles and barely…
Roberto Vitillo's...
I am back It's been three years since my last post on my old Wordpress blog! You can still find my earlier...
over a year ago
13
over a year ago
It's been three years since my last post on my old Wordpress blog! You can still find my earlier posts there as I was too lazy to move…
Roberto Vitillo's...
A martingale approach to detect changes in histograms If a user has opted into submitting performance data to Mozilla, the Telemetry system will collect...
over a year ago
18
over a year ago
If a user has opted into submitting performance data to Mozilla, the Telemetry system will collect various measures of Firefox performance…
Roberto Vitillo's...
Differential privacy for dummies Technology allows companies to collect more data and with more detail about their users than ever...
over a year ago
16
over a year ago
Technology allows companies to collect more data and with more detail about their users than ever before. Sometimes that data is sold to…
Roberto Vitillo's...
How to review a data analysis Writing good code is hard, writing a good analysis is harder. Peer-review is an essential tool to...
over a year ago
13
over a year ago
Writing good code is hard, writing a good analysis is harder. Peer-review is an essential tool to fight repetitive errors, omissions and…
Roberto Vitillo's...
Counting at scale How engaged are users for a certain segment of the population? How many users are actively using a...
over a year ago
12
over a year ago
How engaged are users for a certain segment of the population? How many users are actively using a new feature? One way to answer that…
Roberto Vitillo's...
Monoids for analytics This is a short post on the elegance of using abstract algebra for analytics in Scala. A monoid is...
over a year ago
24
over a year ago
This is a short post on the elegance of using abstract algebra for analytics in Scala. A monoid is a set that is closed under an…
Roberto Vitillo's...
Spark best practices Spark execution model Spark's simplicity makes it all too easy to ignore its execution model, and...
over a year ago
16
over a year ago
Spark execution model Spark's simplicity makes it all too easy to ignore its execution model, and still manage to write jobs that eventually…