I'm most comfortable with C# and .NET Framework or the new and improved .NET (nee .NET Core). But, I have hands-on production knowledge with Java and I do like to learn new languages in my spare time. If you're looking to grow your team, and your company allows me to grow and learn as well, then we should talk.
Recent Work Experience
Senior Software Developer (2010-2016, 2019-Present)
rezStream's focus is on reservation management software for boutique inns, independent hotels, and bed & breakfasts. We offer a property managment system, a booking engine, and integration into various Online Travel Agencies. I first started at rezStream in 2010 and then rejoined at the start of 2019 after a hiatus.
A bit after first starting at rezStream, my coworker and I started the journey of recreating the company's product offering as a cloud-based SaaS product. I drove many of the high-level architectural decisions. We event-sourced (ES) many parts of the application (too many, but that's a good discussion for an interview or over lunch). We use Command Query Responsibility Segregation (CQRS) and store many of the read models in a noSQL store (RavenDB).
On rejoining, my focus has been on adding features and enhancements, improving our deployment velocity, and revisiting design decisions I made nearly a decade ago. We're expanding our microservices as we decompose the monolith; moving away from RavenDB and towards SQL Server for read models; and clarifying our Event-Driven Architecture (EDA) for inter-process communication.
Technologies used: .NET Framework, .NET, ASP.NET Web API, ASP.NET Core, Azure PaaS, Azure SQL Server, AngularJS (yes, the old one)
Senior Developer - Global Digital Factory (2018)
I assisted teams across other business units with implementing our Elasticsearch-backed Point of Interest search component. I also prototyped services for the European Direct business platform. Due to extenuating circumstances, I chose to leave during my probation period.
Technologies used: Java, Maven, Spring Boot, Eureka, Elasticsearch
eVision Industry Software
Senior Software Developer / Senior Team Lead (2016-2018)
As a member of the Shift Vision team, my focus was on helping deliver eVision's product offering for electronic shift logging and crew handovers. Handovers are a critical part of safety and compliance in high-risk environments.
Shift Vision was one of eVision's first true product offerings as opposed to the highly-bespoke projects that they had delivered in the past. I was able to leverage my strong background in product development to help direct focus to delivering a consistent and polished experience.
The architecture uses React/Redux on the front-end and C# on the back-end. We made heavy use of Event Sourcing (ES) and Command and Query Responsibility Segregation (CQRS) to ensure actions in our system were fully audited and replay-able.
I was promoted team lead with line manager responsibilities for the Shift Vision and Barrier Vision teams; Barrier Vision was a new product offering that we were taking from idea to MVP. As lead, I worked very closely with the product maangers on scoping and delivery planning and worked closely with the team on coaching, retrospectives, planning, and thinking about broad product impacts across customers.
As line manager, I met with my team members one-on-one, helped with goal-setting and career progression, and worked closely with the head of engineering on broader initiatives, team evaluations, raises, and hiring decisions.
Technologies used: .NET Framework, .NET Core, ASP.NET Web API, NancyFx, PostgreSQL, AWS, React, Redux
- Allison, D., B. Hyrman. Creating International-Ready Applications, November 2002, C#Today
- Allison, D., B. Hyrman. Visual Basic .Net Scalability Handbook. Wrox Press Inc, 2002.
- Conway, R., et al C# Class Design Handbook. Wrox Press Inc, 2003. Reprint. APress Inc, 2003.
EducationBachelor of Science in Computer Systems • Northern Michigan University
Minors in Computer Information Systems and History