Bloomington, MN 952-***-****
drive \drīv\ - to relentlessly press or force an activity, course, or direction. <Drives projects to completion – on time & on budget!>
Recent Clients
*Logos, trademarks of their companies.
Executive Summary High-Value Software Solutions
Scott, a Software Engineer/Architect, has over 30 years of experience designing, developing, and implementing high-value software solutions. His areas of expertise are medical device/financial applications, real-time, multithreaded applications, desk-top applications, communications (web services, TCP/IP, serial, etc.), human interface design, back-end systems, numerical solutions, unit tests, and documentation.
Technical Skills
Leading Expertise
Years
Rank
(1-10)
Object Oriented Development (OOD)
22
10
Full Lifecycle (SDLC) Project Lead
15
10
Medical Device/Financial Applications
11
9
UI Design & Implementation
17
10
Software Architect
18
9
Real-Time and Embedded Systems
11
9
Electronic Communications
14
10
Technologies
Years
Rank
(1-10)
C# .NET
17
9
SQL Server
5
8
WCF
5
8
WPF
11
10
MVVM
11
10
Dep. Injection
2
7
WinForms
9
9
Multi-Threading
13
9
C
11
9
C++
8
9
Select Project Achievements
Architected many solutions that were done on time and on budget in C#/.NET (last 15 years) and C&C++ before that.
Built a SmartAutoMapper (that compiles at run-time), an Expression Processer, a collection of Threadables that enable threading for queues etc., a Reflection Utility, a Dictionary Ex which enables multiple keys, and a Memory Mapped File as a queue.
Built and shipped a real-time pair of applications in 5 months containing over 40,000 lines of code.
Increased performance on an extremely complex English language analysis engine, by removing 70% of the processing time. The performance improved to the point of creating totally new possibilities for the product and the company.
Optimization (C++ to C# conversion) - 20:1 reduction in the reading and converting a source file (like CSV). For example, using a 2 million element dataset (1,200 MB), I reduced the reading time from 240 seconds (4 min) to 12 seconds.
Developed an adaptable multi-threaded verification system for hardware, RF communications, and other software applications and sub-systems.
Successfully designed and coded multiple ORM systems.
Mentored other developers in .NET. A strong proponent of team code reviews promotes good coding practice, development methodologies, and team cohesion.
Built 7 complex applications over my career that relied heavily upon homegrown (and predefined) languages requiring the design and development of parsers, compilers, and expression processors.
Experience
Boston Scientific Corporation Maple Grove, MN
Software Developer November 2023 – June 2024
I was a C# developer on the Avvigo Gemini project. Avvigo is the system and software that gathers and analyzes arterial data coming out of the heart on the condition of plaque in arteries for the application and placement of stents.
My task was to make the 20-year-old software integration test fully functional and add a few more. Avvigo is a large and complicated codebase with over a million lines of code. There are 2648 unit and integration tests. The size and complexity of the code made my task much more difficult.
As a secondary task I was asked to convert 1132 SpecFlow unit/integration tests to normal C# test format – no easy task. SpecFlow is a way to define unit/integration tests using English. To do this I created an application that would assist me in matching the English text that held the SpecFlow together to the C# function calls.
I used the Microsoft unit/integration test. All components were implemented in WPF C# MVVM .NET 4.8.
Symbotic Wilmington, MA
Software Developer November 2022 – September 2023
I was a C# MVVM developer on a large team that worked on Symbotic’s 10 “story” warehouse software system. Symbotic mechanized the entire warehouse with pick ‘n place robots, “elevators”, palletizing robots, de-palletizing robots, charging stations, and many other kinds of mechanization. The only thing people are responsible for is loading and unloading trucks…and maintaining the system.
My task was to optimize, performance test, remove binding errors, and remove memory errors (leaks) in the very large WPF MVVM Control Center and the SymMobile programs. There were about 455 errors in total. Since almost all the programs were event driven, most of the errors were the result of mishandling of events. There were many kinds of event errors, event handler leaks, WPF binding leaks, dependency property leaks, and WPF collection binding leaks.
In addition, there were two significant memory errors that chewed up 6.0 GB of memory in 12 hours. After much analysis, these two errors entailed modifying data structures, removing the errors, and restructuring the code. I only used a total of 950 MB of memory when the task was completed.
I used JetBrains dotmemory tool to search for errors in the code. All system components were implemented in WPF C# MVVM .NET 4.8.
3M Menomonie, WI
Software Developer February 2022 – November 2022
I was the only developer that worked at 3M’s manufacturing plant in Menomonie, WI. I worked on a project called Grasp, a 20-year-old analysis program developed using C++ (the majority), VB NET, managed C++/C#, and C#. Grasp analyzes data for very high precision lathes called Diamond Lathes (a 5-axis machine) which hold precision to the nanometer. Grasp does analysis on very large data sets in a range of 20 million to as small as 2 million elements (each element contains 15 doubles). The analysis includes FFT (Fast Fourier Transformation) among many other statistical tools.
My task was to redevelop and convert those 4 languages to C#, speeding up, multi-threading, and modernizing the program in the process. I was very successful in reducing the processing time. There was a 20:1 reduction in the reading and converting of the source file (like CSV). For example, using a 2 million element dataset (1,200 MB), I reduced the reading time from 240 seconds (4 min) to 12 seconds – this opened new possibilities. The amount of code needed to do all the functionality was also reduced 5:1 from 140,000 lines to about 30,000 lines of code. Much of this was in exception handling, conversion to other languages, and conversion of data. In the entire analysis and plotting (42 graphs) there is approximately a 20% reduction in processing time - about 1 minute total time.
Grasp was done on time and on budget for the part that I did – the project was brought to a halt due to financial pressures. The current plan is to ask me back to finish in year or two. All system components were implemented in C# WPF MVVM .NET 4.8.
TSI Minneapolis, MN
Software Developer September 2020 – January 2022
I was third C# developer on a team that developed TSI’s latest product, which is the Certifier – a device that certifies hospital ventilators. The Certifier is a C# firmware application with a small, tablet-sized screen attached, like a tablet with Linux as its operating system. As part of this rapid development team during the past year, I developed both algorithms and UI elements. These tasks advanced the product to such a point that TSI will now be able to release the product just before I leave. One of the algorithms that I developed included the “triggers”, which is the interpretation of the flow rate data, pressure data, and TTL data: the core of the system. There were 8 different modes that had to be accounted for in the triggers. This was particularly difficult with “noisy” ventilators, where there was a lot of spurious data. While this was a challenge to work with, I was able to successfully solve the many issues that were presented to me.
The Certifier was done on time and on budget – the first in many years. All system components were implemented in C# .NET 4.7.2 and Mono embedded.
Honeywell Minneapolis, MN
Software Developer/Architect July 2017 – August 2020
My task was to develop from the ground up what became the acclaimed HGuide Data Reader (HGDR). The HGDR is a C# WPF MVVM program that displays the real-time and playback of Honeywell’s 7 high-precision GPS and INS devices. The software involves many high-impact Graphics presentations, detail-rich Text presentations, illuminating Bit Stream presentations, massive amounts of configuration, 50 impactful analysis reports, and 45 helpful exports. The data is coming in via Serial, UDP, or TCP/IP communications as fast as 3600 messages per second. As the project lead of two other developers, I not only headed the team, but also personally developed at least 65-70% of the code.
In addition to developing HGDR, I was particularly helpful to management and the whole organization. Because I generated 35,000 lines code (264 messages) for messages from a Message Description Language that I used internally, I was able to efficiently write code generators for as many languages as necessary. This created a department-wide mandate that the required Code generated for 7 outputs: C, three versions of C++, text, HTML, and PDF.
The HGDR was done on time and on budget – plus the internal Message Description Language. Examples of the code that was produced are as follows: 1832 source files with 392,208 lines total -- 542 files with 136,000 lines of C# code, 640 files with 126,041 lines of C++ code, and 650 files with 130,167 lines of C code.
Mortgage Cadence Edina, MN
Software Developer June 2016 – June 2017
Mortgage Cadence develops premier software for the mortgage industry. Most of the mortgage application is written in C#, but the absolute core element of their software is written in C++ as a COM component that functions as a highly specialized ORM for 110 DB tables. I analyzed the 200,000 lines of very this aged C++ beast with the directive of redeveloping the component in C#. First, I fully automated the ORM code to add and modify the source code, so that anybody could maintain the code (without C++ COM knowledge). Second, created a tool that analyzes the C++ source code and generates highly efficient C# code. This generated code act as business objects to interface with the DB via SQLMetal-wrapped sprocs. The next part of the project was to begin implementing all the specialized functionality and public features.
The project was done on time and on budget. C# WPF MVVM .NET 4.8 and C & C++ implemented.
Medtronic, Inc. Mounds View, MN
Software Developer/VT January 2016 – May 2016
My task was to rescue a failing VT project for one of Medtronic’s new mobile phone and tablet platforms that interface directly with a pacemaker. The consulting team that had the responsibility to do the Verification Test was 4-5 months behind and had difficulty doing requirement analysis and developing test cases. The project was brought in-house, and we began to progress quickly.
My part of the project was to analyze requirements, correct as needed, develop test cases, and dry run the tests. Although this project was not software development, I gained significant insight into the verification test process.
After pulling this project out of the fire it was done on time and on budget.
Wellbeats Maple Grove, MN
Software Developer August 2015 – December 2015
Wellbeats is an exercise content provider and content deliverer. The system runs across uses 7 different hardware platforms ranging from IOS phone and tablet, Android phone and tablet, MS Windows 10 laptop/desktop, plus Intel Stick Computer, and Intel Nuc computer. Xamarin was used to do all the cross-platform conversions were the code stayed the remarkably same.
I had 3 major tasks: implementing SignalR for in-facility communications between all hardware platforms, Serial communications for CEC display control, and using Wi-Fi Direct to provision new hardware via the ad-hoc peer to peer network.
The project was done on time and on budget. All system components were implemented in C# .NET 4.5, WPF, MVVM, Wi-Fi Direct, Serial CEC communications, and SignalR (real-time .NET communication library).
MTS Systems Eden Prairie, MN
Software Developer/Architect Dec 2014 – Aug 2015
MTS is an engineering company that provides materials testing machines and software throughout the world. The system I developed from scratch is the real-time FirstRoad automotive testing system that simulates road conditions. The brutal testing occurred while on a four-poster servo-hydraulic or linear motor actuator system capable of frequencies of 100 HZ.
The application has two UI systems – host and client of which I wrote both complex systems. The host UI interfaces directly to the hardware controller, and the client is tablet-based Wi-Fi-connected to the host. Of course, I had to consider that the communications to the tablet could disappear at any time. The hardware can be controlled by either the host or the client and both stay in synch with each other via SignalR. The product was shipped to the first customer after only 5 months of development and are composed of 413 files totaling over 40,000 lines of code built on the MTS real-time hardware library. Unity Dependency Injection was also used.
The FirstRoad two apps was developed by me on time and on budget. All system components were implemented in C# .NET 4.5, WPF, MVVM, Unity Dependency Injection, and SignalR.
SureScripts Minneapolis, MN
Software Developer July 2014 – Dec 2014
Surescripts improve care outcomes, increase efficiency, and reduce healthcare costs by connecting care providers within communities and across the country. Of the 10 development teams, the team that I was on developed new features for the Directory system. This system manages information on all the doctors, clinics, hospitals, pharmacies, etc. My work on the team was all done on the Directory backend systems. Moq and Castle Windsor Dependency Injection were used extensively in this backend system.
All system components were implemented in C# .NET 4.5, nHibernate, SQL Server, Moq, Castle Windsor Dependency Injection and Oracle.
LifeTouch Eagan, MN
Software Developer March 2014 – July 2014
LifeTouch is the premier photography service company in the US. I join the team that was in the middle of the redevelopment of their Picture Day Suite – the system that most children in the US have experienced in front of the camera. The WPF C# application with managed C++ hardware interfaces had a very hard deadline and an extremely ambitious set of requirements, but I found the work very challenging and exhilarating. A good portion of my time was delivering high-performance video and presenting capturing images in very precise ways by developing custom display controls and adorners. I also implemented calibration and posing guides (view screens) to aid the photographer.
The team that I worked with was some of the best and hardest working that I have known. Had the budget allowed, I would have stayed on indefinitely as per the desires of my manager and project lead.
The Picture Day Suite was developed on time and on budget. All system components were implemented in C# .NET 4.0, WPF MVVM, shared file-mapped memory and managed C++.
Thomson Reuters Eagan, MN
Software Developer April 2013 – February 2014
The Thomson Reuters group that I was in builds and maintains a tool called Drafting Assistant. This tool is a very large plugin for MS Word and Word Perfect that assists lawyers in the creation of legal documents of all kinds. The application includes document templates, proofing, cross-reference checkers, and document management. The architecture includes Windows controls that host web pages with a large portion of UI and business logic, and backend services that provide large volumes of resources and many analysis engines. The UI is able to interact with MS Word and Word Perfect via interop libraries.
I had two major roles in the project: 1) increase the performance of the main analyzer engine, 2) be part of the redesign and implementation of the DealProof sub-system UI and implement new features. I was able to decrease document analysis times by over 65% and the UI now has a fluid, fresh look and feel.
On time and on budget. All system components were implemented in C# .NET 4.0 were used for all the new UI.
Data Sciences International Arden Hills, MN
Software Developer January 2013 – March 2013
Data Sciences developed a new network matrix (eDEM) that communicates with legacy implants. This development brings all the older implant hardware “into-the-fold” to run under the current generation of data processing and analysis systems.
My part of the system was to design and develop the hardware interface between the Acquisition Engine (and the UI) and the implants. A large part of the development was also implementing a hardware configuration UI (WPF) that enables the user to associate all the hardware resources with a given scientific study.
The application is multithreaded to interact with the hardware and the user interface. Since the application is made up of multiple applications that interact with each other, there is a significant amount of inter-process communications required. The inter-process communications is done through multi-process circular queues and WCF web services.
On time and on budget. All system components were implemented in C# .NET 4.5. All hardware communications are done using WCF using NetTcpBinding and low-level TCP/IP socket implementation. The UI of eDEM uses WPF (w/MVVM) throughout and many testing utilities use WinForms.
Pine River Capital Management Minnetonka, MN
Software Developer April 2012 – Nov 2012
Pine River Capital Management is a very successful hedge fund and REIT investment company. They have a legacy application, called Everest, which is in process of being massively updated with newer technologies – C#, WPF (w/MVVM), WCF, and LINQ. The original application was all MFC using a little-known database called ‘K’. The development process was to port the application while continuously releasing the changes into production – very difficult environment to work in.
A major part of the project for me was to remove the ‘K’ database calls throughout the application, converting them into SQL calls vial a WCF interface and updated the access methodologies in the process. Many times, this required rewriting the UI (WPF w/MVVM) in the process
On time and on budget. All system components were implemented in C# .NET 4.0, C++, and Managed C++. The UI of Everest uses WCF, WPF (w/MVVM), and MFC throughout. The WCF interface to the DB was written entirely in C# with low-level DB access using SQLMetal code generator tool for LINQ to SQL.
Previous Positions Bloomington, MN
Software Developer April 1991 – Nov 2012
30 other projects of which were mostly C & C++ and many embedded.
Education
University of Wisconsin – Stout Menomonie, Wisconsin.
BS Degree (Mechanical Engineering), Minor in Computer Science