Scott A. Hansohn

1124 Amble Drive

Arden Hills, MN 55112

(612) 240-4493




Broad domain experience including Biometrics, Geographic Information Systems (GIS), manufacturing automation, cardiac pacemaker and defibrillator programmer and test applications, machine vision, computer graphics, embedded processing systems, operating systems, programming environments, and communications systems.  Extensive experience in software process definition, requirement definition, object-oriented analysis and design, and user interface design.



TI C6600 and C64+, ARM, Intel Processors (embedded systems and PC’s), Motorola 680x0 and 6800.



C++ (with MFC, .NET, STL, Boost and other frameworks), C#, Visual Basic, Java, Perl, JavaScript, C, Lisp, Assembly, HTML, XML, CSS.



Microsoft Windows (3.1 through 10), TI-RTOS (SysBios, DSPBios), Linux, VRTX, VxWorks, X Windows, UNIX, OS/2, Ultrix, VMS, Sun-OS, Macintosh System 6 & 7, MS-DOS.



Hansohn Consulting LLC – Software Engineering and Consulting

2000 to present - Software Consultant

2013 to 2016 – Banner Engineering

[May 2013 – April 2016]
Designed and implemented c++ system software for a vision sensor, including an operating system abstraction layer supporting execution of the firmware on either the DSP platform or Windows. Implemented NOR flash subsystem used for device configuration and firmware update.


Port and enhancement of a legacy vision sensor c++ software from TI’s CCSv3 (Code Composer Studio IDE) with DSP/Bios (operating system kernel) to CCSv5 (Eclipse-based replacement IDE) and SysBios (operating system kernel). Design and prototype of c++/STL code to support XML-based communication to a next generation vision sensor.


2013 to present – Heraeus Medical Components

[April 2013 – present] Software consulting and modifications to a legacy VB .NET application used by users to configure Trio Motion and Delta-Tau PMAC machine controllers on in-house proprietary manufacturing systems.


2010 to 2013 – Tolomatic

User interface prototyping, implementation and releasing of an application enabling end-users to configure Tolomatic stepper and servo motor drives and actuators. This was a vs2010 C# Windows Form application communicating with the drive via RS-232, Ethernet and USB connections.  Implemented firmware upgrade capabilities for ARM processors via RS-232 and USB DFU (Device Firmware Upgrade protocol).


Ported functionality from a stand-alone Visual Basic application (mapped application requirements to appropriate Tolomatic motor/drive/actuator product combinations) to a C# .NET REST service to make it available to users via the internet.  Created applications (ASP.NET and WinForm) for regression testing, profiling and analyzing results


2010 to 2012 – CyberOptics

Software architecture consultant for inspection system development and developed tools for solder paste measurement quality analysis (profiling, unit/regression testing, improvements, etc.)  Refactored existing solder paste inspection software to work with alternative conveyor and robot hardware.


2009 to 2010 – Medtronic

Responsible for requirement definition, design and implementation of software to import pacemaker and defibrillator device data into the Paceart ™ Patient Data Management system.


2008 to 2009 – CyberOptics

[August 2008 – August 2009] Helped complete development of SE500 solderpaste inspection system to market and transition subsequent development to a team in Singapore.  Application was in C++ (Visual Studio 2005) using Boost libraries and an application-specific framework designed for this system.  Specific feature responsibilities included adding support for nested fiducial frames and refactoring/extending the application to support client/server operation and a second conveyor lane.


2007 to 2008 – Teradyne

[Nov 2007 – August 2008] Wrote C++ code for an Excel DLL extension to Teradyne’s IG-XL Integrated Circuit (IC) tester.  This extension allowed a user to use a collection of spreadsheet pages to configure high-speed signal generation hardware to stimulate an IC under test and measure/verify the expected response.


2006 to 2007 – CyberOptics

[May 2007 – Dec 2007] Designed/implemented customer requested modifications to CyberOptics Flex Ultra Automated Optical Inspection (AOI) system.  Specific modifications included configure system based on input from upstream barcode reader, implement an offline defect review capability, network performance analysis and tuning.  Also helped with diagnosing field issues and fixing final bugs in preparation for software release.


[Jan 2007 – May 2007] Designed and implemented a prototype data mining application to correlate information collected by CyberOptics sensors at various stages of the printed circuit board assembly process.  The prototype was implemented as an ASP.NET 2.0 application with Ajax controls and Java applets for client-side processing and C# code-behind for server-side processing.  The application mined data in SQL Server 2005 relational and db4o object databases.


