I am a software developer with a passion for technology and 14 years of experience. I pride myself on solving complex real world problems with efficient, reliable, attractive and easily maintainable software.
I work hard to maintain modern tools, techniques, and practices to build functionality, quality, developer productivity, and the overall bottom line.
My current "go-to" stack includes a static UI built with Vue/Node and a .Net Core application built with Web Api, Dapper, MsSql, and Azure, but I enjoy working with almost all software stacks
I am a big advocate of cloud native technologies such as Docker and Kubernetes
I also have extensive experience with the .Net ecosystem including Asp.Net, MVC, WCF, NHibernate, Entity Framework, StructureMap, Ninject, Automapper and many other libraries. I am comfortable and experienced building applications on all versions of .Net including Mono and Core on Linux
I am comfortable with many design patterns (and anti-patterns!) commonly used in our industry to build complex but reliable systems. Examples of concepts I often use are Domain Driven Design and Command Query Responsibility Segregation. If you are more of a functional oriented shop I am comfortable with functional idioms as well
On the back-end, I am very capable with SQL, Oracle, and especially MsSQL/T-SQL. Not only can I develop efficient queries, updates, merges etc, but also improve schema performance by tuning indices and optimizing keys and storage layout. Maybe relational databases aren't your thing? I am also experienced with document databases such as MongoDB
Not working with the Microsoft stack? That's OK, I'm flexible. Despite working much of my career in the Microsoft stack I'm not a die-hard, I want to use the best tool for the job. I have also spent plenty of time with node.js, Java, and Objective C. Whatever toolset I'm using I strive to develop idiomatic, maintainable, and well tested code.