CV

Skills

Experience

Summary

I have over 20 years of experience developing software in a wide range of industries: financial, personnel, research, marketing, and aerospace. My core skills are C, C++ and Python. With extensive experience in Git and Mercurial, Qt, SQL and multiple build technologies.

Software Engineer

Malin Space Science Systems

Mar 2013 - Apr 2024

Technologies: C/C++, Python, Qt, Mercurial, Git, GDAL, Make, SQL

Wrote, maintained, debugged and tested software that is part of the ground data system for cameras on several space missions. Existing software was written in a mix of C, C++ and Python. New software is mostly Python with some C++. New development included designing and writing a cross platform image viewing GUI written in C++ using the Qt framework, with a number of unusual requirements: in-house image formats, support for images up to 20 GB, geo-referencing on Mars, quickly scanning through hundreds of images. I also worked on the nightly build system that ran on multiple OSes, as well as running a suite of automated tests. Another project involved recovering data from images that had been corrupted by an unknown spacecraft fault.

Application Developer

Luth Research

Apr 2011 - Feb 2013

Technologies: C++, Objective-C, Cocoa, JavaScript, SQL

Developed client side and back end software for tracking online behaviors and allowing participants to take market research surveys. The software included a background service, extensions for Internet Explorer, Chrome and Firefox, and GUI's on both Microsoft Windows (XP, Vista and 7) and Mac OS X. The software included extensive communication with server side applications via SOAP calls.

Programmer Analyst II

Machine Perception Laboratory, UCSD

Mar 2006 - Mar 2011

Technologies: C++, Objective-C, Cocoa, Matlab

The Machine Perception Laboratory did research into designing and using machine learning algorithms (primarily visual) to solve social robotics problems. Designed and wrote an application called CERT, which finds faces in images or video frames then runs one or more detectors on the found faces. Detectors might find facial features (e.g. nose, left eye, etc) or micro-expressions called Facial Action Units. Tasks included: * Translate machine learning research code from Matlab into cross-platform C++ libraries. * Design and implement command line and GUI applications to run all of the machine learning algorithms. * The GUI is a Mac OS X application written using Objective-C, Cocoa, Xcode and Interface Builder. * Maintain an automated check-out, build and test system that was run on all code every night. * Write tests: unit as well as higher level tests. * Create and use formal procedures for producing official releases of CERT for both internal use and for distribution to collaborators and funding agencies.

Software Engineer

Nisus Software, Inc.

May 2001 - Jan 2006

Maintaining and updating Nisus Writer 6 (C/C++ and Classic Macintosh API), including designing and implementing an outlining feature. Designing and developing major features for the Mac OS X version of Nisus Writer (Objective-C, Cocoa) including: the macro system, find and replace, styles and stylesheets and compatibility with the Nisus Writer 6 file format. Some network and system administration: firewalls, CVS, Apache, MySQL, Bugzilla.

Programmer/Analyst

Cast and Crew Entertainment Services, Inc.

Sep 2000 - Apr 2001

Developing and maintaining payroll and personnel software in C, using a Unify SQL database. Although written in C, the software was organized using Object Oriented principles. The company made extensive use of static code testing (e.g. Lint) and had strict code style guidelines.

Programmer/Analyst

Financial Database Services

Mar 1997 - Aug 2000

Database programming in Informix's 4GL. The software is a financial and automation package for Broker/Dealer back offices. My duties include writing software to client specifications, estimating time required for tasks, and designing applications or sub-systems. Some projects included: converting text reports to PDF, updating and maintaining our in-house source control system and some web server scripting and maintenance in support of Java based products for our clients' sales reps.

Development Programmer

Computer Center Software

Oct 1995 - Mar 1997

Database programming in Informix's 4GL. The software is a large financial and accounting package for non-profit groups, municipalities, schools, etc. My duties included writing software to client specifications.

Research Associate II

Lidak Pharmaceuticals

Jun 1992 - May 1995

Purification of a fatty acid binding protein grown in bacteria from a cloned gene. Modification of the protein with a fluorescent probe and it's use in measuring free fatty acid levels in human blood. HPLC and Gas Chromatography of long chain fatty acids and alcohols. Preparation of sterile suspensions of long chain fatty alcohols for use in anti-viral testing in rhesus monkeys. The work also includes programming and running a Gilson 222 Sample Changer, an automated sample handling system.

Education

San Diego State University

1994 - 1998

University of Southern Maine

1996 - 1996

UCSD Extension

1992 - 1993

UC San Diego

Biology Graduate Program

1990 - 1991

University of Delaware

Bachelor of Arts, Cum Laude, Biology

1986 - 1990