I'm a technology enthusiast working as a Web Developer since 2003.
I enjoy solving problems and designing elegant solutions that are
scalable, maintainable and, if needed, reusable.
Working across different environments, type of projects and roles made me appreciate
the importance of following best practices and good team work.
As a team leader I value everyone's opinion and I'm aware that there is always something
useful I can learn from others.
If you're a developer yourself, please find me on
STEEL May 2014 ‐ present
I joined STEEL as a Senior Developer and then moved into the position of Lead Developer.
Over these last few years, I've been:
Encouraging exploration of new technologies for both frontend and backend
Encouraging a collaborative environment and the use of open source technologies
Encouraging more structured and agile workflow
Working closely with the strategy team to identify new opportunities and solutions
A few examples of activities and projects I’ve been working on while at STEEL
Multi-tier Ruby on Rails platform
nginxmulti-domain ssl certificatejsonb
This platform allows a different templates/views and set of controller to be
used depending on the subdomain name(s) used to access the site.
The admin interface can be reached only by using the “main” domain
(via nginx configuration). The relevant configuration is loaded for each
domain and this makes it communicating with an external email marketing platform
using the correct APIs credentials.
Working on this project involved:
Finding a reliable method to handle a multi-tier application with Rails
Choosing PostgreSQL as the DBMS, also taking advantage of the JSONB field type for document-like data when appropriate
Setting up a Linux server on DigitalOcean with Ubuntu, rbenv and nginx (among the others)
Setting up a Wildcard + SAN SSL certificate (the platform runs on two main / second level domain names and unlimited third level domains)
Provide a simple set of libraries to allow the front-end to communicate with the third party APIs
Racegoers Club website
unit testingcontinuous integrationautomationstripe
The website allows users to register and purchase their membership and other services online.
The data is then sent to Salesforce CRM using a script provided by a third company.
My personal contribution to this project included database structure planning, managing
the salesforce integration with the third party company, integrating the bespoke shopping
basket with Stripe, automated unit testing covering the
critical bespoke components (Accounts, Members and Orders) and custom behaviours
implemented for communicating with the salesforce script.
I also created some other scripts / tasks to import the content of the old website
and manage members renewing via direct debit (from a CSV).
Bespoke style guide tool
bespoke tag parserpattern-drivenatomic design
I contributed to the development of a style guide tool based on the Silverstripe CMS.
The tool has been inspired by http://patternlab.io/ and the concepts of atomic design.
Its purpose is to allow different teams to have a visual representation of the different
components used to build emails. On this project I worked on a tag parser that allows
for "patterns" to be included inside other "patterns" also with opening and closing tags
that capture the content in between and the ability to pass parameters to the patterns
(a similar example can be found here:
Ruby utility scripts
After starting to develop in Ruby, I often used it instead
of Bash for shell scripting. Here are some examples:
A script that connects to SFTP using the SSH private key for authentication, downloads a CSV and import the records into a third system using an API (it actually supported three different sets of APIs corresponding to three different systems/platforms)
A script that reads the html files present in a folder and parses/replaces absolute images paths into relative by downloading the images and copying them into the output folder together with the modified version of the html
A script that reads a CSV with a list of Google Maps URLs and provide the signed version of them using Client ID and signing secret (private key).
I also worked on creating an early version of a client library for the SignUpTo REST APIs.
Captive Portal Splash Page
captive portalwifiserver side google analyticsemail validation
"Captive Portal" is a solution by Peplink that has been used by a client to set up a free WiFi access point.
I worked on the integration of the splash page with the "Captive Portal", on setting up server side tracking for Google Analytics and on checking the email address provided by the user against DNS records and temporary/disposable email domains.
Docker for local development
This started as an experiment but it has proven to be a really valid solution for local development.
Taking advantage of a
customised set of recipes
on Docker Images and of Docker Composer's ability
of mounting local folders within the images ("volumes") it has been possible to use
just a bunch of images across different projects. Not having to rely on a
virtualized environment made local development quicker and more enjoyable, while granting
a common development environment for the team.
The Frameworks Mar 2014 ‐ May 2015
At The Frameworks I've been working as a Backend Developer, also taking care of the automated testing and deployment of the many digital projects ran by the company. Most of the websites I worked on were based on Yii Framework, Drupal or Wordpress while PHP Unit and Jenkins were used for automated testing and deployment.
Docebo Sep 2009 ‐ Mar 2013
At Docebo I’ve mainly been working on an internal project, using the Yii Framework and other web technologies such as jQuery and CSS3, that allowed the platform to migrate to a Software as a Service (SaaS) model. In fact, that also included the creation of the platform automated installer.
In that period I've also contributed to the Docebo LMS helping in the development of its API and the integration with third party APIs and services. Other responsibilities, during my last year, also included managing a team of two remote working developers.
dotMill Mar 2003 ‐ Dec 2009
I ran my own business as 1-man web agency creating a network of partners and dealing directly with
customers in order to provide web hosting, web development and other services. Helping clients develop their own web identity taught me how to manage my time, manage and meet their expectations and deliver the best solution to fulfil their requests.
I also learned the importance of having my own time to rest, study/improve my skills, do some sport, have fun with family and friends, etc. so that I can be more productive during my working hours.
I was born in Italy 38 years ago from Dutch father and British-Italian mother.
I moved to the United Kingdom in 2013 and later became a British Citizen. In 2016 I became a dad, needless to say,
a very important moment in my life.
I usually don't drink coffee, however music is for me a very powerful stimulant and a big part of my life.
I prefer a quiet working environment but when I get the chance of putting my headphones on, I enjoy listening
mainly to rock & metal. I also used to play the bass guitar and a bit of keyboards.
On my free time I like to do different activities (from cycling or swimming, to yoga and martial arts) and playing video games.