Software designer, architect, and contributor expert in creating and testing TCP/IP networking and other microprocessor software (real-time, driver, kernel, application, and user-interface programs) for embedded systems, and platforms including UNIX and Windows.
Experienced developing real-time systems and software in C/C++ (17 years) and assembler for many micros (especially x86) stressing modular design and code clarity to ease maintenance and enhancement. Developed and debugged hardware (from interfaces to multi-board computer systems) using logic analyzers, network analyzers, oscilloscopes, and in-circuit emulators.
My responsibilities have included project-level management and direct implementation, building robust systems that perform as expected while controlling costs. I have also written functional specifications, product descriptions, design requirements, and test plans, interacting with management, marketing, and customers.
MS Excel, Word, PowerPoint, Project, Adobe Framemaker, Visio, SNMP MIB walkers, ClearCase, CVS, SmartBits and software-based protocol analyzers.
4/03 - 6/03 Objective Systems: ASN.1 library ported to Nucleus+ RTOS on ARM
Ported a library of C code implementing ASN.1 BER and PER features, from Windows/UNIX to Nucleus+ RTOS on ARM processor. Also tested the ported code in a simulator environment under Developer's Studio (Visual C++ IDE).
2/00 - 8/01 Nokia: IP Router VoIP driver, environmental monitor, DSL architecture
Architect and senior kernel developer for drivers on an x86 FreeBSD-derived UNIX-based IP router platform. Analyzed and created requirements for network and device drivers, for Voice-over-IP (VoIP) telephony, environmental monitoring, and DSL. Provided planning, architecture, and software design for a DSL PCI board.
Wrote a dynamically-loadable network device driver to transport real-time voice data streams over a microprocessor-based PCI board with shared RAM mediated by a DMA controller. Integration included motherboard BIOS and bootstrap, PCI resource configuration mapping, QoS interface, a virtualized socket interface, a new telephony layer, and data packet I/O for 48 telephone channels. Implemented kernel integration with protocol, network interface, and routing functionality. I also provided C and assembler for the embedded Motorola PowerPC MPC8020 running VxWorks. Also wrote a kernel driver for an SMBus LM87 environmental monitor, for temperatures, fans, motherboard voltages, and power-supplies. Included SNMP traps and LED alarms, and CLI and script-driven (TCL/Tk) web-based GUI.
1/99 - 1/00 NetworkMasters: security features, switch firmware
Software architect, project lead, and contributor for several embedded networking projects, including adding MAC-level security features to Ethernet switch firmware, and regularizing a distributed CLI in a carrier-class router platform. Created proposals, functional and design specifications, test-plans, and presentation collateral. Coordinated fixed-price contracts with clients, and provided user documentation and training for field-service and customer support.
Security features included MAC source-address access control, 802.1p/q, VLAN, autotopology via spanning tree mapping, and trunking, for a real-time embedded system with a high-speed packet bus and CAM lookup tables, for both standalone and stacking switches. Other features included a RADIUS client, and SNMP and CLI interfaces for parametric control and monitor. Developed and oversaw automated functional, performance, and regression testing. Provided detailed consultation for installation and administration user manuals and for VPN deployment.
Developed proposal for a unified command-line interface to integrate different C++-based systems into a single distributed carrier-class router. Wrote a script-driven socket program to automate syntax collection, and created detailed analysis of interfaces and command parameters.
11/95 - 12/98 Compaq/Digital Equipment Corp.: High-availability security and ISP products
Architect and lead engineer for high-availability (cluster-based) Internet-server system products including firewalls, tunnels, and complete ISP solutions. Evaluated, deployed, and tested a laboratory ISP. Provided marketing and product management support, and corporate communication including white papers and an intranet web site for internal distribution of product kits and docs. Marketing support included trade-show interaction, site presentations to ISVs, VARs, and potential customers, copy and diagrams for brochures, and animated product demos.
Technical advisor for vendor partnerships analyzing OEM marketing and manufacturing strategies. Prepared and presented custom quotes to VARs and end-customers for security (firewall, VPN, and extranet), ISPs, Web farms, e-commerce, and high availability (cluster-based) versions of these. Produced product requirements, designs, quotes, specifications, and delivery schedules, and supported large customers including Wells Fargo Bank, the Library of Congress, and the National Bank of Kuwait. Also defined and supervised a performance characterization of AltaVista Search.
Engineering activities included specialized configuration (including startup, state coordination, and failover scripts) for TCP/IP, web, DNS, ftp, telnet, email, RADIUS, LDAP services, LAN/WAN routers, T1 CSU/DSU, analog and ISDN dialup (3Com/USR, Ascend, Cisco, Digital), and Ethernet switches and hubs. Performed protocol analysis (SNMP and IP network tools), UNIX kernel customization and tuning, and Windows NT installation and configuration.
12/94 - 10/95 Compaq/Digital Equipment Corp.: Tru64 UNIX kernel networking
Ported, enhanced, and debugged public-domain PPP to Digital (now Compaq/HP Tru64) UNIX for Alpha platforms. Added dynamic configurability, and kernel locks for SMP thread-safety. Devised high-activity testbed for PPP sessions. Wrote release notes and other documentation, negotiated copyright issues with development partners, and created presentations for training and field staff. Enhanced and debugged TCP/IP kernel modules, daemons, and commands. Added MIB-II and FDDI SNMP v2 support, including ARP and interface tables. Modified telnet and ftp option handling, using detailed TCP/IP frame analysis.
Programmed and supported router features, including LAN and WAN protocols (802.3 and V2 ethernet, token ring, TCP/IP, FDDI, X.25, SLIP, PPP, IPX, DECnet, OSI), routing, bridging, and tunneling protocols (OSPF, RIP, RIP/SAP, SRT, Spanning Tree), and applications (SNMP and MIB-II, telnet, ftp, and router monitoring and configuration). Built and tested fixes in C, 29030 and 80386 assembler, and TMS380C microcode.
Designed an interactive voice-response (IVR) fax-on-demand 24 telephone-line system product. Developed in C a TCL-based scripting language, and scripts for telephone user-interface to company's phone-interface board, and a database API providing portable efficient SQL-like commands. Features included a call-progress monitor and I/O for voice, touch-tones, and fax. Developed application scripts with multi-level voice menus.
Developed and maintained firmware in C and 68020 assembler for a multiprocessor FDDI-Ethernet bridge. Designed and implemented: (1) IPX support in a bridge/router environment, including FDDI translation and SNAP/SAP encapsulation, (2) SMT-protocol support for FDDI and additions for SNMP agent, and (3) IP fragmentation handling in FDDI bridges. Used network and logic analyzers and in-circuit emulator.
Designed and implemented a UDP/IP transport protocol for downloading firmware upgrades to network bridges. Developed GUI and client/server modules for XView on Sun SPARCs and Sun RPC over TCP/IP. Designed a FLASH EPROM file-system and wrote real- time (pSOS) 68K code for storing firmware upgrades on a 32 port multi-media Ethernet bridge.
Designed and built a bi-directional gateway for interfacing to image systems including high-end optical scanners (ImagiTex, Nikon, Xerox, Sony and others) and platforms. Created UNIX device drivers and color image-conversion APIs for newspaper publishing systems.
Created custom multi-processor OS for distributed fault isolation (including scheduler, user interface, and system services). Designed user interface and wrote C and 68030 assembler programs for an irregular network of CPUs and peripherals, with remote-node connectivity.
Designed and built hardware and programs to acquire RF data from a mobile transmitter (a stolen automobile), and analyze that data to locate and recover the mobile unit. Developed a PC-based system with modems to remote RF receivers, and a central-office program (in C and 80x86 assembler) to acquire, analyze, and graphically display the results. Wrote firmware for each Z8-based remote store-and-forward site. Designed and debugged the RF hardware interface.
Designed and developed firmware (6502 assembler) for an intelligent commodities terminal for international metal, grain, and currency traders. Managed five programmers and specified modules, interfaces, and testing procedures, and wrote much of the total program, including a custom real-time OS and user-interface support.
M.I.T., Cambridge, Massachusetts: Three years coursework towards BS degree in Electrical Engineering / Computer Science.