More Information
Peter has over 35 years of experience designing, developing, and delivering software solutions for enterprise customers. Peter is also a book author, open-source author, international speaker, blogger, and has been awarded Microsoft MVP in C#.
Peter has spoken internationally on a variety of topics including unit test design and management, asynchronous programming, advanced .NET language features and syntax, concurrent and parallel programming and distributed design.
Services
- Codebase assessment and recommendations
- Leverage Peter's 35 years experience working with dozens of enterprises to expose key areas of improvement and modernization recommendations.
- Domain analysis
- Leverage Peter's experience analyzing domains to inventory vocabulary, entities, events, actions/commands, processes, and rules with an eye towards comprehensive and maintainable software design.
- Custom architecture
- Leverage Peter's experience working with enterprise distributed cloud applications to create/review system architectures geared towards implementation and long-term maintenance using tried and true patterns and practices.
- Custom design
- Leverage Peter's experience designing software solutions, from architecture to class-level design.
- Application development
- Leverage Peter's experience developing full stack applications.
- Agile team mentoring
- Leverage Peter's experience working with dozens of agile teams to guide teams on their agile journey: improving how they collaborate and iteratively deliver value.
- Agile team building
- Leverage Peter's experience working with dozens of agile teams to help build out new agile teams from elaborating team mission/charter to evaluating and organizing team members.
- Custom code analyzers and fixes (for example PRI Essentials - CodeAnalyzers and Messaging.Patterns)
- Development Team Leadership
- Leverage Peter's experience working with and leading software development teams.
- Defining and establishing team development practices
- Leverage Peter's experience with what has and hasn't worked in a variety of enterprises to establish or improve development practices.
- Custom training
- Leverage Peter's experience delivering software solutions to improve your team with custom training on topics such as:
- Agile methodologies
- Architectural Recommended Practices
- Being successful with ASP.NET
- Being successful with APIs
- Being successful with Domain-Driven Design
- Being successful with Clean Architecture
- Leverage Peter's experience delivering software solutions to improve your team with custom training on topics such as:
Patents
Books
- Refactoring with Microsoft Visual Studio 2010
- Visual Studio 2010 Best Practices
- Practical Microsoft Visual Studio 2015
Advisory Board Member/Technical Reviewer
Articles
Podcasts
- Technology and Friends Episode 250
- Deep Fried Bytes
Community Profiles
Past Speaking Engagements
- Prairie DevCon
- KCDC
- Music City Code
- Desert Code Camp
- CodeMash
- Detroit.Code
- TechEd
- Ottawa Code Camp
- DevTeach
- Microsoft TechDays 2008 (Track co-chair)
NuGet Packages
- Pri.ConsoleApplicationBuilder - A small framework that enables dependency injection in console applications, simply.
- Pri.ConsoleApplicationBuilder.Templates a
dotnet new
template for PRI.ConsoleApplicationBuilder - Pri.CommandLineExtensions - A small framework that builds off of PRI.ConsoleApplicationBuilder to make supporting command line arguments easier.
- Pri.LongPath - a small library offering drop-in support for working with files with "long paths" (>256 characters)
- Pri.Messaging.Patterns - a small framework of messaging patterns for use with messaging abstractions from PRI.Messaging.Primitives
Tools & Extensions
- PRI Essentials - CodeAnalyzers - .NET Code Analyzers and Fixers for method naming, ASP.NET recommended practices, and other code fixes.
- PRI Essentials - Open Files With Errors - A Visual Studio Extension to add the option to open all the files listed in the Error List pane. [src]
Github Repositories
- ConsoleApplicationBuilder - A small framework that enables dependency injection in console applications, simply.
- LongPath - a small library offering drop-in support for working with files with "long paths" (>256 characters)
- Messaging.Patterns
- Messaging.Primitives