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 21+ 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.


27 Aug 2021 . code craft . Refactoring - The Parrot Kata Comments

Follow along while I practice the Parrot Kata in Java, making use of two refactorings introduced in Martin Fowler’s book Refactoring to eliminate the Switch Statement code smell.

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!