Download the PDF version
Software specialist with a solid track record in the design and implementation of systems used in banking, telecommunications, financial, e-commerce and social media networks. With a given domain and goal to reach, I compare and contrast differing solutions and consistently I take initiative while honoring commitments. I have extensive expertise through current and past projects and I am up-and-ready to lead in a variety of contexts. My professional background lay mainly on JVM based systems but as could be noted on my track record, I comfortably contribute on all spectrum of aspects in the product development. What I excel is on the ability to define strategic visions, continuously evaluating how the goals fit with the overall success and providing customer valued software. My competences stretch also in the realm of machine learning, particularly on creating innovative and highly demanded conversational applications by mastering natural language processing algorithms. I develop computational methods based on machine learning for solving business problems in novel ways.
SAP Hybris Labs
Implemented reinforcement learning and probabilistic programming libraries in Java/Scala. Ideated an automated negotiation system for finalizing E-Commerce deals.
Conversational Commerce is shopping through messaging apps, and I am making this alternative selling channel more efficient and usable than the traditional web. Users may search, purchase items, ask informations and leverage all other functionalities available in Hybris Commerce. I have covered the product management of Charly (the chatbot name) including ideation, envision strategies and I implemented all the required components and features. I personally run usability testing and customer-development activities for understanding users’ behavior and tuning functionalities in order to match user expectations and providing them a smooth shopping experience. The technical tasks have not just included the design and implementation of a microservice architecture but also exploration and implementation of cutting-edge services for natural language processing. Charly’s brain is managed by 4 different machine learning systems implemented and curated by me, including: reading comprehension for answering users’ questions, conversational models based on neural networks, products recommenders and named entity recognition systems.
SAP Innovation Center
I contributed to the architecture design of the SAP machine learning platform (SAP Leonardo), intended to allow customers to create their own ML services. As first architect in the team, I run a number of proof-of-concepts based on Apache NiFi, Mesos, Hadoop, SparkML, Zeppeling and TensorFlow. The machine learning pipeline coordinates complex phases such as data ingestion, features extraction, training execution, model versioning and persistence, and eventually the serving (or prediction, inference) service. Creating software systems means also know the domain, and I grab the chance for completing MOOCs on Coursera on machine learning topics like regression, classification and information retrieval.
I designed and implemented transport-layer libraries for helping developers on binding YaaS (or generally any HTTP Api) and the Hybris Business Platform in an easy and efficient way. The framework embrace the Reactor pattern for composing asynchronous HTTP calls. Users may greatly simplifying programs by using that framework thank to its declarative and boilerplate-less approach. It is built on top of Netty.io and uses RxJava with many features including control over throttling, timeouts, retries and fallbacks, transparent OAuth, seamlessly configuration.
I worked as core developer in the Core+ project, the library which provides a rich suite of services to support the rapid development of lightweight, business application inside the Hybris Commerce Platform. I was responsible for the proprietary ORM (Object Relation Mapping) along with NoSQL persistency support and clustered caching, which involved a considerable expertise on tuning, profiling and optimizing production ready systems.
Since Payco offers payment services for e-commerce web sites, I designed payment interfaces for integrating their platform within banks, especially in DACH region. I worked on enhancing the software infrastructure by means of Spring, hibernate and provided development facilities for creating micro-services to run in fault-tolerance environment.
The target goal for the company was to build internally a LIMS (Laboratory Information Management System) handling chemical sample lifecycle. I provided insights on architectural system design and I created proof-of-concepts for on a workflow engine within a peculiar company-specific DSL (Domain Specific Language). That Groovy based workflow engine improved labs efficiency by helping chemical analysts to compile acceptance criteria, according to customer preferences or compulsory regulations, without code change or any IT staff intervention. More than that, I setup a developing lifecycle comprehensive of continuous integration and delivery for support 5 members team.
I built from scratch a resilient and distributed messaging system for B2C and B2B SMS services. The system architecture was ascribable as micro-service constellation linked by means of ActiveMQ as EIP (Enterprise Integration Pattern). It exposed REST API for the company-owned web interface along as external customers’ clients.
Quinary was owner of a SMS platform deployed in Vodafone Italia since 2001. I was in charge to re-write it from scratch using the state-of-the-art technology. Due to the strict SLA (Service Level Agreement) the application was actually a set of micro-services glued by FioranoMQ, completely full-tolerant and scalable, contained in Solaris OS. The project succeeded with a fraction of time development of its predecessor, and it was 10 times faster than before. At that time I was involved on its after-hours monitoring and in 1 year of activity, I have been called in the middle of the night only 1 time because of a database failure.
The key point of Nimbuzz was to link heterogeneous chat protocols in one single mobile application. My principal objective was to create an XMPP server-to-server Java framework in order to replace ‘Smack’ (popular XMPP implementation at that time), no more suitable for the features demanded by Nimbuzz’s requirements. The new framework was used for helping developers interacting with Wildfire and later, for creating high-throughput REST Api service, designed and implemented entirely by me.
Ats was active in trading systems. They held a client-server, multi-market system that enables the simultaneous management of markets from a single application. I created the BrokerTec facility integration, enabling traders to access in real-time, trades of REPO market government securities. The contribution was not solely on interfacing a third-part Api, I ideated also a toolset that facilitated developers on creating business services simply providing proper XML descriptors. I used that declarative approach in order to decouple the underlying system out of functionality design.
I prototyped an evolution of T-Biz, the cruise product of Abla Srl, an integrated platform for IVR (Interactive Voice Response) for voice automated solutions. The new version supported VoiceXML as dialog model and MRCP (Media Resource Control Protocol) for interacting with the voice-recognition/text-to-speech server. I created the VXML interpreter and binded MRCP with a framework of my own implementation, including audio streaming with Real Time Protocol.
I joined the beta-program of IBM’s RSA (Rational Software Architect) for getting support the up-to-date software on prototyping RSA plugins. The effort was for establishing an MDA (Model Driven Architecture) in Sec Servizi, the company which provide operations and technology services to 16 banks (at that time) in Italy. The project aimed to revolutionize the way of building software services giving in the hands of product manager a toolset capable of building system interactions and data structure. Managers can design services by literally drag\&drop UML items and then just let the application generating all runnable, and ready deployable, artifacts.