Software Engineer with extensive experience designing, implementing, deploying, and maintaining systems software. Recognized for expertise in programming languages, compilers, operating systems, network protocols, embedded systems, performance measurement and improvement, code refactoring, build automation, single-source publishing.Seeking role as technical leader or contributor in full-lifecycle development of software systems having stringent reliability and performance requirements and operating in geographically distributed, real-time, embedded, low-power, or nanoscale environments.
May 2001 - Present
Founder and Principal
* For Itron, Inc. (The Select Group): + Developed firmware in C for Itron OpenWay Centron meter register board, using Itron's hardware version 3.1 and system version SR3.7. Development environment was IAR Embedded Workbench for ARM 7, hosted on Windows 7 and targeted to an embedded ARM 7 running Quadros Systems, Inc.'s RTXC real-time operating system. Created and maintained a wiki for register developers. * For Data Domain, Inc.: + Wrote architecture specification for adding encryption to Data Domain's de-duplication process. + Maintained Data Domain's plug-in implementing the OpenStorage API for Symantec's NetBackup product. * For IBM Corp. (Computer Task Group): + Made BIOS xFlash utility on System x blades multinode-capable, with support for NUMA memory and I/O controller. Factored out cut-and-pasted code into functions, reduced maintenance burden. Added debugging and tracing information for field deployment to avoid silent failure. + Implemented automatic insertion of arbitrary data values into Baseboard Management Controller component of the IPMI in system under test, mimicking actual sensor readings to simulate error conditions. Cross-developed on Windows XP, using Cygwin toolset for JTAG-accessible Hitachi/Renesas H8-2168 target embedded in System x servers. + Automated production of documentation in PDF, HTML, and XHTML formats from single DocBook XML source. Wrote custom XSL stylesheets, used XSLT processors and XSL-FO formatters. * For start-up Mobile Reach Technologies' Splitware Pocket PC middleware client: + Analyzed code base for memory leaks, implemented new user interface feature, investigated Subversion version control system, developed build automation. * For start-up Overture Networks (SDE, Inc.): + Cross-developed test automation on Windows 2000 host using Cygwin toolset and Ixia traffic generator for Overture's ISG 5000 edge router. * For AdaCore's GNAT Ada compiler (part of GCC): + Created Cocoa-GNAT open-source binding to Apple's Cocoa (NextStep) framework.
Jun 1997 - May 2001
Ganymede Software, Inc. (start-up acquired by NetIQ Corp.)
* Ported multithreaded endpoint software to Irix, Solaris x86, FreeBSD, and SCO UnixWare for Chariot, a successful product that measures network performance by driving actual traffic between endpoint pairs.
* Added traceroute capability to Linux, HP-UX, and AIX endpoints.
* Maintained/enhanced Windows, Linux, Solaris SPARC, HP-UX, AIX, and NetWare endpoint implementations.
Dec 1989 - Jun 1997
Advisory Software Engineer
* Designed, implemented, maintained major components of Networking Services/DOS, APPC Networking Services for Windows, and Personal Communications 4.1 for Windows (for which I headed the product integration team), each providing APPC and CPI-C communications stacks. Designed Trace Facility for NS/Windows and PCOMM.
* Developed definitive set of flows, reference implementation for full-duplex CPI-C protocol over half-duplex APPC channels. Represented IBM's NS/DOS and NS/Windows products to the CPI-C Implementers Workshop. Developed run-time and debugger support for the Format and Protocol Language (FAPL) compiler.
Apr 1989 - Dec 1989
Senior Member of Technical Staff
Alcatel Network Systems
As U.S. representative to an international task force, specified requirements for a company-wide CASE toolset to support object-oriented design and development in France, Germany, Belgium, and the United States.
Sep 1987 - Apr 1989
Senior Systems Developer
Tangram Systems Corp.
* Wrote device drivers in Intel assembly language, designed declarative language for prescribing components of Arbiter product installation, implemented a translator for that language, in which we wrote our installers.
Sep 1986 - Sep 1987
* Integrated third-party Verdix Ada compiler with Apollo AEGIS and Unix operating systems and Domain Software Engineering Environment (DSEE, precursor to ClearCase product of Atria/Rational/IBM).
Oct 1982 - Sep 1986
Senior Software Engineer
Ada, designed for highly reliable embedded real-time systems, includes run-time support for multithreading. * For Ada86 cross-compilers, wrote interrupt manager, task dispatcher, low level I/O support, dynamic storage allocator, calendar and delay support, in assembly language and Ada 83. Wrote device drivers for Intel 8253 Programmable Interval Timer, 8259A Programmable Interrupt Controller, Programmable Communications Interface, and related chips residing on single-board computers controlled by an Intel I2ICE in-circuit emulator.
* Improved size, execution speed, reconfigurability of firmware-resident run-time system.
* Optimized interrupt entry implementation to reduce interrupt latency, presented results to SIGAda conference.
* Retargeted and rehosted Ada Subset Translator, which bootstrapped Ada86 compiler. Wrote tasking and fixed-point arithmetic tests for Ada Compiler Validation Capability (ACVC) suite, still used to validate Ada compilers today.
Oct 1978 - Oct 1982
Air Force Human Resources Laboratory
* For mostly-civilian group of educational psychologists, maintained PLATO-inspired CAI system to deliver technical training to Air Force recruits fresh from basic training.
* Wrote interactive database system for Precision Measurement Equipment school to maintain 10,000-item inventory and generate reports.