[Jan-Dec 2006] Software Architect for a prototype system to collect/store/retrieve digital photographs taken of electronic components being picked and placed during printed circuit board assembly.  Responsible for design/implementation of software to communicate with a 6-channel digital camera via Firewire.  Developed a pick-and-place simulator for testing software in-house and playing back data from the field for testing and troubleshooting.  This software was written in C# and C++ using Microsoft Visual Studio 2003 with the NUnit test framework for unit testing.


2002 to 2006 – Guidant (now Boston Scientific)

Developed system software for Guidant’s Test Automation platform, used for development testing of implantable pacemakers and defibrillators.  In particular responsible for C++/VxWorks software for trace result logging and communication via Ethernet or USB to an interface box implementing RF and inductive telemetry links to the device under test.  Helped build a Windows Perl application for interactive testing and troubleshooting of device telemetry.  Wrote a Perl application to translate the communication protocol definition from an XML document to C++ code and interactive tools used by test writers.  Worked on port of the test system software from VxWorks to Linux.


2001 to 2002 – Visionics (now L-1 Identity Solutions)

System Engineer on a team building a highly scalable facial recognition system.  Tasks include requirement definition and task definitions, user interface design, work directing a team of C++/MFC developers, and integrating Windows applications with distributed Linux/Tomcat/java software components.


2002 – CyberOptics

Follow-up work on SE300 solderpaste inspection system to define and implement (C++/MFC) algorithms to optimize code to handle rotation of sensor field-of-view, and other performance improvements.


2000 to 2001 – Digital Biometrics, Inc (now L-1 Identity Solutions)

Developed software (C++/Linux) to interface a Fingerprint Identification Based Information System (IBIS) to existing police and other government computer systems and criminal databases (LEMS in Minnesota and LEIN in Michigan).


2000 – ATE Technologies

Software Lead Engineer for development of a modular Integrated Circuit Test Handler.  Responsible for planning and overall software architecture design.  Defined a scalable software development process to accommodate planned aggressive growth of the Engineering staff.


Minnetonka Software, Inc.

1990 to 2000 - Software Engineer

1997-1999 – AgChem/Soilteq

Designed user interface and overall system architecture for SoilTeq’s next-generation SGIS Precision Agriculture application.  Researched, evaluated, and selected spatial middle-ware (ESRI’s ArcInfo mapping components) and database (Access and Oracle). Responsible for project team communication (via an Intranet web site), review of specifications, definition of marketing and software requirements for the overall SGIS system.  Also responsible for planning development increments and providing work-direction to a team of AgChem employees and contractors.


1996-1999 – CyberOptics

Currently working on redesign of Sentry 2000 software for Microsoft MFC and redesigning the user interface.  Responsibilities include coordinating system design, writing overall design documents, and writing code as needed to integrate parts of the system together.


Project lead for definition, design and implementation of a manufacturing automation upgrade to the Sentry 2000 solder-paste inspection system.  FASTech’s WinSECS OLE control was used to provide the SECS messaging protocol.  Wrote C++ classes to implement the GEM capabilities.  Created and maintained an intranet web site for archiving project documents and reporting status. 


Member of the Design Process and Standards committee, assisting in preparation for ISO-9000 certification. Mentor for object-oriented analysis and design (OOA/OOD) and Rational Rose.  Also served as CyberOptics representative to a working group developing a Standard Recipe File Format (SMEMA/SRFF) for transporting information between Surface Mount Technology (SMT) manufacturing systems.


1997 – Advantek

Defined and documented requirements for the next-generation IC handler.  Mentor for object-oriented methodology.


1990-1996 – Medtronic

Developed software for a pacemaker programming system.  Member of the Design Process and Standards committee. Also participated in localization of various applications to French, Italian, German, Spanish, and Japanese.


Managed development of a programming application for an implantable cardiac defibrillator.  Responsibilities for this out-sourced project included writing the proposal, defining requirements, task assignments, technical reviews, and monitoring and reporting status to the Medtronic project monitor.


Managed a project to prototype a Remote Access capability for Medtronic’s pacemaker programmer.  Wrote the proposal and requirements specification and monitored/reported implementation progress.


Lead development of software for interrogation and display of Kappa 400/700 pacemaker diagnostic data.  Worked with the pacemaker hardware and firmware personnel to determine software requirements. Worked with Human Factors specialist and users to define/prototype/test the user interface and report formats.  Implemented some parts and oversaw the development of the rest.


