In this section you can see some of the most interesting projects I created or participated throughout the years.


Headlamp is an easy-to-use and extensible Kubernetes web UI created to be a Kubernetes web UI that has the traditional functionality of other web UIs/dashboards available (i.e. to list and view resources) as well as other features. Headlamp was created to serve as a base for Kinvolk‘s Lokomotive Kubernetes distribution.

Hack / Clubhouse

Hack is an Endless initiative to teach children computing concepts and code in the form of an operating system built to drive users seamlessly through a series of quests that encourage exploring, tweaking, and learning in a seamless, engaging way. As part of the Hack team I mostly focus on the Clubhouse app, that I created and maintain, which drives users through the quests as a central piece of the Hack experience.

Endless OS / GNOME Software

Endless OS is a Linux-based operating system built by Endless for regions with poor internet infrastructure or connectivity. It is based on ostree, uses Flatpak for application distribution, and a modified GNOME Shell for its desktop.
As an Endless employee I worked on different parts of the OS (from the Shell, to Flatpak, etc.). But mainly I maintained the  Endless App Store, a fork of GNOME Software (GNOME’s app center) and I implemented our features and participated also in some of the development of the upstream version with the GNOME Community.


libradosfs is a complete client-side implementation of filesystem-like
functionality based on Ceph‘s RADOS object store (implemented in C++).
libradosfs was designed according to the requirements of the former CERN Data Storage
Services group in terms of scalability and flexibility: it provides a scale-out
namespace and pseudo-hierarchical storage view with optimized directory and file
access (no strict POSIX semantics), parallel metadata queries, modification time
propagation, file striping and other features.


Skeltrack is the world’s first Free Software library to perform skeleton tracking from depth images.

Given a depth image, like the ones given by the Kinect, Skeltrack can infer where the user’s skeleton joints are located in the 3D space.

This library was developed for the Igalia Interactivity team and is written in C using Glib.

Skeltrack received an award for innovation by the KNetworks project at Oxford on November, 2012.

Skeltrack Desktop Control

Skeltrack Desktop Control allows to control a computer’s desktop using a Kinect device. It is a demo application showing the capabilities of Skeltrack and was written in C with Glib.

Salutations Installation in Museum für Kommunikation, Berlin

The salutations interactive installation is the first interactive installation to use Skeltrack. It was done by the Interactivity Team at Igalia in collaboration with Studio Kaiser Matthies for the Museüm für Kommunikation in Berlin.

See also the announcement post and the making of.


GFreenect is a wrapper for libfreenect, the Free Software library for accessing and controlling Microsoft’s Kinect. GFreenect offers an easy way to integrate the features offered by libfreenect in Glib-based applications and was written for the Igalia Interactivity team.

I participate in GFreenect’s development and wrote the Python example that accompanies its source.


OCRFeeder is a document layout analysis and optical character recognition system.

Given the images it will automatically outline its contents, distinguish between what’s graphics and text and perform OCR over the latter. It generates multiple formats being its main one ODT.

It features a complete GTK+ graphical user interface that allows the users to correct any unrecognized characters, defined or correct bounding boxes, set paragraph styles, clean the input images, import PDFs, save and load projects, export everything to multiple formats, etc.

OCRFeeder is the most complete Free Software OCR application available nowadays. It written completely in Python and was first developed as my Master’s Thesis project in the Computer Science degree (in 2008).

MeeGo Touch Framework

The Meego Touch Framework is a library written in C++ (based in Qt) for developing applications for the MeeGo operating system that powers the Nokia N9 phone.

As part of Igalia’s desktop&mobile team, I participated in Meego Touch, mainly in the libmeegotouch part, developing new features, correcting bugs, etc.

Hildon Input Methods Framework

The Hildon Input Methods Framework was responsible for managing the user’s input — both from the virtual and the physical keyboard — in the Maemo 5 operating system that powered the Nokia N900 phones. It was written in C using Glib.

I maintained this project as part of the desktop&mobile team at Igalia where I had to create new features, correct issues, etc.


SeriesFinale is a TV series and browser application for the Maemo (Nokia N900) and Meego (Nokia N9) operating systems.
It allows you to manage the TV shows you watch regularly, informing about new episodes and keeps the ones watched so far. It also shows the description of each TV show and episode.

I am a fan of TV series and I created SeriesFinale in 2009, out of my own need of keeping track of the shows’ episodes. It is written in Python.

Text Predictor Input Method for GNOME

The Text Predictor Input Method provides text completion (just like in cellphones) in the GNOME desktop. It is written in C using Glib and works on regular GTK+ input methods. The text prediction is given by the Presage library that this project wraps.

This was developed to show assisted input using only Free Software technologies.


Rancho was a project management web project very similar to Basecamp but it was Open Source and written in Django.

I created this project with some friends while at the University in 2007 (using Django 0.96 back then). The plan was to create a startup around it which never occurred but still a few companies and Universities used it and it was a nice project that perhaps I should try to resurrect one of these days.


BluePad is a little application that turned a cellphone into a remote for a computer. It was the first mobile application I wrote and it was developed in J2ME when using bluetooth was cool and cellphones were very different — the iPhone and Android did not even exist.