Using Machine Learning at Geoblink to improve the quality of our database

One of the major problems we are dealing with at Geoblink is spotting the duplicated information (point of interest or any other location) on our map. Turns out, we do have something in common with Google Maps…

Just like Google Maps, we want to keep our map up-to-date with the latest information. However, due to the variety of sources of data we use, we sometimes encounter that the same physical point is represented on our map by two or more markers. One of the reasons behind that is how creative people often get when it comes to formatting an address: addresses coming from different data sources might be formatted very differently, so sometimes it becomes extremely difficult to tell whether two different addresses represent the same physical point or not.

Read more

Geoblink named one of the top 50 Startups worldwide 2017

We were recently included in a list put together by Bloomberg with the top 50 most promising unheard startups for this year, under the category Artificial Intelligence/Geospatial business intelligence.

The list shows startups from other sectors that are getting a lot of attention these days like Augmented Reality, Drones or Autonomous Driving.

We are very proud to have been included in this list by such a prestigious publication! This powers up our will to create one of the best Geospatial product in the industry.


Screen Shot 2017-05-18 at 20.59.24



Working in a SaaS product department

Speed is the key of success in a startup like Geoblink: we have to attract new clients and we have to make current clients happy as we have to stand out among emerging competitors. So a fast process to develop new features is needed.

Agile methodology

We lean on Agile methodology to assure fast development of every task, which is an alternative to traditional project management. We use Scrum as way of applying Agile methodology. Every company does this differently, at Geoblink we use this framework:

  • Sprint: our unit of time is called sprint. A sprint lasts two weeks, and during every sprint we have some meetings often seen in Agile methodology.
  • Daily stand up: the Core and Data teams meet up during 15 min every morning so developers quickly go over what they did yesterday, what are they doing today. Dependencies are also shared to avoid blocking anyone of the team.
  • Sprint status: at the middle of the sprint we meet to agree which tasks will be completed before the end of the sprint or not.
  • Sprint preparation: before the end of the sprint, the leads of each team (Core, Data and Product) meet up in order to define which tasks should be done during the next sprint.
  • Company Demo: due to the high rate of changes that the product suffers, it is very important to communicate them to the rest of the team.
  • Retrospective: at the end of every sprint the Tech team talks about what went well, what did not and what should be improved. This is very useful to avoid repeating failures or inefficiencies.

Read more

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