In recent years, streaming libraries seem to have evolved significantly. To name a few, we’ve seen Akka Streams, KafkaStreams, Flink, Spark Streaming and others, becoming increasingly popular. There might be numerous reasons for that. A common motivation for using stream processing in your systems is to avoid heavy computations upon raw data in read-time. Instead, we can move those computations to an earlier stage — around the time when the raw data is produced. …

TL;DR: I’ve released Priora, a new gem that helps in prioritizing collections of objects in Ruby in a friendly way! Check it out (GitHub / RubyGems).
In this post, I will discuss the motivation, design and agenda I have picked in creating this utility. Parts of this story have been extracted into the library’s README file on GitHub.

I stumbled upon the Datamuse API the other day as I was looking for thesaurus-like data for some small app I am currently toying with. If you are not a 100% sure what “thesaurus-like data” means, check out For those who consider accuracy and creativity in their choice of words an asset, this is an invaluable tool. Moreover, I find myself using it quite often at work whenever I am looking for a different, sharper name for some class, variable or method; and of course it has many, many more usages. …

This story continues How I Built Timeasure: Part 1 — Motivation & Method Wrapping.

The previous story described Timeasure (see: Github / RubyGems / Live Demo), a new gem that helps Ruby developers in measuring the runtime of their methods in production and gaining valuable knowledge regarding the proper path to optimization. In the previous story, I explored the main interface Timeasure offers for that purpose and have demonstrated how it was designed and crafted.

In this post I will dive into Timeasure’s profiling manager — the component that is concerned with collecting each measurement that is produced by a…

I’ve recently released Timeasure, a new gem that serves as a transparent method-level wrapper for profiling purposes in Ruby.

It was released under the GitHub account of the company I work for, Riskified, as its core was developed as part of a task I was given there. I have taken it as a passion project to go ahead and generalize it well enough so it can be useful to others and be released as a gem; I believe it might serve other Ruby developers out there looking to optimize the runtime of their code efficiently.

In this post, I will…

Class methods are the source for continuous discussions and disagreements among my colleagues. While some consider them precise and helpful, others feel they are actually pesky and that they tend to make code harder to read and manage. As for me, I find that the truth tends to lean to the latter; I embrace Ruby’s OO nature and I like to think (and read!) in objects. Having said that, sometimes class methods are indeed necessary.

CC BY-SA 3.0 Nick Youngson (

It is a rather common claim that Object Oriented programming is a lot about passing messages between objects. Also, OO encourages us to find the right nouns and verbs in order to solve a given problem. I often like to think about a program as a theatrical stage, upon which participants act and speak with each other. Sometimes, though, a character might need to say something to another character through a third participant; that go-between actor would be asked to delegate the message to the target character. Back to programming, delegation

…refers to evaluating a member (property or method) of…

Ruby and collections-handling go well together. Whether it’s an Array, a Set or a Hash, the language provides us with a variety of useful methods that ease iterating, selecting and manipulating collections.

Sometimes, though, we find ourselves dealing with long lines of code that deal with the issue of picking the right objects out of a collection. While the tools supplied by Ruby are strong and powerful, it is up to us to design our objects in a way that makes their usage simple and smooth. …

Eliav Lavi

Software Developer @ Riskified; Theorbo Player

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store