Technical Leader focused on software architecture, distributed systems, data, and AI.
I currently work as a Domain Tech Lead at Prima, where I drive the technical strategy and architecture of a domain spanning Antifraud, Data, and AI.
With a background in software engineering, platform architecture, and engineering management, I write about software architecture, technical leadership, distributed systems, data engineering, and the trade-offs behind building reliable systems.
I care about technology that solves real problems — not technology for its own sake.
If you’re interested in engineering, architecture, data, or simply thinking deeply about how we build software, connect with me on LinkedIn.
I write short, high-density notes on technical leadership, delivery reliability, and practical system design for SaaS teams.
MVP: Stop Shipping Features, Start Killing Risk Most teams don’t fail because they ship too slowly. Speed is rarely the real villain. In fact, many teams move fast, hit deadlines, close sprints, and still end up nowhere meaningful.
They fail because they ship the wrong thing with high confidence.
That’s the dangerous part. Not ignorance, but confident ignorance. Polished features. Clean architecture. Well-run ceremonies. And underneath it all, an assumption that was never truly tested.
...
Originally published on Medium: https://dariodip.medium.com/prepare-for-the-psm-i-using-scrum-f51b67f1a07e
Introduction In the fast-paced world of project management and software development, staying relevant and competitive requires continuous learning and adaptation.
Since September 2021, I have been working at Prima, a company that utilizes Scrum to manage projects efficiently.
In January 2023, I was promoted to the role of Engineering Manager, overseeing a dedicated team. As I took on this new leadership position, I felt the pressing need to deepen my knowledge of Scrum, not just as a project management methodology but also as a valuable tool for personal and professional growth.
...
Originally published on Medium: https://dariodip.medium.com/introduction-to-domain-driven-design-ddd-24a62cb6472d
Designing software nowadays can be such a tough job, we know. Software complexity has raised and it is still raising reaching summits above the havoc. All this wave of fear and destruction and fire and chaos can be stopped with a proper software design strategy.
Designing and developing software is something that must have to do with solving problems that customers have. However, sometimes the domain of the problem we are trying to solve is very complex and this can lead to difficulty in communication between developers and stakeholders.
...
Originally published on Medium: https://dariodip.medium.com/rust-fear-love-hate-love-disillusion-fa9f6f05b54e
My journey through Rust was very tortuous and tormented. During this article, I want to retrace my steps towards the discovery of that amazing programming language.
First encounter: fear When I was at the university, a colleague of mine and I have been started working on a project for the course of Data Compression. That was something very low-level and bitwise. We already knew a bit of C, Java, Python, and JavaScript. Every of those, except C, were not suitable at all to work with bits, and since we don’t want to work with C anymore, we decided to pick a brand new programming language (the worst idea ever when you have to finish your project as soon as possible).
...
Originally published on Medium: https://dariodip.medium.com/find-duplicates-like-a-boss-f46422f54dd1
The exercise of finding duplicates in a list is a classical example of a didactic problem that you may find during your journey through learning algorithms. During this post, we will try solving this problem using different algorithms, showing the differences between each one.
This article has been mainly written for fun and as a writing exercise. Its main purpose is to show different solutions to a single problem, explaining the reasoning behind certain decisions.
...
Originally published on Medium: https://dariodip.medium.com/understanding-linux-containers-a-simple-recipe-7c24cc1137b4
What is a container? Actually, it is not a real thing.
In this post, I will try to explain what containers are and how they work, decomposing them and understanding their components, without going too deep in some concepts which require a way long explanation than the one I could give in a single post.
Currently, there are many technologies for containers (e.g. Docker, containerd, runC and so on), but this post is not going to talk about them and therefore, will be (almost) technology agnostic. This does not mean that you should take this information for implementing your own containers in production (this is totally insane, even if you are a nerd 😃).
...
Originally published on Medium: https://dariodip.medium.com/go-embed-unleashed-1eab8b4b1ba6
One of the reasons why I love Go is that Go compiler creates static binaries by default unless you use cgo to call C code, in which case it will create a dynamically linked library.
It makes it easy to ship Go programs, create very lightweight Docker images and exploit cross-compiling and plugins.
Starting from Go 1.16, it also gives you the opportunity to ship your own “batteries” using the package embed.
...
Originally published on Medium: https://dariodip.medium.com/false-sharing-an-example-with-go-bc7e90594f3f
False Sharing — An example with Go Diving in multiprocessor programming is never easy, I know. Unfortunately for you, you should understand much about computer architecture to do it effectively.
This post will go deep into computer architecture, trying to explain one of the most insidious problems that we may encounter when we do multiprocessor programming: false sharing.
False Sharing: an example in Go Let’s implement a simple counter interface.
...
This page has been migrated to Medium In this post I will write down a list of technical books, articles and podcast that I find interesting. I hope that someone will find it interesting as for me.
Not all the books I’ve read are listed here, only the ones I would like to suggest.
Technical Books I’ve read Designing Data-Intensive Applications This book is the one you MUST read if work with data. Since data is everywhere in modern software engineer, everyone must read it.
...
Introduction This page has been migrated to Medium In the previous post we introduced basic aspects of Ansible. Now we’ll talk about some advanced features.
Loops Another way to describe the tools of the Ansible family can be Infrastructure as code. This is the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools.
The word code brings an important aspect with it: loops.
...