About me
I make
software easier
to evolve
I’m Marco, a senior full-stack engineer with more than seven years of professional experience, currently working at Zupit as a software engineer.
My work is strongest in the .NET ecosystem: backend development with C# and modern .NET, frontend applications with Angular and TypeScript, SQL databases, and cloud-hosted business software. I also contribute to the work around the code—reviews, technical discussions, release coordination, mentoring, and decisions that keep a system maintainable as it changes.
01 · How I work
"Make the change easy, then make the easy change"
I care about readable code, tests I can trust, and keeping the system maintainable over time. In my day-to-day work, this means thinking about boundaries, persistence, deployment and failure modes in addition to the feature itself.
I prefer a pragmatic approach over following the current hype. Sometimes the right move is to simplify an application: introducing seams, improving pipelines, make old code safer to change. Code reviews and technical conversations are part of that work, as are the less visible parts: coordinating releases, working with product owners and customers, and helping other developers find their way through a system.
02 · A T-shaped career
Making my way through different domains on all layers
My route into application development was not a straight web-development path. At NECSTLab during my Computer Science Engineering studies at Politecnico di Milano, I worked on FPGA-based high-performance computing and cloud orchestration. That research led to papers on FPGA acceleration and serverless computing, which you can find in my publications.
At e-Novia, I worked across industrial software and product contexts: C++ and C#, desktop applications, web systems, and projects in areas including IoT, automotive, robotics, and VR/AR. The variety was challenging, but it made me comfortable with different technologies and domains. I also learned how software is used in the real, physical world, not only in a browser.
Today at Zupit I work closer to the application layer, building and modernising business software with modern .NET, Angular, Azure services, SQL Server, and PostgreSQL. I still benefit from my earlier experiences, but now I'm focused on building software that is maintainable, reliable, and easy to change, all while keeping the user in mind.
03 · What I’m exploring
Learning is part of the job.
I’m continuing to grow as a senior engineer, with a longer-term interest in software architecture and systems engineering. I’m reading and experimenting around architectural trade-offs, observability, reliability, distributed-systems concepts, and the engineering practices that make complex software less difficult to change.
I'm currently exploring Rust as a bridge between product and systems engineering, connecting domain thinking and high-level abstractions with performance and low-level engineering. I like using a small experiment to understand a system from a different angle: for example, I built a simple load-balancer to understand Rust async and HTTP handling. I also regularly exercise with coding challenges. My projects and blog are where I keep those investigations visible.