Designed and implemented initialization and calibration protocols for Medtronic’s first pacemaker with a Minute-Ventilation (MV) sensor (Legend Plus).


Participated in a verification-automation team.  Wrote support scripts for screen capture and IEEE-488 (GPIB) motion control, and Mercury Test Runner automated verification scripts.


1990-1991 – DataCard

Developed drivers and application software for a credit-card issuing ATM machine, based on an MSDOS platform. 


Other projects for Minnetonka Software have included a Waveform editor for a digital audio recording board, and database applications using the Vermont Views window management package and the Informix relational database system running under MS-DOS.


Applied Vision Systems, Inc.

Developed and supported an Automated Optical Inspection Station for inspection of Printed Wiring Board inner and outer layers.  This system included an Inspection Station and a Verification/Rework Station.  All software was written in C for a 68020 running UNIX.


1988 to April 1990 - Principal Engineer (reporting to Vice President of R&D)

Provided technical support for and coordination of Customer Service, Engineering, and Sales & Marketing groups.  Helped build a Customer Service group consisting of Field Service Technicians and Application Engineers. Conducted demonstrations for prospective customers.  Conducted the on-site beta test, developed training courses and wrote Users Manuals.  Identified key product enhancements required to meet the needs of current and future customers and worked with the Engineering group to implement them.  Responsible for identifying and troubleshooting critical problems in the field.  Member of the Software Review Board.



1986 to 1988 - Senior Software Engineer

Assisted the Software Manager in coordinating and planning the initial design and implementation of the AVSI 8700 system and application software.  Responsible for designing, implementing, and testing software for

·         metrology functions for the Inspection and Verification Stations,

·         barcode reader and printer drivers,

·         Verification/Rework Station X-Y table movement,

·         master and flaw file administration,

·         file archival to/from streaming tape cartridges,

·         menu management and user interface routines, and

·         system configuration parameter management.

Also responsible for incorporating TCP/IP Ethernet, RS-232 Kermit, and RS-232 uucp communications capabilities into the system, and instituting an online technical forum to improve communication between the technical personnel.                                                                                                                  


Honeywell Secure Computing Technology Center

1985 to 1986 - Principal Research Scientist

Lead software engineer for the Functional design of a multi-level secure (A1) operating system for the Secure Ada Target (SAT) prototype.  This UNIX-like operating system was built upon primitive security kernel functions provided by a security coprocessor.  Designed process management and virtual memory management functions.  Coordinated design of low-level and file I/O subsystems.


Honeywell Systems and Research Center

1983 to 1985 - Senior Research Scientist

Lead software engineer responsible for design, implementation, and test of the communication software for the Army’s Experimental Distributed Processing Facility.  This communication system provided session and transport layer services, and interfaces to the device controllers for an X.25 packet switch and a triple-redundant high-speed serial bus.  All software was written in Ada for an MC68000 microprocessor.


Participated in a program to select an Ada compiler vendor to retarget an existing Ada compiler to the MIL-STD-1750A 16-bit microcomputer.  Defined requirements for the runtime support library and put together a Request for Proposals and evaluated the resulting proposals.


Honeywell Military Avionics Division

1980 to 1983 - Senior Software Engineer

Developed/taught an Ada language course, and benchmarked and evaluated various Ada compilers for use on Honeywell projects.


Integrated hardware/software and tested a prototype Threat Warning Radar system.  Assisted in isolating hardware errors.


Developed and tested the strap-down inertial navigation system for the Boeing 767/757.  Coded and tested the altitude tracking portion of the navigation equations and reworked the I/O system for the ARINC-429 serial data bus.  This software was implemented in assembly language on a 16-bit bit-sliced processor.


Designed, implemented and tested software for an automatic tester for the Magnetic Helmet Mounted Sight.  This software included an executive, a debug monitor, self-test, and other routines for testing the Helmet Sight and isolating faults to a card level.  This software was written in 6800 assembly code.




·         Miscellaneous tutorials, including

·         Introduction to modeling with Rational Rose

·         Introduction to FrontPage 98

·         SECS/GEM Manufacturing Automation Protocol

·         Editing with emacs

·         Programming with Ada (Honeywell)

·         Introduction to microprocessors (Hennepin County Vo-Tech)

·         Introduction to M6800 Assembly Language (Hennepin County Vo-Tech)



B.S. Computer Science (minor Physics) from Iowa State University.

            Graduated with Distinction in November 1979.