do not go gentle into that good night

This post is not about the past but rather about the future, EverythingMe has announced it has shut down its operations a few weeks ago, and since then we’ve done what’s necessary to gracefully remove the app from the store, shutdown the service and communicate with our users.

rage rage against the dying of the light

We’ve decided to actively open up as much of our code, tools and practices as possible for others to use, it was always part of our moda operandi and it is only fitting to make that one last push so it doesn’t fade into oblivion. If some of it helps other teams and stays alive we’ll be proud and happy about it.

So without further ado, this is what we’ve managed to open:

Opening our prediction algorithm

One of the things EverythingMe was known for was its prediction bar, a section of your homescreen that surfaced the apps you’ll most likely be using next. We didn’t use a simple frecenecy algorithm or popularity ranking to power it, it wouldn’t have achieved the end result we were aiming for — finding that app you only use on Fri mornings in the city when you park your car, we called it “magic moments”.

Instead of going the default routes, we joined forces with Dr. Joseph Keshet and have rigorously iterated to come up with an on-device on-line learning approach that yielded better results than any other alternative.

Today, we’re releasing a draft of the paper we’ll soon publish that describes our approach and implementation details.

Open sourcing internal code & tools

Infrastructure and Backend

Vertex - Go-based API management framework

The 3rd generation of our API framework which was crucial and has helped us move fast, for the price of defining your API endpoints and payload you get so much more — a fast, data-validated, self-documenting, client-generating, tested API server.

1st and 2nd generations were called Gondor and built in PHP and then ported to Python over tornado

Contributors: Dvir Volk

Meduza - cross-language data store

A cross-language, cross database, loose schema NoSQL data store, with an Object Mapper for easy querying and code integration.

It has a server implemented in Go, and clients currently implemented in both Go and Python.

The idea behind Meduza is to create a simple yet powerful data abstraction API, but in contrast to other ORMs, make it easy to use it across different languages.

Contributors: Dvir Volk

Teleport

A python library that allows you to execute code within the networking context of a specific country, it is intended to run inside a docker container as it takes over the entire network “namespace”.

Have you ever needed to “look” at specific URLs from different countries? We surely did and that’s why we streamlined the process to a point where all there’s needed was a simple with in our python code.

Contributors: Eddie Mishelevich, Omri Bahumi