You can download my résumé in pdf or word formats
Principal Software Engineer Rosemount January 2015 - Current

At Rosemount I've been designing and implementing a Service Oriented Architecture to help solve some long standing challenges. These include maintaining a fleet of older VB6 applications and building new .NET applications with a quite small staff. To that end I've put into place an architecture that uses a couple WebAPI-based applications to provide complex functionality for a variety of clients (VB6, WPF & Javascript). Token management and single-sign-on capabilities are provided by IdentityServer3 using custom services to leverage the existing infrastructure. I have also built a continuous delivery system using TFS, TeamCity & Octopus Deploy that allows us to quickly iterate and build new functionality with confidence our code will work as intended.

ASP.NET WebAPI IdentityServer3 Angular 1 & 2 .NET Framework TeamCity Team Foundation Server Octopus Deploy
Making the transition back to Rosemount after 8 years
Senior Software Engineer Feed Management Systems Sep 2013 - Jan 2015

I joined Feed Management Systems, which is a company Cargill acquired in 2010, to help them develop enterprise level software to manage feed mill operations and feed recipe formulation. My initial work required rapidly learning their internal development platform and the 3rd party Modularis Accelerator Platform. My contributions helped turn around a struggling project that was adding new cost functionality to their existing Pennet Mill Manager product. I then became a lead developer on a 10-month project to upgrade Brill, their feed formulation product, using .NET on top of their internal development platform. This project involved revamping the C# and WinForms-based platform to use the MVP design pattern with mediators as the communication framework. In my role at FMS routinely mentor other developers, openly share my ideas for feedback, and always look for ways to increase the impact I can have on the organization. My contributions were recognized in the summer of 2014 when I received the company-wide FMS “All Star” award. This award is given to one person each year within FMS, requires a nomination by your peers to be eligible, and is ultimately chosen by the FMS leadership team.

C# Win Forms .NET 4.5 Modularis SQL Server Infragistics
Material Master Data Specialist Cargill - Tartan program Oct 2012 - Sep 2013

In this role I helped a specific Cargill business unit prepare their Material Master data for an upcoming SAP implementation. I focus on developing efficient tools and processes to make data management easier and cheaper. I have expanded the .NET/WPF data conversion tool I created in my previous role to include functions like duplicating legacy materials, and examining various aspects of SAP material data (class & characteristics, units of measure, plant extensions, etc).

This role has given me more perspective on how a customer of Tartan experiences the project, and is helping me focus my skills more effectively to meet their needs.

C# WPF .NET 4.0 Entity Framework SQL Server 2008R2
Senior Data Conversion Consultant Cargill - Tartan program Feb 2011 - Oct 2012

This role in Tartan allowed me to positively impact the organization in many ways. I initially led the effort to identify the toolset used for converting data from legacy systems in future Tartan projects. I then developed the strategy for how our server infrastructure would be used first for Wave 3, and now for multiple Tartan projects executing concurrently. I then designed and implemented an application, written in .NET/WPF, that can be used to meet other needs of Tartan’s data conversion work. This work involved balancing my vision around using new technology effectively with meeting the day-to-day needs of my team.

Within Tartan I routinely provided technical support to my peers for different issues and technologies, including a team of contractors working in India. I also had the opportunity to influence other teams through candid conversations about their accountability around the services they provide. This required discussions with people both at, and above, my level in the organization to find ways to partner more effectively. This role enabled me to demonstrate my abilities around critical thinking, communicating effectively to a multiple levels of the organization, collaborating with multiple teams to achieve objectives, turning setbacks into opportunities, and proactively identifying and solving problems.

C# WPF .NET 4.0 Entity Framework SQL Server 2008R2 SAP Data Services VBA
After lots of reflection, decided to move out of management roles
Supervisor Cargill - Grain IT Group Jan 2010 - Feb 2011

As a supervisor in Grain IT I built upon my experience as a team lead and increased my responsibilities to around 18 staff, including two team leads being groomed for a supervisor role. I played a key role in identifying talent to fill some open positions on my teams, which will have a long lasting impact on Cargill. I continued to lead change by pursuing effective work planning in all parts of Grain IT, and to an IT organization located in Canada. This work planning helped Grain IT understand and increase its capacity, while helping us meet the commitments we were making to our customers. I increased the culture of innovation by pushing my DBA team to build a software framework to automatically manage our database accounts for all teams within Grain IT. This reduced the work effort required to remain compliant with Cargill’s password policies, and provided a working example of how collaboration within Grain IT can solve problems and increase our execution capacity.

