Alan Perry
alanp@snowmoose.com
http://www.snowmoose.com

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:


Additional work: Education History

1982 to 1986
Bachelors of Science, Computer Science
New Mexico Institute of Mining and Technology, Socorro, NM

Additional classes: Salary information and references available on request.