I am a software engineer, software development / technical agile coach, and trainer with Industrial Logic. I am a founding member and organizer for PhillyXP. I’m a blogger, and speaker with 22+ years of experience in the software industry. I have specific expertise in:

  • Leading and coaching software teams
  • Coaching Software Engineering leaders
  • Helping organizations structure their teams around value delivery
  • Mentoring developers
  • Improving development processes and practices for cross-functional development teams
  • Test-Driven Development (TDD)
  • Microtesting / Unit Testing
  • Agile / Extreme Programming (XP) practices
  • Pair & Mob Programming
  • Legacy code rescue
  • Agile training creation and delivery

My passion is helping software organizations and their teams create better outcomes for their customers, improve the quality of their code, and help make work a joyful experience. A listing of my talks can be found here.

I graduated from Drexel University with a degree in Computer Science. You can learn more about me here.


17 Nov 2021 . code craft . Programming By Coincidence Comments

Programming by Coincidence is a common programming practice that presents an obstacle to team learning and technical excellence. It’s important to learn how to spot it and reverse the trend if you want to create high-performing, modern software development teams.

View more posts


Here are a few projects I have worked on in my free time:

iTunes Library Parser

A C# implementation utilizing LINQ-to-XML to parse an iTunes library file (PropertyList format). The nuget package can be found here on nuget.org.

Improved iTunes Parser

A ruby iTunes library parser using Nokogiri.

Listening To

A .NET Web API app (using my Lastfm.NET library) with an AngularJS / Bootstrap front end. It displays the last 25 songs I’ve listened to as well as my top 25 artists.


A .NET client for the Last.fm REST API.

If you’d like to see some other things I’m working on you can view my github account.

  • {{track.Artist}}-{{track.Album}}


    Track: {{track.Name}}
    Album: {{track.Album}}
    Last Played: {{track.LastPlayed}}
  • {{track.Artist}}


    Rank: {{artist.Rank}}
    Play Count: {{artist.PlayCount}}
Music data courtesy of
Cannot connect to the Last.fm Service to access music data.
Check the Last.fm Status Site for more information.


Drop me a line if I can help your development organization, help you with your product, or you just want to talk about music!