I've been a consultant since early 2002. During the past 17 years, I've joined teams of all sizes to help them develop software for their customers.
My focus has always been on delivering value by infusing on the team the concept of code quality and fast feedback cycles.

I'm a strong believer in continuous improvement. I'm always on the lookout for new things to learn that will help me get better at what I do. Once I learn something, I love sharing that knowledge with others. In fact, I made teaching and mentoring my mission.

If you're part of a team of developers who is looking to improve their skills in one of these topics, I might be able to help. Here's what I can do for you.

On-site Training

When you first approach a new topic, it's easy to feel overwhelmed by the sheer amount of information available to you. It's hard to know where to start. In those cases, the easiest way to jump-start your learning is it to have someone come in and point you in the right direction, help you separate the signal from the noise.

The best way for you to learn depends on your needs and how much you can fit in your schedule: it might be enough with just a 1 hour presentation (maybe combined with a breakfast seminar or during lunch break) or you may want to have a full-day workshop. I deliver both kinds of training on any of the topics I specialize in.

If you want to get a sense for my areas of expertise and my teaching style, you're welcome to head over to the speaking page and have a look at some of my previous presentations.

If you're interested in having me for a full day of training, you're welcome to check out my current workshops and see if you can find something that suits your needs.

Teaching by Doing

Traditional classroom training is a great way to get you started on a topic but it can only get you so far. Once the workshop is over, it's up to you to continue your journey by finding new ways to learn. Being in training also means being away from your project. This alone can seriously limit the amount of time you are able to invest.

So, here's my idea:

What if, instead of choosing between training and productivity, you could have both.

How? By having me join your team for a while. During that time, I'll be actively working on your project while, at the same time, I'll be coaching the rest of the team in the topics you care about. I call this teaching by doing — I'll teach you how to do something by actually doing it together with you.

In my experience, this is the form of learning with the longest impact, giving teams the best chance to grow and actually change the way they work.

My role on the team doesn't have to be fixed. I've worked on client projects building business applications for more than 15 years. The majority of these applications were built on the Microsoft .NET platform but there were times when I would use Java instead. In recent years, I've focused a lot on building REST APIs using ASP.NET consumed by HTML/JavaScript frontends.
I've also specialized in building and maintaining a continuous delivery environment, both on Windows as well as on Linux. If your team has a DevOps culture, that's an even better match in my book.


Regardless of how you choose to learn, here's the list of topics I specialize in and will gladly teach you.

  • Git and how to work with it in a team
  • Object-oriented design and architecture
  • Designing RESTful APIs
  • Developing web applications on the .NET Framework or .NET Core with C#
  • Implementing and maintaining a Continuous Delivery pipeline
  • Writing readable and maintainable automated tests with C# or Java
  • Test-driven development, again with C# or Java
  • Code reviews and how to make them part of your development process

If you're interested in learning or improving your knowledge in one of these areas, get in touch. You'll find my contact information below.


Do you want me to speak at your company or event? Are you interested in hiring me? If so, I'd love to hear from you. Here's a few different ways you can reach me.


By far the easiest way to start a conversation with me is by sending off an email. The address is [email protected].


Twitter is great if you just want to ping me about something specific. For example, you may have a burning question about Git and would like me to take a look at it. You can also DM me, if you prefer. My handle is @ecampidoglio.


If you're on LinkedIn, you can always send me a message there. Here's a link to my public profile.

The image used at the top of this page is a modification based on a photo kindly licensed by the Techorama conference.