A major accomplishment in this role was the creation and execution of a broader strategy to further improve the efficiency and capabilities provided by my two teams. This effort involved inspiring my team to take ownership of many long-standing issues, seek out new skills and tools, and find innovative ways to fix those issues. This required me to operate with a broader perspective on the issues, seek to understand the needs of multiple stakeholders, and remove obstacles preventing my team from making the desired changes. I also partnered with our business customers to uncover and fix some serious data issues in the Sales Management Process application, which was used to track sales and determine incentives for sales staff. This effort required a candid and transparent approach from my team to ensure the business understood the issues and felt confident we were taking the right steps to correct them.

Team Lead Cargill - Grain IT Group Sep 2008 - Jan 2010

As a team lead in Grain IT I continued my efforts to change the culture of the DBA team. In my role I provided work planning and strategy for my DBA team, helped identify new talent by interviewing prospective candidates, and provided coaching and technical expertise to both my team and others within Grain IT. These experiences let me better understand the needs of Grain IT, and find innovative ways for the DBA team to help meet them. One example was making large strides to increase the transparency, communication and collaboration between my team and others both inside and outside of Grain IT. A major accomplishment for me was leading an 8-month project to upgrade our systems from ASE 12.5 on HP to ASE 15.0.3 on AIX on time. A second major accomplishment was working with Sybase, our database vendor, over a 12 month period to simplify our database licensing to ensure we were compliant and that the licensing was easier to understand for future supervisors within Grain IT.

Sybase ASE Sybase Replication Server Perl SQL Server 2005 C# ASP.NET IBM AIX
Sr. Database Administrator Cargill - Grain IT Group Feb 2008 - Sep 2008

As a DBA in Grain IT I was responsible for maintaining a replicated database environment composed of 100+ servers running Sybase ASE and Replication Server. In this role I identified many opportunities to make my team more efficient and increase the capabilities of my team. I worked with my teammates to create new tools and processes, and was able to increase the agility and capacity of the DBA team while also reducing the time required to maintain the environment. I routinely demonstrated ways to change how we work, with the goal to push my team to be more proactive in fixing the root cause of issues instead of 'fire fighting'.

Sybase ASE Sybase Replication Server Perl
Really loved Rosemount, but needed to experience a new company
Supervisor, Module Engineering Rosemount Feb 2007 - Feb 2008

In my last 18 months at Rosemount I was a supervisor for two employees, with a third scheduled to start after I decided to join Cargill. In this role I was responsible for providing work direction, hiring staff and conducting salary and performance reviews. I also had experience coaching underperformers to raise the execution capacity of my team. Because of the size of my team, I spent a sizable portion of my time as an individual contributor despite my additional supervision responsibilities. This provided good experience managing multiple priorities and executing in different capacities depending on the situation.

Solaris 9/10 Sybase ASE Sybase Replication Server PHP C# .NET 2.0 MFC
Sr. Software Engineer & Database Administrator Rosemount May 2004 - Feb 2007

As a software engineer I led the development of several applications that improved the manufacturing process. Most work was done with C# and VB 6, but I also developed a PHP intranet site providing engineers with a tool suite for accessing production data through a web interface. I also took a lead role in improving software development practices by using Microsoft’s Team Foundation Server to implement a modified CMMI process. As a database administrator I helped build and maintain a replicated Sybase database backend that supported a large-scale manufacturing plant in the US and Beijing, China. My responsibilities included both the server infrastructure and the administration of Sybase ASE and Replication Server.

Solaris 9/10 Sybase ASE Sybase Replication Server PHP C# .NET 2.0 MFC
All done with grad school!
Research Assistant, Computer Science Dept. University of MN - Duluth Sep 2002 - May 2004

In my second year of graduate school I was awarded a research assistant position. In my research I pioneered techniques to dynamically adapt computationally intensive distributed applications. The results included two conference accepted papers, my graduate thesis, and a C++ library that uses XML, STL and a multi-threaded design to dynamically adapt high performance applications at run-time.

Software Engineering Intern Rosemount May 2003 - Aug 2003

I was again an intern with PTD during the summer of 2003. This rotation proved to be much more challenging, and also rewarding, than the previous summer. I focused on writing everything from utilities to help with populating databases, to revamping VB programs, to creating an evaluation edition of the AMS software package. I also helped with consolidating the massive codebase previously developed seperately for the HART and Fieldbus portions of AMS.

Teaching Assistant, Computer Science Dept. University of MN - Duluth Sep 2001 - May 2003

During my first year of graduate school I was awarded a teaching assistant position. In this role I designed and conducted laboratory sessions, graded homework and exams, and helped students with any concerns for both a Computer Networks and Computer Architecture course.

Software Engineering Intern Rosemount May 2002 - Aug 2002

My first experience with actual software development was an intern rotation with Emerson's Performance Technologies Division during my first year of grad school.