About

I am a software engineer, software development / hands-on agile coach, community organizer for PhillyXP, blogger, and speaker with 18+ years of experience creating and delivering high quality software. I have specific expertise in:

  • Leading and coaching software teams
  • Mentoring developers
  • Improving development processes and practices for cross-functional development teams
  • Test-Driven Development (TDD)
  • Microtesting
  • Agile / eXtreme Programming (XP) practices
  • Pair & Mob Programming
  • Legacy code rehabilitation

I am a lifelong student always trying to improve. I believe code quality is not subjective nor a matter of preference. I enjoy mentoring and coaching developers specifically about code quality, microtesting, and Test-Driven Development. I am passionate about XP, Modern Agile, Lean Software Development, and DevOps. A listing of my talks can be found here.


I graduated from Drexel University with a degree in Computer Science. I currently work for eMoney Advisor in Radnor, PA. You can learn more about me here.

Blog

28 Jul 2018 . software craft . The DRY Principle and Incidental Duplication Comments

I remember being introduced to functions early in my first programming classes. This introduction came with a warning that code duplication was VERY bad, and functions were a way to avoid duplicating code in a program. I assume that some of you who first learned to program in a classroom setting have had similar experiences. And while I agree that duplication is a big problem, identifying the kind of duplication we should be avoiding is a bit more nuanced.

View more posts

Code

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.

Lastfm.NET

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.Artist}}

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

    {{artist.Name}}

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

Contact

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