I'm Diego,
a passionate senior software engineer, born and raised in Italy 🇮🇹, currently living in Belgium 🇧🇪
I enjoy writing software using primarily Scala and functional effect systems such as ZIO.
Why Scala?
Because it's a statically typed, concise, expressive, JVM-based language(*), that allows you to program in both imperative and functional styles. It's the ideal language to onboard junior SWEs into a one that is less cumbersome and requires less boilerplate than Java, while still being able to leverage all the libraries and frameworks from the Java ecosystem. It makes functional programming paradigms available in a non-intrusive way, giving the developer the choice to mix and match the two styles as they are most comfortable with.(*) although there are projects like scala-js and scala-native that bring Scala respectively to the Web and bare-metal world.
Why ZIO?
Because we live in an increasingly cloud-based world, where it is critical to write high-performance, resilient, concurrent and asynchronous applications. ZIO enabled developers to seamlessly write concurrent and asynchronous code with little overhead, by composing easy-to-understand simple building blocks. Say goodbye usingFuture, ReentrantLock or Semaphore, and focus instead of what matters the most for your business.
I am plagued by the "having more ideas than free time" syndrome: I start a project, reach a point where I get the gist of it, then lose interest because "I know how to get there, if I need it" 🥲
However, in the past years, I began to force myself into completing the projects I started, such as:
- redacted, a Scala
3.xand2.xcompiler plugin that prevents leaking sensitive fields defined inside case classes. Just annotate them with@redactedand boom, no moreemail,age,apiKeyor any other PII/GDPR related data will be printed by mistake in a log or serialised into a response. It is used in the Company I'm currently working with, InvestSuite.- sbt-redacted, the plugin for sbt that does all the project configuration for you, setting the compiler plugin and injecting the correct dependencies.
- neovim-idea: a highly customized neovim setup that is aimed to resemble the UI/UX IntellIJ Idea as much as possible, with a focus on Scala and Java development.
On the scrapes of leftover time, I like to review technical books at Manning, and also try to contribute back to OSS by submitting patches and improvements.
| Period | Company | Details |
|---|---|---|
| 2023 / - | InvestSuite | Scrum Master & Sr. Scala Engineer of the Robo Advisor product |
| 2021 / - | InvestSuite | Sr. Scala Engineer, building the Self Investor & Robo Advisor products |
| 2019 / 2021 | ReStore / Centrica | Sr. Scala Engineer, helping balancing the Energy market in EU and Japan |
| 2017 / 2018 | Noesis Solutions | Sr. Scala Engineer, rearchitecting the original software to allow customized variations based on client's needs |
| 2015 / 2017 | Noesis Solutions | Scala Engineer building a web-based PIDO software |
| 2012 / 2015 | SimNumerica | Java Engineer, full time, building a co-simulation software for embedded CPUs |
| 2010 / 2012 | SimNumerica | Java Engineer, part time, building a co-simulation software for embedded CPUs |
| Summer 2010 | Google & KDE | C++ developer, working on authenticating Plasmoids by using GPG keys |
| Summer 2009 | Google & KDE | C++ developer, working on PlasMate, an editor for KDE's plasmoids (aka widgets), runners and data engines |



