Lead Software Engineer with many years of experience working primarily with Microsoft development tools within many different types of industries including health care, electric utilities, financial, retail and others.
Work with QA engineers to set up QA environment in Azure
Worked with DevOps engineers to set up build process using GitFlow and Azure Pipelines
Migrated SAAS product to Azure using Azure App Services, SQL Managed Instances, and VMs where applicable
Designed next generation of API using clean architecture design
Implemented strangler fig pattern using reverse proxy to incrementally migrate code from .NET framework to .NET 7
Worked with engineers to set technical direction and standards using industry best practices
Developed documentation for onboarding new developers
Mentoring junior developers
Part of team of software engineers brought on to implement SAAS EMR to replace legacy desktop product used by physical therapists and clinic personnel to schedule appointments, document patient visits, and integrate with billing using Angular/TypeScript, Web API RESTful Services, SQL Server Databases
Created custom data access layer using T4 templates and Dapper
Implemented API Security using OAuth specification (implicit flow)
Worked with customers to implement inbound SSO using OpenID
Worked with outside venders and partners to implement outbound SSO using OpenID
Entire on premises infrastructure was migrated to Azure
Main application was ported to Azure app services where possible
Utilizes Azure pipelines for continuous integration
Designed next generation of API using clean architecture design
Created windows service to synchronize end users of web application to Salesforce using Salesforce API.
Senior .NET Developer
Bonneville Power Administration, BPA
06.2010 - 07.2015
Senior member of business application team responsible for developing and supporting many web-based applications that support various parts of administration
All web applications were deployed in load balanced environment
Some applications were available to users outside of BPA
Lone developer/analyst on Remote Terminal Unit management project, externally facing web application written in ASP.NET MVC 3.0 and Entity Framework 4.0 with SQL Server database
Application is used by electronic engineers for revision control of schematic information for remote terminal units in substations
Part of team that built system for calculating wholesale energy rates for customers
System was built in ASP.NET MVC 3 and Entity Framework 4.0 with SQL Server database
Support and maintain www.salmonrecovery.gov - externally facing website created in Telerik Sitefinity
Redesigned site look and feel based on user requirements using ASP WebForms, HTML and CSS
Built several custom controls to make content management easier for users
Wrote and presented training class to ASP MVC 2.0
Wrote and presented training class on application logging using Elmah and Log4Net
Support and maintain WCF web service that accesses AssetSuite and People soft financial to retrieve and maintain work orders
Primary support for custom membership provider that is used by most externally facing websites for forms-based security.
Senior .NET Developer
Umpqua Bank
02.2009 - 06.2010
Designed basic framework for simple Enterprise Application Integration (EAI) system using plug-in architecture using Microsoft's Managed Extensibility Framework (MEF)
Created .NET library to call SOA web services that interface with core banking systems
Created internal web application that allows front line associates in all bank branches to enroll banking customers in online banking using web services from multiple vendors
Developed and documented department software development life cycle (SDLC) that was use on all projects upon its approval
Internal audits were conducted to ensure process was followed
Provided support for public facing website www.umpquabank.com
Worked with marketing and other groups for content and functionality changes
Maintained corporate intranet site (based on DotNetNuke)
Taught class to end users from all over company on how to create and manage content for their departments
Worked with 3rd party vendors on smaller “microsites” such as www.savehardspendsmart.com
Managed move of public websites from small ISP to large data center and disaster recovery (DR) site.
Senior .NET Developer
Portland General Electric, PGE
03.2008 - 02.2009
Worked in Network Data Operations (NDO) on Meter Data Consolidation (MDC) project implementing changes for Automatic Metering Infrastructure project using ASP.NET and Oracle database
MDC system gets meter data through remote network interface (RNI) via XML messages that are distributed via ActiveMQ
Created series of windows services that send and receive XML messages to and from RNI using .NET 2.0 and ActiveMQ client
Utilized several documented design patterns for enterprise application integration (i.e Message listener and dead letter queue) to create robust, reliable application
Created web service architecture for AJAX style web pages
Converted some legacy web pages from .NET 1.1 to .NET 2.0 with Ajax and MS Ajax toolkit
Modified MDC from username/password to single sign-on (SSO) web application
Analyzed and fixed several areas of site to increase performance.
Technical Lead/Programmer/Analyst
Concretize, Inc
04.2007 - 02.2008
Developed mobile application for Windows Mobile Pocket PC device for doing inventory and observations fire hydrants
Client portion of application was written in C# using .NET compact framework 3.5
Application used device's GPS to record location of hydrant and camera to take its picture
GPS was also used to find existing hydrants while working in the field
System was designed to work in environment where network connection is not guaranteed but users work cannot be impacted
Pending messages were stored in local SQL Server Compact database (v3.5) and automatically sent when valid connection was detected
Developed core library for mobile applications taking advantage of Microsoft's Mobile Client Software Factory
Set up continuous integration process and build server using Cruise Control.NET and Subversion
Implemented unit tests in Visual Studio 2008 for core mobile library and incorporated them into build process
Worked with clients, business analyst and architect to gather requirements, design system, and prioritize features and bugs
Built web services for exchange of data between mobile client and server
Implemented LINQ queries on local data structures on mobile client.
Technical Lead – Business Analyst/Programmer, Senior
PacifiCorp, Inc
04.2001 - 04.2007
Technical resource in Power Supply Application Team (PSAT)
Team of 25 professionals that supports and maintains many systems used by Commercial and Trading group of PacifiCorp
Senior technical resource and lead team member
Mentor less experienced developers and provide leadership by example
Technical lead on project to design and build web service interfaces for several systems for application integration
Web services written in C#.NET returned serialized objects and published to subscribing systems via TIBCO messaging bus
Prototype of next generation uses Windows Communication Foundation (WCF) and MSMQ
Technical lead on project to design and build .NET smart client application for extending functionality of 3rd party application for hydro energy forecasting
Raw data is retrieved from 3rd party database and presented to user in graphical format
Users could then manipulate data (in a way not available in the vendor application) then saved to intermediate database (Oracle 10)
Data was then published to subscribing systems via EAI
Application was deployed to user's desktops with ClickOnce
Designed and built framework of common functionality in C# for use by all .NET applications going forward
Built using Microsoft's application blocks for data, logging, and caching
Support and maintenance of integration framework
A collection of data publishers and subscribers written in Java that are used for sharing data between different application systems
All publishers and subscribers run on windows server as windows services
Data was sent as XML messages via TIBCO messaging framework
Developed tools for monitoring and supporting integration publishers and subscribers including web page to monitor integration logs for errors, web page to display number of pending messages in message queues and web page to control windows services
Primary support and technical lead for Forward Price Curve system (FPC)
A system used by energy traders to generate data for predicting future price of electricity, natural gas and other commodities
FPC consists of VB client with COM+ middle tier and Oracle 8i database
Increased its performance by more than 30% while reducing amount of code by 50%
Developed intranet portal site as starting point for several web based applications in ASP 3.0 then later converted to ASP.NET (C#)
Gather business requirements from users for systems enhancements
Document requirements and provide detailed estimates for work
Document detailed technical design and coordinate implementation effort between myself and other developers when necessary
Developed several Excel Add-ins (.XLA) used to extract data from databases via COM+ components and put data into spreadsheets
Provide training and supervision of contract developers and testers.
Senior Programmer/Analyst
800.com
09.1999 - 02.2001
Worked with marketing and graphics departments to design and build new areas of the website and enhance existing areas
Shopping cart using MS Site Server pipelines
Implementation and architecture design of site membership (using MS Site Server)
Implementation of instant online financing (third party API using web service– iFinance)
Implementation of Sony store and Pioneer store – pages devoted to Sony and Pioneer products
Setup and implementation of Net Perceptions for site personalization (attended training course 3/00)
AOL Quick Checkout
Microsoft Passport
Instant online financing using iFinance (SOAP Messaging, XML)
Redesign of the Music (CD's and Cassettes) pages
Portland Trailblazers/Rip city trivia contest
Built and maintained several client server applications for website sales tracking and product management.
Programmer/Analyst
Consonus
12.1998 - 09.1999
Consonus produced custom E-Commerce solutions for many different types of clients
Www.cache.com Corporate presence and E-Commerce system for Cache', a high-end women's fashion store with store location throughout the United States
The system was developed using Cold Fusion 4.0 running on Unix (Sun/Solaris) with an Oracle 8i database
Duties included writing Cold fusion code for various areas of the Cache web site including “My Cache” where the user can personalize the site to their needs and the shopping cart and checkout processes
Worked as part of the design team to further develop the Consonus E-Commerce data model so that it would better suit the needs of the Cache project as well as future projects.
Programmer/Analyst
PacifiCorp
03.1998 - 12.1998
Senior level developer on a team that designed and developed the RMT Energy trading system
The system is a suite of 20 trading applications
Each application was used for different types of energy trades
Designed and wrote new components needed for the RMT system
I also assumed a lead role by being involved in the design of the overall architecture of the project
Assisted in developing some internal project processes to organize the efforts of a team of 20 people
The processes include version control, code promotion and organized feedback from the QA team.
Education
Bachelors of Science Degree - Computer Technology and Information Systems