(831) 419-0468 (mobile)


Work in the mobile standards industry developing new specifications or enhancing existing specifications.


Over twenty-four years experience in international standards, designing and implementing graphical user interfaces, real-time systems, and Windows and UNIX applications. I have successfully worked on international standards committees, and helped produced a global Data Synchronization and Device Management Standard - SyncML. I have developed user interfaces for Windows, semiconductor equipment, machine controls, and arcade video games.


Hands on software development experience on:


Staff Engineer

Qualcomm Incorporated, San Diego

February 2004 to Present 

Systems Engineer for Augmented Reality project (Focus) - providing high level architecture designs. Open Mobile Alliance (OMA) participant, representing Qualcomm. Elected chair of the OMA Device Management (DM) working group. Presented DM to various groups inside and outside Qualcomm. Worked with groups within Qualcomm to introduce technology into OMA. Contributed to further technical development of the OMA DM specifications.

Mobile Standards Consultant

January 2003 to January 2004 

OMA participant, guest in OMA Data Sync group. Work with companies to improve their working knowledge of international mobile standards such as the OMA, 3GPP, and IrDA.

Create proposals for introduction of new technology to OMA.

Senior Software Development Engineer

Starfish Software, Scotts Valley 

December 1999 to December 2002

Chairman of SyncML Technical Committee - representing Starfish and Motorola. 

Lead technical development of the SyncML specifications.

Co-authored book:  "SyncML: Synchronizing and Managing Your Mobile Data" , published September 2002.

October 1997 to December 1999 

Senior Software Engineer. 

Design, document and implement next generation of PIM. 

Wrote software interface between TrueSync and Schedule+ as well as Outlook. Wrote software to communicate with the Motorola Timeport P7389 phone. Wrote software to communicate with the Motorola Timeport T1088 smart phone.

Contract Software Engineer

Self-Employed Part-time 

April 1993 to September 1997 

Design and implement a real-time storage scope under NeXTStep for recording motion and velocity from a servo motor controller. 

Design and implement a terminal for communication with a servo motor controller. 

Port servo terminal to Windows NT. 

Design and implement a device driver for NeXTStep to communicate with an ISA-based servo motor controller. 

Design and implement objective-C wrapper for networking functions.

Member of Technical Staff

Filoli Information Systems, Co., Palo Alto 

February 1996 to April 1993

Design and implement windows as a member of a large team on an object-oriented distributed database project on NeXTStep. 

Improve workflow automation tools. 

Monitor performance of application, work with other engineers to improve the speed of processing. 

Design and implement objects for an automated test program.

Senior Software Engineer

Triton Technology Inc., Watsonville 

April 1995 to February 1996 

Design and implement a series of cross-platform plotter classes for real-time data display. 

Design and implement a real-time graphic display, for monitoring ship under Windows 3.1. 

Modify existing software to convert old data and perform real-time display of the data. 

Design and implement a pipeline tracking, along with real-time image display under Windows 3.1. 

Design and implement a cross-platform C++ class for communicating with a wide variety of printers.

Staff Engineer

Galil Motion Control Inc., Sunnyvale 

June 1991 to April 1995 

Design and implement a variety of new tools in C++. Improve existing Motor tuning tools. 

Design and implement C++ tool for selecting motors, amplifiers, and controller. 

Design and implement C++ translator for MS-DOS and MS-Windows, converting Autocad DXF output to motion output. 

Design and implement C translator for MS-DOS, converting HP Plotter output to motion output. 

Design and implement Visual Basic tool to help a novice user set up, tune and debug a motion system. 

Design and implement Windows NT Driver. 

Design and implement several different VBXs, such as storage scope and 3D motion.

Software Project Leader

Nanometrics Inc., Sunnyvale 

February 1989 to June 1991 

Lead a team of 5 software developers. Bring in Unix workstations for group software development. Design, implement and train source control in group software development. 

Redesign and implement a Scanning Electron Microscope for semiconductor wafers. 

Convert existing Scanning Electron Microscope software to run in Protected Mode on MS-DOS. 

Design and implement a network of 10 Unix (HP/Apollo) workstations, complete with UUCP connection. 

Design object oriented Scanning Electron Microscope - hardware as well as software. 

Design object oriented data collection station. 

Implement new version of Automatic Thin Film Measurement tool. 

Improve SECS-II interface in Scanning Electron Microscope.

Sr. Software Engineer / Lead Programmer

SiScan Inc., Campbell 

November 1986 to February 1989 

Design and implement new sub-systems for a Confocal Laser Microscope for semiconductor wafers. 

Design and implement embedded user interface, using both text and graphics. 

Design and implement linewidth measurement routine. 

Improve graphics routines - increase speed, and add functionality. 

Implement SECS-II interface. 

Design and implement in-house tools based on Sunview.

Sr. Software Engineer / Lead Software Engineer

FMC Corp, Ordnance Division, San Jose 

April 1985 to November 1986 

Member of team working on experimental tank crew station. Design and implement graphics system to use live video and touch screen. Lead team into finished product. 

Improve 8086 based multi-tasking operating system. 

Design and implement 8 line serial I/O to extend the operating system. 

Design and implement a graphics system based on GKS to run on a multi-tasking operating system. 

Design and Lead: voice recognition, voice synthesis, and an image processing system.

Video Game Designer / Software Engineer

Atari Games Corp., Milpitas 

August 1982 to April 1985 

Develop games for arcade video game. Work closely with hardware, graphics, and especially marketing personnel to bring a video game to production. 

Design, implement and ship a 68000 based arcade video game (Packrat). 

Design and implement diagnostics for the 68000 based video game. 

Extend a Forth-based development workstation to work with a T-11 processor. 


BS, Electrical Engineering, Computer Science, University of California, Berkeley - 1982 

Project Management training. 

Object-oriented training - C++, Objective-C. 

Training in SQL. Training in Relational Databases.


Co-author of "SyncML: Synchronizing and Managing Your Mobile Data", published September 2002.

References available upon request.