My name is Andrea, and I’m a senior software engineer at TrueLayer.
I spent the majority of my career as a backend engineer, with a focus on designing and building APIs, especially in the payments area. I've also matured interests and skills in the DevOps/EngOps fields, and I'm familiar with cloud providers, AWS in particular.
I have a solid background in delivering backend solutions, in the context of distributed systems and microservices, usually built on top of Java, Rust and .NET stacks. I'm used to work with cloud native applications released on Kubernetes or similar cloud based orchestration systems. I'm CKAD certified and an AWS Certified Solutions Architect (associate).
I occasionally work as consultant for small startups and sometimes contribute to open source projects.
A few months ago I started writing my blog, which I use to share fun facts about what I do or just as an excuse for learning something new.
Experience
04/2020 - Present | TrueLayer, Senior software engineer
I initially joined a connectivity team (UK and Ireland), where I spent most of my time at improving the codebase and onboarding new payments capabilities, based on the OpenBanking standard. Then I moved to product development and I was one of the first members of our Recurring Payments team, whose mission is to abstract the complexities of OpenBanking VRP, BACS Direct Debit and SEPA Direct Debit into a single recurring payments solution. Since January 2023 I moved to a customer onboarding product called Signup+. As an extra activity, I'm the main contributor of our official Java client library for payments.
Focus:
- Infrastructure migration and optimizations
- Public facing or internal API design and implementation: REST, gRPC, GraphQL
- Operational excellence: On-call rota shift and practices setup/review, SLO based alerts
- Official Java client library to integrate TrueLayer Payments API
Main technologies:
- .NET Core, Rust, Java
- Prometheus, Grafana, PostgreSQL (Aurora), DynamoDB, Redis
- Kubernetes(EKS), Terraform, Vault, Helm, CircleCI, Github Actions, AWS
- Kibana, Honeycomb, Quicksight, Athena
05/2019 - 04/2020 | DIMOCO, DevOps, Senior software engineer
At the time I joined the engineering group was focussed on getting a new payments API live. I joined full-time a DevOps team which was responsible for automating end to end and UI tests on physical mobile devices involved in carrier billing products, connected to servers located in diverse geographic areas. This testing was critical to gain confinde For a limited time, I also contributed to the main payments product team and supported the go live operations required for a new version of the main payments API.
Focus:
- Moving existing UI testing flows for carrier billing to headless instances on Kubernetes
- Developed an API translation layer that helped accepting traffic on the new architecture without breaking existing integration with the old API
- Continuous integration and deployment improvements
Main technologies:
- Java, SpringBoot, Groovy, Grails, Selenium
- Prometheus, Grafana, Redis
- Kubernetes, Helm, Bamboo CI
01/2017 - 05/2019 | Vipera Plc / Fabrick, Software engineer, Tech lead
Joined as a backend engineer. I contributed to the company's platform and extended that to fulfill the needs/requirements of different customers in the area of online banking and retail. I matured an extensive production experience on the AWS cloud.
In my last year I worked as tech lead on one of the most critical projects for the company for a customer in the UAE.
Focus:
- Payment platform backend development, APIs and internal modules
- E-commerce and geo-proximity verticals development for backends and mobile devices (native or hybrid)
- Online banking platform replacement for one of the main UAE customer
Main technologies:
- Java, Java OSGi, Android, React native
- MySQL, PostgreSQL, MS SQL Server, Redis, MongoDB
01/2014 - 01/2017 | Codd&Date, Software engineer
After my apprentice period, I transitioned at full time to backend engineer role. I mostly worked on Java stacks for customers in the retail business area. I matured a few minor experiences with .NET and Node.JS based frameworks. I had the chance to work both on SQL and NoSQL data stores.
Focus:
- Improving my expertise in backend development
- Maintaining and evolving backend solution for our customers, usually in .NET or Java
Main technologies:
- Java, Javascript, Android, React
- MySQL, Redis, MongoDB
11/2013 - 01/2014 | Codd&Date, Apprentice
I dipped my toes in software development in general, touching both frontend (web and mobile) and backend development.
Courses and certifications
07/2023 | Advanced Learning Algorithms, DeepLearning.AI
DeepLearning.AI course on neural networks and decision trees. Iteration of the previous course, focussed on the use of neural network and decision trees and ensembles in the context of supervised learning.
06/2023 | Supervised Machine Learning: Regression and Classification, DeepLearning.AI
DeepLearning.AI course on supervised algorithms. My personal introduction to Machine Learning.
04/2023 | AWS Certified Solutions Architect - Associate
Amazon Web Services official certification to prove the ability to design secure, high performing and cost optimized solutions on the AWS Cloud.
12/2022 | LFC131, Green Software for Practitioners
A course delivered by The Linux Foundation on the basic principles and glossary of Green Software Engineering.
09/2021 | The Principal Developer
A course delivered by Principal.dev, meant for experienced software developers or tech leads interested in exploring or strengthening team planning and leadership related skills.
07/2021 | Distributed Systems Design Fundamentals
Course held by Udi Dahan and delivered by Particular Software on software design fundamentals in distributed environments.
01/2020 | Microservices Fundamentals
IBM course that offers a theoretical introduction to microservices and their implications.
12/2019 | CKAD, Certified Kubernetes Application Developer
The Linux Foundation official course for Kubernetes application developers.
06/2018 | IBM Blockchain Foundation for Developers
Blockchain fundamentals course offered by IBM.
06/2015 | M220J, MongoDB for Java Developers
Introduction to NoSQL and MongoDB for Java developers offered by MongoDB University.
Education
2010 - 2013 | Politecnico di Milano, Computer engineering
2005 - 2010 | Liceo scientifico Vittorio Veneto, Milano
A bit more about me
When I’m not using my laptop, I like cooking and doing sports, football, tennis, ski and workouts being my favourites. I love living my city spaces either on my own or along with friends: cinema, parks, pubs, wineries and restaurants. I like listening to music, especially rock, blues and soul music.
I like reading during my focus time at work or in my spare time when I'm off. A few books/feeds I recently enjoyed:
- Job related:
- Grokking Algorithms, Aditya Y. Bhargava
- Building Microservices: Designing Fine-Grained Systems, Sam Newman
- Microservices patterns, Chris Richardson
- A Philosophy of Software Design, John Ousterhout
- Designing data-intensive applications, Martin Kleppan
- The Rust programming language book
- The Pragmatic Engineer
- Marc Brooker's blog
- Others:
- Open, Andre Agassi
- Factfulness, Hans Rosling
- Shoe Dog, Phil Knight
- Apropos of Nothing, Woody Allen
- Shantaram, Gregory David Roberts
- Sapiens: a Brief History of Tomorrow, Yuval Noah Harari
- Homo Deus: a Brief History of humankind, Yuval Noah Harari
- Wohpe, Salvatore Sanfilippo