Proactive monitoring with Monit + Sengrid + Slack

The monitoring of resources is something essential to have visibility into the health of your system. There are many software solutions out there and one of my favourites is Nagios, but it requires an investment of time and knowledge.
When it comes to finding an agile and flexible solution, I would choose Monit. The syntax of configuration is easy and does not require a complex setup to have it running.

What is Monit?

Monit is a small Open Source utility for managing and monitoring Unix systems.

What can Monit do?

When it detects a problem it can send you alerts (as most solutions do). But this is not the most important thing. Monit can act if an error situation occurs and can restart services, execute custom scripts, etc. This makes Monit a proactive monitoring tool and therefore has always been among my favorite tools.

With Monit you get out of the box:

  • Automatic email alerts at event triggers
  • Automatic process maintenance
  • Capability to act on out-of-bounds values for CPU, RAM, storage and more
  • Monitoring of running services, and the ability to start, kill or restart them
  • Web and CLI interfaces for status monitoring

This post does not aim at covering everything that can be done with Monit. The official documentation is enough and there are numerous sites to extend this information, so I will focus on how we use it here at Geoblink.

Read more

React Native or going mobile without knowing Swift

It’s no secret that we love Hackathons here at Geoblink. During the 9 months that I’ve been part of the team, I’ve had the chance to participate in two of them. For me, the main advantage in having these kind of events in-house is that I get to try new technologies, frameworks or tools that I’ve been craving for a while. That was the case in the last one we did, when a coworker and I had the chance to test React Native, the Facebook’s library based on React that wants to “bring modern web techniques to mobile”.

This isn’t supposed to be an in-depth tutorial on how to build an app using React Native, but a brief explanation on how this library could help us (as well as you and your team) to build robust mobile applications when your stack is purely based in web technologies, Javascript in particular.

Read more

Face recognition with Node.js

Last week at Geoblink we organised our second hackathon (we call it Geothon), and a lot of interesting projects were presented. In my case, I had a lot of fun working on a face recognition app and I wanted to share some of the details about this project.

I decided to build the application in Node.js, since it’s our main server language. For face recognition I used OpenCV, a library focused on real-time image and video processing, with the main purpose of making computers able to understand and process images. OpenCV allows us to recognize lots of types of objects such as faces, eyes, a mouse, or even a full body, using Haar Cascades.

Read more


In a previous blog post, we talked about our experience at the 2017 Hackatrips Hackathon at Fitur. In this post, we go more in depth into the technologies we used, and how we put it all together, with a special emphasis on Natural Language Processing (NLP) with LUIS. Read more

Geoblinkers @ Hackatrips: A Hackathon Experience

This past January, Fitur (Spain’s largest yearly tourism event) and minube (online travel platform), joined forces to organize the first ever Hackatrips Hackathon. The objective? To engage a group of developers, tourist specialists and designers to find and build upon great ideas on sustainable travel. After all, 2017 is the Year of Sustainable Tourism for Development.

Read more

From CERN to Geoblink: A transition from the largest lab in the world to a not-so-large startup

As some of you, I am one of those 28% of data scientists holding a PhD. In my case, I did my PhD in High Energy Physics at CIEMAT institute, and thanks to that I was able to spent 4 unforgettable years at CERN looking for Higgs boson particles in the CMS experiment.  My role,basically, was the statistical analysis and interpretation of the data. When I finished, I realised I had not become that-big-bang-theory-guy, and decided I wanted to work and learn from fields other than Physics. So I decided to transition to a Data Science career path (c’mon, it’s the “sexiest job in the XXI century”, this must be good).   

Read more

Postgres Foreign Data Wrappers (FDW)

Breaking the monolith

At Geoblink our database runs on PostgreSQL. This works great for us as we get all the speed and flexibility of SQL making it easy to adapt the backend to the changing requirements in the product.

This flexibility comes with a price though, as it is very easy to end up with a monolith-like set of schemas with cross dependencies among the different parts. In our case, it was specially true for ETL processes: introducing new demographic indicators was a very complicated task where we had to juggle with several databases. In fact, making the data ready to be consumed by our application included a lot of manual steps, making it difficult to automate the promotion and deploying of new data.

A few months ago we started planning our international expansion (UK here we come!) and it became obvious that our structure was not going to scale anymore. Looking into possible solutions we found Postgres Foreign Data Wrappers (FDW) and we instantly fell in love with it. We added it to our infrastructure and our ETL processes now work as a breeze!

Read more


This week is a special week at Geoblink! We have organized our first-ever, company-wide hackathon, we call it GEOTHON.

The whole team behind Geoblink has come together and put aside our regular tasks for 2 days to focus on building something cool and different. Our objective is to come up with new ideas that would bring innovation to the features we offer our clients and improvements to our internal processes. For us this is very a very important event as innovation and creativity are embedded in our DNA and we think they are some of the things that sets us apart from other companies and products.

Read more

Hello world!

var http = require(‘http’)
var server = http.createServer(function (request, response) {
 response.writeHead(200, {‘Content-Type’: ‘text/plain’})
 response.end(‘Hello World!’)