I am maintainer and developer of several standard mobile networking tools available in every modern Linux-based distribution:

  • ModemManager is a system daemon which acts as an abstraction layer providing a unified interface for lots of different kinds of WWAN (2G/3G/4G/5G) modems.
  • libqmi is a general purpose library which provides access to the Qualcomm MSM Interface (QMI) protocol, available in Qualcomm Gobi devices.
  • libmbim is the library which implements support for the Mobile Broadband Interface Model (MBIM) protocol designed under the umbrella of the USB Implementors Forum.

I have also developed from scratch multiple other tools to interface with hardware devices, including:

  • libdukpt, a C library that allows performing key generation as well as encryption and decryption operations using the DUKPT key management scheme, used in credit cards.
  • MCCR, a collection of C library (libmccr), command line interface (mccr-cli) and graphical user interface (mccr-gtk) to manage and interact with MagTek credit card readers.
  • libratp, a C library that allows creating, controlling and using data links using the Reliable Asynchronous Transfer Protocol (RATP), defined in RFC 916.
  • libratp-barebox, a small C library and command line tool that allows controlling a barebox running instance through a RATP link.
  • RaveModemFactory, a simple connection manager for modems which speak the Qualcomm MSM Interface (QMI) protocol, suitable for embedded systems with simple mobile broadband requirements.
  • fiberstat, a small C program that allows monitoring TX/RX power levels in optic fiber network links.
  • Mobile Radio Monitor, a graphical application that allows monitoring signal and power levels on modems which speak the Qualcomm MSM Interface (QMI) protocol.
  • microtouch3m, a C library and command line tool to test 3M touchscreens.

In addition to the previous projects, I have also contributed to many more free and open source projects, for example:

  • The fwupd daemon, which implements support for updating firmware of multiple components of a system. I’ve implemented firmware upgrade support for several WWAN devices in fwupd, including their integration with the Linux Vendor Firmware Service.
  • The NetworkManager networking suite, which provides a unified experience to every network related aspect in a Linux based distribution.
  • Buildroot, an easy to use tool to generate customized embedded Linux-based systems, where I help maintaining the modem management related packages.
  • OpenWRT, a Linux-based operating system for embedded devices, for which I developed a new netifd protocol handler to integrate with ModemManager.
  • Tracker, a semantic data storage and file indexer used in multiple systems like phones (e.g. Nokia N9 MeeGo, Jolla, …) or In-vehicle Infotainment Systems (IVI); I was part of the core development team some years ago.
  • GLib/GObject/GIO and GTK+ for various different fixes in the whole stack.
  • The Linux kernel itself, mostly adding support for new WWAN devices, but also fixing very specific issues affecting WWAN modems e.g. in the USB3 host driver.

The full list of contributions I’ve done is available in my Open Hub profile.