Tales of software craftsmanship

Tales of software craftsmanship


This is a list of software projects of varying scope I’ve created or been involved with to some degree.

Community contributions


squidCalamares is an installer framework. By design it is very customizable, in order to satisfy a wide variety of needs and use cases. Calamares aims to be easy, usable, beautiful, pragmatic, inclusive and distribution-agnostic. Got a Linux distribution but no system installer? Grab Calamares, mix and match any number of Calamares modules (or write your own in Python or C++), throw together some branding, package it up and you are ready to ship!

I have been the project manager and lead developer of Calamares since its inception in June 2014.


TomahawkTomahawk is a music player that fundamentally changes the way music is consumed and shared. It decouples the name of the song from the source it was shared from – and fulfills the request using all of your available sources.”

I have been hacking on Tomahawk since late 2011, see my activity on GitHub.


Amarok is a powerful music player for Linux and Unix, MacOS X and Windows with an intuitive interface. It makes playing the music you love and discovering new music easier than ever before – and it looks good doing it!”

I have been an active Amarok developer since 2008, aside from regular maintenance some of my most prominent contributions have been playlist sorting, music transcoding, social desktop integration for the “About” dialog and Likeback feedback gathering integration.


“The KDE® Community is an international technology team dedicated to creating a free and user-friendly computing experience, offering an advanced graphical desktop, a wide variety of applications for communication, work, education and entertainment and a platform to easily build new applications upon.”

I have successfully completed three Google Summer of Code projects, in 2009, 2010 and 2011, working on Amarok, with KDE as the mentoring organization. I have also been responsible for organizing various KDE student programs, as a mentor and administrator.


University projects

A screenshot of AutomatoAutomato is an automaton simulator. It supports creating and editing automata and validating strings against them as finite state machines or as Büchi automata, both deterministic and non-deterministic. Automato is cross-platform, based on the Qt framework.

I presented it as a university project in July 2012 for an exam.

Automato is Free software, released under the terms of the GNU GPL, version 3 or later.

Get the code on Bitbucket.


K-Means is an interactive C++ implementation of two related clustering algorithms: k-means and k-medoids. My implementation is platform-independent thanks to Qt (runs on Linux, Mac and Windows), it loads comma-separated datasets, and it uses Qwt for interactive step-by-step visualization. While this kind of visualization is not a good idea for large datasets, I hope it can be a valuable learning tool to compare the strengths and weaknesses of k-means and k-medoids. Actually, please let me know if you find it useful!

Two example datasets are included. I presented it as a university project in June 2012 for an exam.

K-Means is Free software, released under the terms of the GNU GPL, version 3 or later.

Get the code on Bitbucket.


Mugs is a simple proof of concept issue tracker developed in Mono and C# as an ASMX web service with an NHibernate backend and a desktop client based on the Qyoto/Kimono Qt bindings. I presented it as a university project in October 2010 for an exam, and I don’t plan on developing it any further. It has certain limitations caused by the insufficient integration between Mono’s previous generation ASMX web services framework and the NHibernate Object-Relational Mapping solution (serialization of NHibernate-compatible data structures is very often impossible, so one needs to introduce wrapper classes, and this makes lazy loading, a key advantage of NHibernate, not so useful). Still, in spite of its limitations, it could prove to be a valuable educational tool for someone who wishes to learn about ORM with NHibernate, Mono, C#, web services or Qyoto/Kimono.

Mugs is Free software, released under the terms of the GNU GPL, version 2 or later.

Download:  Mugs.tar.gz 3.87MB


This unnamed program is a C++ implementation of an algorithm that updates an extended suffix array structure when the base string changes, eliminating the need for a full regeneration of the structure. I presented it as a university project in July 2010 for an exam. It has been first described in Salson, M; Lecroq, T; Léonard, M & Mouchard, L. Dynamic Extended Suffix Arrays, Journal of Discrete Algorithms, Volume 8, Number 2, Pages 241-257, 2010.

My implementation is Free software, released under the terms of the GNU GPL, version 2 or later.

Download:  ESA.tar.gz 17.2KB