Hi! My name is Enrico Campidoglio. I’m a programmer, speaker and author with a strong passion for quality and good old-fashioned knowledge sharing.

As of late 2017, I work as a freelance programmer, teacher and mentor helping teams develop software better. If you think I can help you, I'd love to hear from you.

My Mission

Let me start by telling you an interesting fact about me: I've been a scout for almost 10 years of my life. It was between age 9 and 19, so pretty much my formative years. In retrospect, it was a great experience, even though I didn't always think of it that way at the time. Anyway, you may have heard of Lord Robert Baden-Powell — he was a lieutenant general in the British Army who, in 1907, founded the Scouting movement based on the motto "Be Prepared". And being prepared is exactly what they teach you at the scouts.

Another thing you learn from being a scout comes from another of Baden-Powell's mottos: leave this world a little better than you found it.

A fleur-de-lis positioned on a trefoil, in the original Scouting colors chosen by Lord Baden-Powell

That idea always spoke to me because it gives meaning to so many things in life.

Eventually—and perhaps unsurprisingly—it even found its way to programming thanks to Robert C. Martin. Martin took it to heart and transformed it into a rule for professional programmers to live by: always check a module in cleaner than when you checked it out. The Boy Scout Rule was born.

Naturally, I'm a big fan of the Boy Scout Rule. So much so, in fact, that I like to apply it to more than just code: I apply it to teams as well.

When I join a project, I want to leave the team in better shape than I found it.

I've said it in the past and I'll say it again: as programmers, we can't possibly know everything. There's is simply too much information for any single person to absorb. So, if you do have some knowledge about a topic, it's your obligation to pass it on as much as you can to your fellow programmers. That's the only chance we have to grow in our profession: by sharing knowledge.

Now, I realize that not everyone has the desire or the inclination to be a teacher. That's fine. I, for one, love teaching and I think I'm pretty good at it, so I made it my mission.

What I Do

There are many ways to teach technical subjects. I started out in 2004 by teaching a Linux programming class in a local continuing education program. I was a consultant back then and that was my first real teaching job. I was excited. Although I would regularly lose my voice at the end of each day, I found the experience very compelling. So I kept at it. In the following years, I would hold many internal courses for private companies between my regular consulting assignments.

Eventually, in late 2017, I decided that teaching and mentoring was what I really wanted to do, so I made it my full time job by becoming a freelancer. Of course, I'm first and foremost a programmer, so I also write code both as part of my job as well as for open source projects.


I've been speaking at conferences and user groups events around the world since 2011. My talks are usually pretty technical, but I try to keep things interesting by squeezing in as much humor as I can. While doing that, I also learned that humor is an extremely local thing and that the line between laughter and tumbleweed is surprisingly thin. 😳


In 2008, I started this blog as an outlet for sharing narrower topics that wouldn't necessarily be enough for a talk or a course. Ironically, many of the ideas that I ended up presenting actually started out as blog posts. If you want to get a sense for what I write about, you're welcome to check out my most popular articles on the best-of page.


In 2015, I started producing online training for Pluralsight. You can find my curriculum of courses on my author page.

Open Source

Since 2011, I help maintain AutoFixture, an open source library for .NET that helps alleviate some of the friction experienced when doing Test-driven development by making it easier to generate test data.

I'm also the author of Cake.Curl, a cross-platform addin for Cake (C# Make) that allows you to transfer data to a remote URL as part of your build script using curl.

The Scout logo used in this page is created by User:Kintetsubuffalo and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported license.