Career ProfileScala/Java programmer with a passion for creating elegant solutions. As a backend programmer with 5 years of career experience I have been able to create fast and reliable applications. I am a self learner: I have been able to start a career as a programmer despite it not being the core of my academic education. In my training as a physicist I have acquired skills that allow me to have a different view of the problem to solve, quite unique among developers. I am a Scala enthusiast, willing to contribute to the OSS community. In my spare time, I keep studying both to enhance my main knowledge and to open up to new libraries/technologies, striving to become a T-Shaped developer. Currently in love with Cats and all the other Typelevel’s projects.
Data Architect Specialist
In order to improve performances and fault tolerance I redesigned an application that was heavily relying on Avro serde, converting the whole process in a Array[Byte] => Array[Byte] mapping, clustering it using Akka plus its Grpc communication module and deploying it on Google Cloud Platform.
I implemented an optimized MySql to Vertica replicator that reads and deserializes binlogs discarding the useless operations. It uses ANTLR to parse the MySql grammar to create the AST used as internal representation for the DDL statements. The internal data structure used to hold DML transactional data is an Adaptive Radix Tree.
Every project was developed in conjuction with at least one junior colleague, in order to mentor about Scala, FP, cloud technologies, application design, etc.
Scala Software Developer
For a telco customer I contributed to the development of a real time radio towers’ kpi monitoring application using Spark and Scala. The application main goal is to process a big amount of data to check if some quality threshold has been exceeded and to raise an alarm. Using Cats to implement the validation logic and functional error handling of the configuration companion microservice has been the most intriguing challenge.
I built a POC using Kafka Streams Scala API to monitor and process in real time a WebSocket channel of geolocalized events to produce aggregated information and metrics.
Java Software Developer
I have been solely responsible for the development of more than 10 Microservices using Spring Boot. This microservices represented the connection and orchestration layer between a custom search engine platform deployed on Kubernetes and the data processing layer developed using Spark and deployed on Mesos. Every customization of the multi tenant application had to trigger a Spark job responsible of producing Lucene indexes whose search engine custom search was based on.
I participated in the creation and design of a data parser that included an HTML crawler/spider using Akka to gather metadata to be used as search engine indexes.
Big Data Analyst
I was the responsible for the design, installation and the maintenance of IBM Watson Explorer Products (the entire BlueMix Suite) for banks, pharma and telco customers.
I have migrated 10000+ store procedures from Microsoft SQL Server 2008 to IBM PureData for Analytics for a client, in order to reduce query execution times by 3 orders of magnitude.