Work experience
-
Jul 2022 – ongoing
Engineer manager: FreeAgent
-
Aug 2020 – Jul 2022
Senior software engineer: FreeAgent
FreeAgent is a web application that simplifies accounting for small businesses, sole traders, and their accountants. I am working on the integration with bank services, including Open Banking APIs, and the early experience of new customers. My work includes analysis and specification of new projects, prototyping, aligning with other teams in the company and third parties to deliver more complex features.
The application is built on Ruby on Rails and HotWire technologies, giving me the chance to learn a new stack and bring a diverse experience to process and implementation.
-
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.
-
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.
-
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
Lab assistant for the Fuzzy Logic and Evolutionary Computation course, at the Informatics department of the University of Genoa, Italy.
Education
-
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.
-
Jul 2005
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.
-
Jul 1999
High school diploma — Savona, Italy
Five-years scientific diploma (mark 100/100), experimental course in Informatics.
Languages
Italian | mother tongue |
---|---|
English | fluent |
Norwegian, Swedish | basic knowledge |
Japanese, French | limited knowledge |
Skills
- Programming languages
- C/C++, Java, PHP, Python, Shell and Batch scripting
- Web related languages
- CSS, HTML, JavaScript, React, TypeScript, Vue
- 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.