You can view a detailed resume or continue reading.
In 1993 I got my MSc in Electronic Engineering from the University of Genoa (Italy) and in November of the same year I started my PhD in Artificial Intelligence at the University of Ancona. My research focused on the development of interactive reasoning systems. It was Common Lisp, then, and mathematical logic.
After two short periods abroad, the first at the Artificial Intelligence Department of the University of Edinburgh and the second with the Formal Reasoning Group at Stanford, in 1997 I moved to Trento, working for Fondazione Bruno Kessler (IRST, by then), a no-profit research center. I worked mainly on technology transfer projects in the safety-critical domain with industrial partners such as Ansaldo Segnalamento Ferroviario and Alenia Aeronautica. More in details, we used model checkers to validate the specifications and the design of train control systems; we also experimented methodologies and technologies to improve the safety analysis process of avionic systems. The main programming languages were C and C++, by then, mixed and peppered with fault trees and FMEAs. It is at the end of this period that Marco Bozzano and I wrote our first book, Design and Safety Assessment of Critical Systems.
The experience in the safety critical domain raised my interest in software project management and I started looking at software development not only from the programmer's point of view, but also from a managerial perspective. A sound process, in fact, is essential to ensure quality and reliability. We started using Java and we managed projects using the PMBOK. (Java tends to be a bit verbose.)
In 2005 I moved to the eGovernment sector, where I had the opportunity of leading the development and experimentation of an eVoting system, which was used in Italy with legal value in two small elections. Various other projects, among which one related to the interoperability of eGovernment systems of Mozambique, strengthened my project management competences and raised my interest in the use of IT in developing countries.
It is also in 2005 that I moved my teaching activities from "Software Engineering" to "Software Project Management". I am still fond of teaching it and I believe it to be an essential course of any Computer Science and Engineering curriculum. Software development today requires a multi-disciplinary approach and many activities in software development projects have little to do with writing code. For this reason I decided write my second book, Introduction to Software Project Management.
In 2010, together with Aaron Ciaghi and Pietro Molini, we founded the ICT4G Unit, which focuses on the use of IT for promoting social and economic development in emerging economies and developed countries alike. Group activities focus on two areas. First, we are interested reducing food waste, promoting a fairer distribution of food, and improving sustainability. To achieve this goal, we support charities, canteens, and producers, with BringTheFood. So far, we supported the recovery of more than 700 tons of produce. Second, we teach, introducing people to the use of computers with the Hour of Code and to web and mobile programming in our Summer Schools, many of which held in Southern Africa.