I am a software engineer with a focus on Microsoft platforms and technologies, including a decade of experience leveraging the C# programming language and the .NET Framework to build a wide variety of client and server applications for the Retail, Cloud Services, and Insurance industries.
The majority of my career has been web applications and services using ASP.NET MVC (incl. Web API) and Windows Communication Foundation (WCF) in tandem with database technologies such as Microsoft SQL Server, MongoDB, and Apache Solr (Lucene). I also spent several years working with less common .NET technologies such as legacy Windows Forms, current-generation Windows Presentation Foundation (WPF), and the Silverlight browser plugin.
I am especially interested in the .NET Framework's unique performance characteristics, due to factors like automatic memory management, type safety, and reliability guarantees; further, I study practical high-performance design techniques such as parallelization and caching. Historically, developers have been able to ignore performance, but the advent of the cloud has changed things. Often, leveraging the cloud means taking a given task and breaking it into sub-tasks that can be processed at different speeds organically. That division of labor necessitates a better understanding of any given operation's cost. As a result, I find that my performance expertise is getting called upon more and more by my employer.