Working as a professional software/firmware programmer means that most of the code I wrote is bound to some form of a non-disclosure agreement. In my free time, I’m often idly coding, but such projects never reach an adequate level for showing them.

On this page, you can find code projects that escaped the NDA (mostly because I wrote them on my own time), blog projects (i.e. series of posts on an argument), and released projects (i.e. products).

Code projects

  • Flic – a functional library for C++. After having coded so much in Scala I tried to port some concepts and tools to C++. Sometime later I discovered that C++20 adds the range library which supports basically the same idioms (note – actual work is in branch pre-devel).
  • Chef – another C++ library for helping with utilities and functional constructs in C++ projects. The goal of this library is to provide a quick start on new projects in the firmware / embedded software domain. This is currently under (slow but) active development.
  • Tydal – a language for defining types. This project came out of my frustration in using swagger to define JSON constructs. Tydal’s goal is to read the type definition and crank out C++/Scala/Java encoders and decoders. It is not complete.
  • wonderObjects – a silly program to generate fictional names for unlikely devices (actually only available in Italian). Written in … bash.

Blog Series Projects

  • Scala job interview questions and my answers – Starting from a list I found online, here’s my try at answering Scala job interview questions.
  • Is C++ Ready for Functional Programming? – A series of posts that analyze C++ language from the functional programmer’s point of view.
  • Our Fathers’ Fault – a series of blog posts about flaws and bad design choices I encountered in my maintenance hikes through the Scala codebase I inherited at work.
  • PIC18 Software Project Survival Guide – some posts about how to deal with the idiosyncrasies of a PIC18 project and development. It may be somewhat outdated since both IDE and compiler have changed.


  • Rayman GBC – my first commercial videogame (128k+ Z80 Assembly) (play this online)
  • Donald Duck – Going Qu@ckers GBC – my preferred GameBoy Color videogame (play this online)
  • Rogue Spear GBA – isometric, 150kLines of C for ARM, pathfinding, line of sight, fog of war (play this online)
  • Tomb Raider GBA – RAD game (action) using Rogue Spear engine and tools. (play this online)
  • The Mummy GBA – RAD game (puzzle) using Rogue Spear engine and tools (play this online).
  • Beyond Good & Evil Xbox – Porting large C++ project from GameCube. Remote team, scarce bandwidth.
  • Legrand Nurse Calling System – a distributed system for handling patient calls in hospitals.
  • Murasaki Baby PS Vita – my last commercial videogame, made with Unity and C# (and love, and pain).
  • Tecniplast DVC – the current project spans from deeply embedded (8k flash cortex chips) to the cloud (Scala, Akka, Mqtt)

(featured image derived from Banner vettore creata da vectorpouch –

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.