Aug 2020 – ongoing
Senior software engineer: FreeAgent
Dec 2018 – Jul 2020
Senior software engineer: QikServe
Full-stack position developing payment solutions for the food & beverages industry. I worked on front-end applications based on React, API services built on the Spring Java framework, and integrations with mobile wallets and payment providers.
I pushed to balance between the complexity of a microservices architecture, and a simple codebase that a small team can grow and maintain. I lead efforts on Continuous Delivery, security, and documentation.
Nov 2016 – Jul 2018
Senior software developer: Textensor / Annotate / Opus 2
Multi-faceted role working on virtual data room products. My responsibilities included large scale refactoring of the existing codebase (PHP and Java) to increase modularity and reusability, work on infrastructure and migration scripts (Python), and front-end improvements.
A large slice of my time was spent working with junior developers, helping with company-wide training, and maintaining documentation. I also developed shared libraries, tools for static analysis, and worked with product managers and designers to shape new product features.
Apr 2016 – ongoing
PHP and Front-end developer: Rencounter Krav Maga
Design and development of a web-based members database system for a self-defence school. The system, built as a mobile-first web application, allows multiple instructors to track member attendance, record progress, and share a calendar of classes and events. It also handles event bookings and contact information.
Sep 2014 – Oct 2016
Senior software developer: GFI Software / LogicNow
Front-end and back-end developer working on MAX ServiceDesk, a cloud-based PSA product. Responsible for introducing a component architecture and responsive foundations during the UI redesign.
Beyond developing new features, I worked on refactoring the existing codebase to improve auditing, introduce automated tests, and upgrade the database structure to ensure scalability. I followed and mentored junior developers and supported management in design, technology and architectural choices.
2007 – 2014
PHP and Web developer: GeMUN Conference Management System
Design and development of a database-supported registration system, extended over the years into a full Conference Management System for the “Model United Nations” event organized by the FULGIS Foundation in Genoa, Italy.
2011 – 2013
PHP and Web developer: EMNLP 2011-2013
Development and content support for the conference website and CMS, which I originally developed in 2008 for the Association for Computational Linguistics. Additional design work for conference material and awards.
May 2012 – Sep 2012
PHP and Web developer: Research equipment database
Design and development of a web interface to collect, edit, and search information about scientific equipment acquired by the several Schools of the College of Science & Engineering of the University of Edinburgh, UK.
Oct 2011 – Jun 2012
PHP and Web developer: ICML 2012
Design and development of a CMS and website for the annual conference organised by the International Machine Learning Society. The project included an experimental graphical interface for reviewers and conference chairs to support the decision-making process for paper awards.
Oct 2010 – May 2011
PHP and Web developer: AAMAS 2011 Proceedings
Development of a custom web interface for the database of papers to be included in the conference proceedings. Used internally at the University of Edinburgh, UK.
Jan 2010 – Aug 2010
PHP and Web developer: Building information screens
Design and development of contents, UI and back-end for large 'kiosk' touch-screen panels located in the Informatics Forum at the University of Edinburgh, UK. The system offers interactive maps of the Forum, rooms and staff search, and information about events in the building.
Aug 2008 – Oct 2008
Python and Web developer: EMNLP 2008
Development of a reusable, modular layout and a simple CMS for the Association for Computational Linguistics. Written in Python, the system has been in use for seven editions of the EMNLP conference.
2007 – 2010
Teaching Assistant and Tutor
Teaching assistant and tutor for undergraduate and graduate AI courses at the University of Edinburgh, UK. Responsibilities included giving lectures, preparing and marking assignments, and guiding tutorials.
Sep 2007 – Mar 2008
Java developer: Lambda Workshop
Design and development of a graphical interface for lambda calculus, extended for 2D graphic operations (e.g., fractals). The software was developed under the supervision of Philip Wadler at the University of Edinburgh, UK.
Oct 2005 – Jul 2007
C++ developer: CoCoA project
The CoCoA project is a programming language and library for mathematical applications, developed in collaboration between the University of Genoa, Italy and the University of Dortmund, Germany. Hired as an external developer, I worked on a major refresh of the CoCoA language, designing and starting the implementation of the new C++ interpreter, actively participating in the decision process for the new syntax and semantics.
Oct 2004 – Feb 2005
Lab assistant for the Fuzzy Logic and Evolutionary Computation course, at the Informatics department of the University of Genoa, Italy.
2007 – 2011
PhD in Computer Science, not completed — University of Edinburgh, UK
I worked on multi-agent reinforcement learning under the supervision of Michael Rovatsos. Although the research was mostly completed, I decided to put the PhD on hold before starting the final write-up.
MSc in Computer Science — University of Genoa, Italy
Final dissertation on “Diversity Generation in Neural Network Ensembles” (110/110 cum laude). Completed a five-years degree at the Department of Informatics and Information Science (DISI), specialising on software and hardware architectures.
Sep 2003 – Jun 2004
Erasmus exchange programme — University of Edinburgh, UK
One year of studies at the Informatics and Artificial Intelligence department, attending specialisation undergraduate and MSc courses.
High school diploma — Savona, Italy
Five-years scientific diploma (mark 100/100), experimental course in Informatics.
|Norwegian, Swedish||basic knowledge|
|Japanese, French||limited knowledge|
- Programming languages
- C/C++, Java, PHP, Python, Shell and Batch scripting
- Web related languages
- Other languages
- Latex, SQL
- Automation and cloud technologies
- AWS, Docker, Jenkins, Kubernetes, Maven, Terraform
- Programming environments
- Vim, Visual Studio, IntelliJ, Eclipse, GNU/Unix tools
- Operating systems
- Windows and Linux, in different environments (VM, personal computers, servers and networks), both from the architectural and the user point of views.