Keeping up with my quest on exploring probabilistic data structures, today I am going to present you Bloom filters, an ingenious idea that allows us to quickly verify membership within a set.

As usual, I sound awful when using grown-up words: filters? Membership? Verification? Just bear with me for a few minutes as we’re about to delve into one of the most ingenious ideas in the world of computer science, one that was born almost 50 years ago.

Read on →

Every now and then I bump into a concept that’s so simple and powerful that I want to stab my brain for missing out on such an incredible and beautiful idea.

I discovered HyperLogLog (HLL) a couple years ago and fell in love with it right after reading how redis decided to add a HLL data structure: the idea behind HLL is devastatingly simple but extremely powerful, and it’s what makes it such a widespread algorithm, used by giants of the internet such as Google and Reddit.

Read on →

Almost 3 years ago I published a much-needed post around cleaning up space taken by docker (it’s been one of the most popular posts on this blog according to Google Analytics), but since a year or so there’s a much better way to achieve the same.

Read on →

In the past few years I’ve got more and more accustomed to computer science concepts that were foreign to me earlier in my career: one of the most interesting aspects that I’ve focused on is probabilistic data structures, which I want to cover with a few posts in the upcoming months.

My excitement around these structures come from the fact that they enable us to accomplish tasks that were impractical before, and can really influence the way we design software — for example, Reddit counts unique views with a probabilistic data structure as it lets them scale more efficiently.

Read on →

I don’t know about you but, for me, since I got VP / CXO in my designation the amount of cold emails I receive from salespeople at random companies has spiked up quite substantially — every day I need to go through countless of “Just the right thing to start the week” or “Alex, you will not regret this”, which is quite annoying to say the least.

Fair game, though, as I can filter most of them out through amazing tools like SaneBox. But this week I received one of those emails that are plain scam, blatantly unethical, and I wanted to share my experience with you because, yes, I didn’t let this one go unnoticed.

Read on →

Just a heads up: I’ve decided to follow a friend’s advice and start cross-posting the contents of this blog on Medium.

All new content will be published both here (I like my data!) and there, with the goal of reaching a broader community. I also got fed up with the Disqus comments (they mostly show freaking clickbait links) and wanted to find an alternative, so I will be shutting down comments on my blog shortly and instead point people to Medium.

Here’s my profile and a link to my latest medium-ized post :)

In order to get our backend team to familiarize with React, I ran a quick intro to the library, based on “evolving” a JSFiddle from a single, static component to adding UI interactions, using props / state and so on. Nothing groundbreaking but something that covers the most important bits of React.

I summarized my intro in a repo called “React in 1000 words” and wanted to share it here as well, in case anyone finds it useful.

Read on →

Async / await is one of the biggest revolutions (read: one of the sweetest syntactical sugars) that has come to JavaScript over the past few months, and has personally helped me appreciate the language a lot more.

At work, we rely quite a lot on ExpressJS to build small services deployed in our architecture and, as you can imagine, have converted a whole bunch of them to async / await over time.

One interesting problem, though, has been converting express routes to use async functions: my personal solution has been to write express-async-await, and I want to share the reasons and ideas behind the library in this post.

Read on →