Summary
I have more than fifteen years experience in developing flexible, long-lasting software solutions. I enjoy developing solutions to real problems with the best tools for the job, rather than focusing on a particular language or technology.
Technical Summary
Areas of strong or recent experience:
- C#, C++, OOP (Object Oriented Programming)
- Python
- Borland C++ Builder
- Windows OPK and Win32 System Programming, COM
- JavaScript, JScript, HTML
|
Areas of past experience:
- Borland Delphi (Object Pascal)
- Microsoft Visual Basic (VB)
- SQL/Relational Database; ODBC
- XML with Java and Python
- Ruby, Perl, awk
- Java, Swing
|
Relevant Work Experience
(Note that some dates overlap, while I was working two jobs at once)
Senior Software Engineer (Contract)
- Developed the Backup and Restore feature for HP Image Zone Plus (HPIZ+), a digital image
management software package, written in C#.
- Developed a "Digital Negative" feature for the HPIZ+; this allows you to revert an image back to its original state (as it came from a camera, for example) after any changes.
- Developed a Sync-to-iPAQ feature for the HPIZ+, which synchronizes and optionally resizes images between the PC and an iPAQ.
- Developed a dramatically simplified localization strategy and the tools (in C# and Python) to implement it for the division's contributions to the HPIZ+ project.
Senior Software Engineer (Contract)
- JSP and JavaScript code for customer support web page.
- Setup and configuration of MS Exchange server on Windows 2000.
Senior Software Engineer (Contract)
- Developed XML-processing code in Python (using pyxie, pyexpat, sax, etc.)
and Java (using Sun's JXTA).
- Developed some miscellaneous tools, for example a "comment formatter"
that will format the commented sections of code to look good in printed
format (for publishing in a book).
- Design and development of a Java unit test kit.
Senior Software Engineer / Team Lead (Contract)
- Championed and then developed a System Recovery on bootable
CD for restoring (i.e. re-installing) all or part of the software on
the system. The bulk of this project was written with C++, with
some utilities written in assembly.
This system includes security to prevent the CD from being used on non-HP
systems (also known as a BIOS-lock).
This system greatly increases productivity by replacing the previous
system that was used; in comparison it requires fewer CDs, is dramatically
faster and is much more flexible.
Not only did this recovery system save HP many millions of
dollars, it has proven to be the best System Recovery in the industry.
- Developed a Windows 9x/Millennium Application Recovery program
for re-installing selected applications and drivers from the Recover CD,
while in windows.
- Developed more than 50 separate applets, tools and utilities; some
are used in the Windows OPK (pre-installation) process and some are
delivered as part of the HP Pavilion system, most were written with C++
(using MSVC and Borland C++ Builder) with inline assembly as needed. If
you have used an HP Pavilion PC, then you have already seen some of my
work.
Software Engineering Contract
- Implemented Microsoft Windows NT 4.0 OPK + SP 3 on Pen-based
computers.
- Wrote utility applications with MSVC or Borland C++ Builder as needed
(for example, an application for APM verification).
Senior Software Engineer - Research and Development Group
- Developed Designs for Windows 95 product written with Microsoft
Visual C++. This product is a configurable sales force database.
- Established coding standards and debugging strategies.
- Developed product prototypes using Borland Delphi with relational
database and presented the results internally and to selected customers
for review and feedback.
Multidata Corporation, February 1994 - October 1995
Software Engineer - Core Technology Group
- Developed C++ code for insurance business automation software
applications written with the Microsoft Foundation Classes (MFC).
Worked with client/server SQL databases (ODBC + Oracle, Sybase,
Q+E, dBase).
- Performed extensive research and analysis of various PC database
vendors to select the optimum price/performance/features for our product,
leading to a recommendation (ODBC with Watcom’s database engine) which
was used to build a successful business solution.
- Developed System Administration software tools for the above
application programs.
- Solved long-standing problems dealing with printing, database
performance, and custom controls.
- Was instrumental in all aspects of releasing several versions of the
OpenAccess product and the associated System Administrator software.
TGV Inc., October 1994 - June 1995
Software Engineering Consultant (Contract)
- Designed and implemented keyboard mapping utility for Telnet
application in C++, using MFC. This required trapping all Windows
keystroke input messages, looking up their resulting emulator equivalents
in dynamic, user-configurable tables and sending those results to the
emulation library at run time.
- Designed and implemented visual layout descriptions for both PC
keyboards and various target emulator keyboards, such as VT300 and
TN3270. This allowed for adding new keyboard definitions simply by
defining new Custom Windows resources (stored in DLLs).
- Implemented key mapping logic, from PC-Windows keys to the various
types of keys on emulator keyboards, handling of special keys (such as
the Compose key on the VT300). Additionally, defining macros for
special Windows keys (such as Ctl-Esc, Alt-Tab, etc.) was supported,
via windows hookprocs.
- Provided an easy-to-use drag-and-drop configuration interface for
users, with a storage and retrieval mechanism for keyboard mappings and
macros.
Software Publishing Corporation (SPC), June 1990 - September 1993.
Software Engineer - Information Systems Software Development
- Developed and maintained code for a platform-independent layer for
Windows 3.1 and Macintosh, in C and C++. This layer was used by
Harvard Graphics for Windows and other SPC products.
- Developed Windows 3.1 C and C++ code on a SQL database access product.
Designed and wrote the error handler, developed code for spreadsheet and
crosstab data viewers.
- Redefined the default C++ new and delete operators to
use SPC's internal cross-platform memory management API and added
conditional memory debugging features, resulting in large savings of
engineering debugging time on the project.
- Wrote test drivers and used code coverage and metrics tools on my
own code.
- Wrote drivers for white box testing of C++ code. These drivers
automated testing by allowing access to the program's function calls
and data while using code coverage tools.
InfoAlliance Software Development
- Wrote a tool (in C, for DOS and OS/2) that gathered data from the
version control system and other data sources on the network and created
a source code database for the entire project.
Harvard GeoGraphics SQA (contract position)
- Wrote and implemented test plans and automated testing scripts for
SPC's geographic presentation product.
Test Engineer (part time - evenings)
- Designed and implemented test plans for ALC's Requirements Driven
Developer (RDD-100, 300), Computer Assisted Engineering (CAE) tool on
various platforms: Sun Sparc, Apollo, Macintosh.
Associate Engineer - Redwood Product Test
- Developed detailed strategic and technical product test plans,
schedules and task assignments for myself and four other engineers.
Redwood Test Tool Hardware and Software Development
- Developed hardware and software (in C) for the Redwood Automated
Tester (RAT).
- Coordinated and directed engineers in software script writing for
the RAT.
Education
References available upon request.