I wear many hats; I'm a developer, project manager, mentor, tester, technical writer, designer, janitor, and any other role that's required to ship software that works.  You can blame my obsession with learning and continuous improvement for all those hats.  Labeling me a full-stack developer, architect, and project manager is likely the best description of my skill set.

Background

I graduated at the top of my class from a Software Engineering program in late 2006.  After graduating I worked at a medical software company, where I quickly moved through the ranks until I was running my own projects and was making significant contributions to various products.  After a few years developing client/server desktop applications, I decided it was time to throw myself in the deep end of the pool and challenge myself to learn something completely different (web development).

In late 2009 I started working for a web-based investment and insurance software company.  Since the company was so small when I started I needed to become fluent in every area of software development.  It was incredibly challenging, but the years that followed have been some of the most rewarding work I've ever done and the skills I acquired will stay with me for the rest of my career.  My role has grown alongside the company, from one of the original developers (when we didn't have titles) to the Lead Developer on a team of roughly 25 developers.  I'm currently responsible for the development processes the team uses, tool choices, architecture, project management, requirements, client management, and a number of other high-level areas depending on the day and project.  I also write significant amounts of code on a regular basis because I'm a big believer in the "architect always implements" philosophy.

Experience

We all have experience with a ton of technologies, but unless you've been working with them recently they're usually not worth mentioning.  Here's what I've been up to in the last two years:

Technologies

.NET / C# / F#
Java / WebSphere
ASP.NET / MVC / WebAPI / SignalR
SQL / SQL Server
HTML / CSS / JS
TypeScript / Chakra / Jurassic
LESS / SASS
Bootstrap / Foundation
Angular / Ember / Knockout
Azure

Skills

Agile Project Management
Waterfall Project Management
Client Management
Team Mentoring
Architecture
User Experience
Performance Optimization
Infrastructure Management
Disaster Recovery
Test Automation

Personal

I love learning new things and purposely push myself out of my comfort-zone; if we stay in our comfort-zone for too long we become resistant to change and never really grow in a significant way.  As a result, I'm almost always looking for something new and interesting to try.  I've done lots of things over the years, but the one I'm the most proud of is when I decided to try improv.  I ended up loving it, stuck with it, and even managed to graduate from Second City in my spare time.  Not only was it fun and challenging, but it improved other areas of my life that I never expected.

Contact

If anyone needs to contact me directly, you can reach me via email: mike at this domain