Michael Cowperthwaite
Objective:
A high-level position requiring hands-on software engineering for the control of
intriguing devices.
Work History:
Dec 2014 – Jul 2017
Accel Biotech Los Gatos, Calif.
Senior Software Engineer
Design and development of software controlling diagnostic instrumentation for clients.
- A variety of C# and Python control software for customer instruments.
- API library interfacing Accel's motor and heater control boards.
- Champion of test-first development techniques; extensive suites of tests for C#, Python, Java.
- Advanced feature recognition in multiplexed fluorescent/brightfield microscope imagery.
- Image-focus scoring algorithm for autofocus control system (40X objective).
- Extensive documentation for client's FDA submission.
Additional details can be found
here.
Dec 2011 – Aug 2014
Ventana Medical Systems, Inc. Sunnyvale, Calif.
Staff Software Engineer
Design and development of control software for diagnostic microscopy.
- Implement features on legacy mixed C++ (control) & C# (client) microscope system
- Architecture of second-generation control layer
Additional details can be found
here.
Aug 2011 – Nov 2011
ESP Safety, Inc. San Jose, Calif.
Firmware Engineer
Design and development of control firmware for flame and gas detectors
- Low-level driver code (SPI, I2C interfaces to DAC, flash, real-time clock, under FreeRTOS / ARM Cortex M3)
- Identify and reduce code bloat in tight memory environment (256KB on 8051)
Feb 2008 – May 2011
Lathrop Engineering San Jose, Calif.
Senior Software Engineer
Design and development of control software for a high-resolution scanning microscope.
- Intensive multiprocessing on an eight-core Windows X64 system
- High-speed image acquisition over CameraLink (Matrox and BitFlow framegrabbers)
- High-performance image processing (MIL and IPP)
Design and development of feature-recognition software, identifying biomarker reactions in highly cluttered images from a diagnostic instrument's microscope.
- OpenCV integrated with LabView instrument control software
- Development included standalone algorithm-development test-bed program
- Test-first development process
Additional details can be found
here.
Apr 2007 – Feb 2008
Precision Instrumentation Design, Inc. Santa Clara, Calif.
Senior Software Engineer
Design and implement software for custom instrumentation for a variety of customers.
Projects involved technologies such as
- Microsoft .NET and C++ Interop (Managed and Unmanaged) and MFC/Win32
- LynxOS (Linux-derived RTOS)
- LabView programming
Details can be found
here.
Oct 2000 – Sep 2001
Beckman-Coulter Chaska, Minn.
Principal Software Engineer
Enhancement of client software interfacing to an automated immunoassay instrument. Technologies
include:
- object-oriented database (Poet)
- user interface development with MFC using Visual C++
Provided extensive assistance in upgrading code to improve its object orientation and
compatibility with the C++ library. Implemented Unicode text manipulation.
Details can be found
here.
Dec 1991 – Jun 2000
VISX Incorporated Sunnyvale, Calif.
Principal Software Engineer
Team member and technical lead in the design and development of an ophthalmic surgical laser
instrument, specializing in:
- software architecture, implementing pseudo-real-time control under Windows NT 4.0 and Windows 3.1
- design of software objects for surgery control, safety interlock and interface to hardware devices
- user interface with close integration to the windowing framework and non-standard UI devices
- requirements and design documentation (as required by FDA and ISO)
Also assumed duties of project management, configuration management, SQA liaison,
and technical contact for regulatory, legal, marketing and manufacturing departments.
Details of specific projects can be found
here.
Additional details of all positions can be found at the web version of this
résumé:
http://www.well.com/~mcow/Resume/WebResume.html
Education:
Worcester Polytechnic Institute Worcester, Mass.
completion with honors of B.S. in Computer Science
Systems/language experience:
Windows; real-time OS (Lynx, VRTX); Linux
C++ / C (Boost, Boost ASIO, IPP, OpenCV); C# and .NET;
Python; LabView; HTML, CSS & JavaScript (jQuery);
Subversion, Mercurial, Github; Trac, Jira, Bugzilla; UML class and sequence diagrams
Open Source contributions:
Apr 2003 – Feb 2007
Mozilla Project
QA Volunteer
Mozilla develops Firefox and other software.
Analyze user bug reports (primarily for Thunderbird) to verify, determine root causes, duplicate or invalidate when necessary; keep chief developers informed of important new bugs.
Provide code (JavaScript, CSS and XUL) to solve front-end UI bugs.
Fall 2014
Notepad++
patch contributor
Notepad++ is a programmer's text editor for Windows.
Provided various patches, in C++, to fix a handful of bugs. One particularly complex patch
implemented improved keyboard functionality for the "Incremental Search" dialog.
2011 – present
Macaque
sole developer
Macque is an extension to the Windows media player
MediaMonkey.
Macaque is a webserver allowing the web client to view the player's
now-playing list, control playback, and rate songs remotely.
Announced Aug 2014
Written in Python (based on CherryPy) and serving an AJAX page utilizing jQuery.