Believe it or not, I've been up to quite a bit over the years. Here's a more detailed account of my professional journey than what you might find on LinkedIn.
For some reason, PDFs are still all the rage for resumés, so here's where you can get mine.
Download PDFPh.D. in Information Engineering
2011 to 2015, Università degli Studi di Padova, Italy
Master's Degree in Information Engineering
2007 to 2009, Università degli Studi di Padova, Italy
Bachelor's Degree in Information Engineering
2002 to 2007, Università degli Studi di Padova, Italy
Principal Software Engineer - Freelance
Since January 2024 - Remote and in Berlin, GermanyCannot say much as I've signed an NDA, but I'm working on a TV app project in React Native. In this role, I'm training engineers new to the technology, reviewing PRs, organizing pair programming sessions and workshops, and sharing my knowledge of the React Native world. I also write code, primarily to improve the Developer Experience and to help build better processes, with a focus on performance and testing.
Senior Frontend Developer at JustWatch
From February 2021 to March 2024 - Remote and in Berlin, Germany
JustWatch is one of the largest streaming guides in the world, helping millions of users each month find what to watch and where. I rewrote their mobile apps from scratch in React Native and led the mobile team for about a year.
To support the new app, I built a new Design System and Component Library using Storybook. An in-depth analysis of how these were developed from a designer's perspective is available on Clara's website, and you can watch my talk at the React Native Berlin Meetup about this topic. I also created an interesting little React + Node.js based tool to proxy Snowplow events using Websockets so that they can be inspected from a Desktop browser, even when sent from mobile devices.
Before that, I revamped their TV apps, also using React Native, migrating the codebase to TypeScript and enhancing performance. This upgrade made it possible for the apps to run on lower-end Android TV sticks, as well as on Samsung and LG TVs. I developed a "Play on TV" feature that connects the TV Apps with the older Vue-based mobile apps. This feature was later ported to the new apps as well, and uses either Google Cast or the SSDP protocol (for Roku devices), with a fallback to GraphQL Subscription-based Websockets for broader compatibility.
Senior FullStack Developer at URBI
From March 2017 to February 2021 - Berlin, GermanyURBI is a shared mobility aggregator that guides its users through the maze of car, scooter, and bike-sharing offerings in their cities. I initially worked on the Spring Boot-based backend and later transitioned to rewriting their mobile apps from scratch in React Native. Additionally, I developed a B2B dashboard using React for the frontend and Spring Boot + Kotlin for the backend. I also created a React Native prototype for a digital wallet app designed to manage driving license validation on the Ethereum blockchain.
FullStack Developer - Freelance
From July 2016 to March 2017 - Remote and in Veneto, ItalyI developed a full-stack application using React and Flask to interconnect multiple monitoring systems—such as sensors, cameras, variable message signs, traffic lights, and weather stations—into a single administrative interface. Due to an NDA, I cannot disclose the name of the company for which I completed this project. The application was used, and possibly still is, to manage a section of Italy's highway infrastructure.
Cofounder at SketchTogether
From January 2014 to December 2023 - Remote and in Orange County, California
SketchTogether was a real-time collaborative whiteboard designed to help teams quickly jot down ideas, with a focus on minimizing mode-switching as much as possible. Users could circle parts of their sketches to quickly select elements, move them around, clone, or edit them.
Despite a loyal user base that allowed us to keep SketchTogether afloat after shifting our focus away from it in 2017, we decided to sunset the product in December 2023. This decision was due to the availability of more modern apps and our lack of resources to invest in the project.
I developed the Java backend application, managed the infrastructure on Google Cloud, and designed the web app, which was implemented in AngularJS by the other co-founder. I also contributed to the web development later on and added some Python microservices to support new features.
PhD Student at Università di Padova
From January 2011 to April 2015 - Padova, Italy (and Irvine, California)
I initially worked on setting up a 16-node cluster based on high-end desktops connected by 10G-Ethernet, developing an administrative tool based on Gluster. I met with several scientists from the Engineering, Physics, and Astrophysics fields and helped them learn how to run their computational heavy tasks on this new cluster.
Since the project was struggling to take off, I completely changed the subject of my thesis to developing an Android tablets-based solution for dermatologists to organize their skin lesions mapping sessions. Together with dermatologists from the Univeristy of Padova, we came up with a novel streamlined process to speed up and standardize their current practice, now supported by a new Android app I built with 3 other grad students.
During my PhD, I spent 4 months at University of California, Irvine, where I worked on an Android prototype for Calico, a sketch-based design environment that we later on took as theoretical basis for SketchTogether, the startup I co-founded with the PhD student that was leading the project.
Security Consultant at Reply
From November 2009 to December 2010 - Bergamo, ItalyI worked as a Sysadmin with development benefits at UBI, an Italian banking and financial group. There, I developed monitoring tools to ensure the smooth operation of their IBM-based Identity and Access Management infrastructure. Additionally, I created a Vaadin-based web application to manage the setup of internal web applications.
- TypeScript
- JavaScript
- Python
- Java
- Kotlin
- Bash
- Some Lua
- Some Swift
- Some ObjectiveC
- React Native
- React
- Some Svelte
- Spring
- Spring Boot
- UNIX Sysadmin
- Some Devops
- Redis
- Postgres
- MySQL
- …and more