Back to Overview

Technology Selection

Programming Languages & Frameworks

When it comes to technology we are very versatile and diverse. We try to use that which gives us the best combination of performance (where it matters), development speed and fun. We have a very strong background in Ruby and Rails development, which is the foundation on which the platform and all of our products are build, but we are very strongly versed in JavaScript and use it along with Node (backend) and React (frontend) extensively.

Ruby on Rails

The primary driver of our web applications is Ruby on Rails, which we have found to give us the best tooling to develop well-tested, scalable and reliable web applications. Its MVC-based nature (which inspired numerous clones in other languages) and mature library allow us to quickly iterate on ideas and bring them to our customers.

JavaScript / React

In order to deliver high-quality, state-of-the-art web applications, we require the usage of numerous client-side JavaScript-libraries, for which we use webpacker, along with React, which we use to manage all client-side state.

JavaScript / Node.js

In many of our background tasks (primarily scraping and some data processing) we also started to more extensively utilize Node.js. Similarly to ruby it gives us a great library of code to include and utilize.

Python

Python is primarily used in data science, but also has some presence in legacy background scraping tasks we still maintain and run.

Database Solutions

Our storage solutions are as versatile as the data for which we use them. Primarily we are focused on three storage databases for long term data storage (discounting redis, memcached etc).

MySQL

For general purpose relational data that is used to keep our sites working, we rely on MySQL. As a well established and documented database backend with good tooling, we have found it to be adequate for all our work so far.

Elasticsearch

To efficiently make our data searchable, we utilize Elasticsearch which we run on multiple servers as a distributed data set. It allows us to search through our big data sets with ease.

MongoDB

For storage of big multi-million document data collections, we utilize MongoDB. It serves as the backend for the whole of our extensive data collection, for which it is perfectly suited due to its web-scale architecture and design.