All the opinions expressed here are my own and not of my employer.

I am a software developer, keen on understanding what helps organizations create excellent results with software.

I work as a Technical Principal for Thoughtworks Italia.

I used to teach at Università dell’Insubria.

I pursued a Ph.D. thesis on how to write programs (actually circuits) that are correct by construction, using mathematical techniques; my supervisors were Roland Backhouse and the late Pierangelo Miglioli. A few years later I found that Test-Driven Development answers the correctness needs I felt better than mathematical derivation.

I was lucky to be exposed to Extreme Programming early enough in my career. I helped organize three summer schools about agility, thanks to the help of my friend Federico Gobbo and the late Professor Elio Lanzarone. I was, and still am to some extent, active in the agile community.

I used to be a strong supporter of Ruby On Rails, but I then changed my mind about both Rails and Ruby. Today I think that Java, Go or Python are better engineering tools than Ruby.

I think that application frameworks in general make little engineering sense; I maintain the Awesome Frameworkless.

I love the Web as a platform; I think the best way to develop for the Web is to embrace its fundamental standards: URLs, HTML and CSS. Application frameworks that take away control about URLs and HTML from the developer (eg, Apache Wicket or Java Server Faces) are almost always a bad idea, as they generate websites that perform poorly and are bad Web citizens. Moreover, I think that JavaScript application frameworks often result in engineering disasters, leading to websites that cost a lot of money to build and maintain, become obsolete very quickly, perform poorly and are bad Web citizens.

Generating websites from server-side templates costs a fraction of a JavaScript SPA and can be made fast and more interactive with nimble libraries such as htmx.


This website is generated with Hugo, using the Hugo-Simple theme; it’s hosted on Github Pages.

Syntax highlighting is by the Modus themes, providing accessible contrast between foreground and background colors.

I used to host a Wordpress-based blog at /blog; however I got fed up with the need to maintain a database and a Linux server, so I dumped all the pages with httrack and replaced the Wordpress blog with a static copy. My new blog is managed with Hugo at /posts. I still write the contents of this blog with TextMate, out of nostalgia :-). Actually, TextMate works pretty well for authoring Markdown and HTML.

My previous teaching career was supported by websites at /so, /aw, /tai, generated with a bunch of Ruby scripts. In 2021 I dropped Ruby and replaced those websites with static copies, generated with httrack.

The first version of this website went live in 2001!