I am a software engineer who ended up doing applied research. My interests therefore revolve about programming and software engineering.
Complex Adaptive Systems fascinates me, especially distributed ones. I observe that as software systems grow in both in size and complexity, they resemble complex adaptive systems, whose behaviour is difficult to understand, let alone to predict.
Agile Software Development and the software craftsmanship ideas struck me as obvious once we know them. I am very interested in how these ideas apply and foster scientific research, which is highly iterative in nature.
Software Architecture is, in my opinion, the art of mixing in a pot various technologies and obtaining a coherent, maintainable and scalable whole.
International Research Projects
I have been lucky enough to join several international research projects and I am grateful for the competences I learnt from my colleagues, including programming, software architecture, mathematics, project management, etc.
ARCADIA (2014–2017) explores the development oh “highly distributed applications” (HDA), which it searches to optimally deploy and configure.
DREAMS (2013–2017) addresses the design of mixed-criticality systems, that is systems where functions with varying criticality execute on the same chip.
DIVERSIFY (2013–2016) explores synergies between Ecology and Software Engineering. We developed novel techniques to ‘diversify’ software systems at the architecture and code level, and in turn, increase robustness, security and other extra-functional properties.
REMICS (2010–2013) studied the migration of legacy service-oriented application to the Cloud, using model-driven engineering techniques.
CONNECT (2008–2012) explores interoperability solutions to automatically generate connectors between software pieces.
National Research Projects
CIRRUS (2015–2019) focuses on the customisation of cloud-based solution, initially designed for ‘on-premises’ execution. The aim is to build a Cloud-based multi-tenant platform, open for customisation.
SysLife (2011–2013) analyse maintenance information in order to better estimate the remaining lifetime and failure probability of components in power systems.
FAROS (2005–2008) studied how to compose software components using ‘contracts’ and model-driven technologies.