Work History
December 2003 to present
Staff Engineer
Sun Microsystems
Developing IEEE-1394 support in Solaris, including AV/C device and
IIDC camera support. Also, working on other projects, like ACPI thermal zone.
Hardware: AMD and Intel x86/x64, Sun SPARC systems
Operating System(s): Solaris
Language(s): C
August 2001 to present
Consultant
Various firms
Working on various short-term software engineering contracts and software
development projects.
- Developing software for embedded applications. An example of this work
is developing IEEE-1394 firmware for a camera.
- Developing software to either sell or attract future consulting work.
Examples of this work are developing PalmOS and PocketPC applications for
use in rally (auto racing) competition and developing Linux modules for
supporting IEEE-1394 A/V protocols.
- Developing and executing processes for performing legal discovery on Unix
systems in intellectual property lawsuits for the firms digitalwarroom.com
and Electronics Evidence Discovery.
February 2003 to November 2003
Consultant
Hamilton-Sundstrand, Windsor Locks, CT
Worked at client site and at home developing software for an avionics flight
control system test system consisting of DSP firmware and Windows C++
applications. Designed and implemented complete system from scratch.
Provided technical expertise on IEEE-1394.
Hardware: TI 6711 DSP
Operating System(s): 6711 DSK run-time system
Language(s): C, C++
June 1999 to August 2001
Senior Software Engineer
Zayante, Inc., Scotts Valley, CA
Designed and implemented software modules to implement IEEE-1394 control of consumer
electronics devices. Specific areas of effort were AV/C Tape controller, EIA-775
and DTCP copy protection. Actively represented company in 1394 Trade Association
Audio/Video Working Group.
Hardware: Custom PowerPC embedded boards, x86 embedded boards, Cougar Digital TV
reference platform, MIPS embedded boards
Operating System(s): VxWorks, uCOS, Windows (NT/98)
Language(s): C
September 1998 to June 1999
Senior Software Engineer
Pavo/Digital Harmony, Seattle, WA
Designed firmware architecture to implement protocol stack for IEEE-1394 control of
consumer electronics devices. Implemented Windows driver for IEEE-1394 audio hardware.
Represented company in 1394 Trade Association.
Hardware: PCs
Operating System(s): Windows (98)
Language(s): C
July 1997 to September 1998
Senior Software Engineer
Personal Health Connections/Lexant, Seattle, WA
Worked on health care web site (www.dohealth.com). Implemented much of an early
C++ based inference engine prototype. Redesigned Java object that interfaced between
the ASP code and SQL Server database. Ported web site to Chili!ASP under Solaris.
As part of a team, worked on the design of the inference engine that would drive the
next generation of the web site. Performed system administration on an as-needed basis.
Hardware: PCs, Sun SPARCstation
Operating System(s): Windows (NT/95), Solaris
Language(s): C, Java, C++
February 1994 to July 1997
Member of Technical Staff
Sun Microsystems, Mountain View, CA
Worked in "systems interfaces" group, implementing and maintaining general purpose
system libraries and commands. Performed general work, but specialized in time and
timezone and curses/termlib.
Worked in "device drivers interfaces" group on three projects - infrastructure for
IEEE-1394 support in Solaris, device driver point of contact for Solaris 64-bit
conversion, clean up work on Solaris PC Card support.
Represented company in 1394 Trade Association and CPTWG DTDG.
Hardware: Sun SPARC station, Sun Ultra
Operating System(s): Solaris
Language(s): C, Java
October 1992 to January 1994
Software Engineer
Lynx Real Time Systems, Los Gatos, CA
Initially, worked in the bug-fixing group to reduce the bug backlog. Fixed bugs
in every area of the system, from command line applications to kernel code.
Later, worked in the kernel group, porting LynxOS to Sun SPARC embedded system
board. Also, worked implementing on LynxOS cdfs support and adding POSIX.4
message queue support.
Hardware: PCs, Sun SPARCstation
Operating System(s): LynxOS (real-time UNIX)
Language(s): C, x86 assembler, SPARC assembler
March 1991 to August 1992
Consultant to Siemens Nixdorf Informationssysteme
Pande, Inc./TSC, Gardena, CA
Worked porting a SNI developed multi-processor version of SVR4 UNIX to newly
developed (buggy) x86 based hardware. Also, converted technical documentation
from German to English.
Hardware: B20 (internal codename)
Operating System(s): SINIX (SVR4 MP UNIX)
Language(s): C, x86 assembler
April 1989 to December 1990
Consultant to Locus Computing Corporation
Braintec, Irvine, CA
Worked fixing bugs to reduce the bug backlog for AIX 1.2. Fixed bugs in every
area of the system, from command line applications to kernel code. Worked on
AIX 1.2 POSIX conversion effort.
Hardware: IBM PS/2, IBM System/370
Operating System(s): AIX 1.2
Language(s): C
June 1987 to April 1989
Software Engineer
Unisys, Irvine, CA
Worked on PC-Mainframe integration products. Supported terminal subsystem
software package through the end-of-life of the product line.
Hardware: Burroughs B1000, V-Series, A-Series, B-2x, PCs
Operating System(s): MCP, PC-DOS, BTOS
Language(s): Algol, Newp, Pascal, COBOL, C
Additional professional highlights: