Robert J. McNamara 324 Downham Ct. Walnut Creek, CA 94598 925-286-9404 (cell) rjmcnamara@diablosoft.net Summary Fifteen years of experience as a software engineer and system administrator in team lead, team member, and independent roles. Particularly skilled with C (12 years experience), TCL/Tk (10 years experience), network/system administration, and design and development of TCP/IP applications, automated network tests, and graphical user interfaces. Comfortable and experienced working in companies of any size, from startups to large enterprises. Language Proficiencies TCL/Tk, C, C++, HTML, SQL, perl, Bourne shell (sh), Korn shell (ksh), C shell (csh), sed, awk C APIs: TCL/Tk 8.0, Win32, UNIX system libraries, Curses, libpcap, Qt TCL extensions: SmartLib, IxTcl (IXIA), Expect, OraTcl, blt, incrTcl, TclX, PBM, mod_dtcl Tools and Technologies MS Developer Studio, TclPro, gcc, gdb, acc, xdb, dbx, make, nmake, Emacs, Codemanager, ClearCase, cvs, sccs, rcs, Legato, Scopus, Sybase 10, Oracle, Apache, Cern httpd, Samba, NFS, DNS, NIS, CORBA, Qmail, SMTP, Radius, Cisco Network Registrar, MG-Soft MIB Browser, UCD-SNMP, SNMP Research, IXIA ScriptMate, Etherpeek, tcpdump, IGMP, DOCSIS Operating Systems Linux (Debian, Redhat, custom builds), HP-UX, Solaris, WinNT, Win9x/Dos, Cisco IOS 12.x, Cisco CatOS Selected Accomplishments - Saved the company $1.8 million as QA automation team lead by developing a method for inexpensively distributing test traffic to and from thousands of cable modems. - Designed and implemented the GUI module for the TriMedia Debugger, in C and TCL/Tk. - Automated an entire suite of network product stress tests with TCL/Expect. Work History Terayon, Inc - Santa Clara February 2001 - Present Senior Software Development Engineer - Saved the company $1.8 million as team lead of the QA automation effort by developing a method for inexpensively distributing test traffic to and from thousands of cable modems. Designed and implemented, in TCL/Tk and SmartLib, the GUI driven tool for managing the generation of the VLAN aggregated traffic. Researched, recommended and executed the plan, which has the potential for much greater cost savings as the test plant is expanded from 2,000 to 6,000 cable modems. - Automated a suite of product stress tests (PSTs) for Terayon's Bluewave CMTS using TCL, Expect, SmartLib, UCD-SNMP, and libpcap. Scripts tested features including ARP, Static routing, Dynamic routing (RIP and OSPF), MPLS, VLAN, and Link aggregation. Packet analysis on layers 2, 3, and 4 and interoperability with Cisco routers were two central aspects of the tests. - Automated several DOCSIS 1.0/1.1 Acceptance Test Plans (ATPs) for testing conformance of both the Bluewave CMTS and Terayon's family of cable modems. Implemented the tests with TCL, Expect, SmartLib, and UCD-SNMP. Consultants Online - Pleasanton June 2000 - February 2001 Software Engineer Consultant at mPower, Inc. - San Francisco - Redesigned and rewrote 80% of mPower's 401k retirement calculator (C, with TCL's C API) to allow it to handle self-directed brokerage account (SDBA) funds and a second retirement plan. The new version was designed to offer the new features while remaining backward compatible with an older version of the enclosing CGI (TCL) code. The calculator is a module of the interpreter that processes the TCL CGI code for the 401k retirement planning web site. - Designed and implemented new CGI code (in TCL) for mPower's retirement planning web site to allow SDBA funds in the code dedicated to "allocating around" non-401k savings accounts. Worked with and shared responsibilities with a team of 8 from Luminant Worldwide. Source revision control was accomplished with CVS. - Designed and implemented new CGI code (in TCL), engineered changes to existing CGI code and associated HTML to allow individuals to set the balances of their own SDBA accounts in special circumstances. This project involved working with the same team from Luminant as the allocate-around project. Revision control was handled by CVS. TAOS - Santa Clara December 1994 - June 2000 Software Engineer Consultant at Synopsys, Inc. - Mountain View April 2000 - June 2000 - Worked on updating FPGA Express Compiler shell (C, with TCL's C API and Synopsys' own in-house APIs) to use a more recent version of TCL (8.2). Source revision control was handled with ClearCase. Software Engineer Consultant at Philips Semiconductors, N.V. - Sunnyvale February 1996 - April 2000 - Designed and implemented the GUI for Philips Semiconductor's TriMedia Debugger (a part of the TriMedia SDK). The GUI was created with a mix of TCL/Tk script and C, including extensive use of the TCL 8.0 C API, TCL objects, and TCL interpreter modification. GUI and debugger back-end were integrated at the C level. Debugger was multi-threaded so inter- thread communication was accomplished with queues. The Debugger Team consisted of myself and three Philips employees working closely together, designing our own inter-module APIs, and designing and running our own tests in C and C++. Source revision control was managed with CodeManager/sccs. The GUI version of the debugger (TMDBG) has shipped with all versions of the SDK since 1.1. - Implemented a user shell (from specs) for the TM-64 Simulator (a part of the TriMedia SDK) using TCL script and making extensive use of TCL's regular expressions. The shell was designed to restrict access to a subset of the data available to the TCL interpreter. Revision control was accomplished with CodeManager/sccs. - DBA for the TriMedia Sybase 10 database, dedicated to Scopus bug tracking. Performed typical administration tasks with SQL (database server setup (Solaris), database creation and backup, user maintenance, table creation) - System Administrator for the TriMedia group HP-UX, SunOS, and Solaris servers. Typical responsibilities included OS installation and configuration, CAD tool setup, queue management, disk and CPU use tracking and reporting, system stability monitoring (all using in-house tools). Performed backups with Legato Networker. Maintained NIS, DNS, RADIUS, CNEWS (nntp) subsystems. Wrote numerous wrapper scripts (in ksh and perl) to tie various tools to the appropriate queues. Setup hardware and software for XTerm, Win9x, and WinNT workstations. Setup and maintained NetBlazer modem-pool server and Ascend ISDN routers (PipeMax, Pipe130, 75, 50). Maintained Ethernet and FDDI network hardware. HP-UX Training Specialist at MTI, Inc. - Sunnyvale December 1995 - January 1996 - Wrote a SCSI benchmarking utility (in C) for MTI's RAID products. Development and testing on HP K200's running HP-UX 9.x and HP-UX 10.x - Instructed the full time system administrator in setup and maintenance of HP-UX's LVM system and of HP-UX in general. Wrote a checklist of instructions for configuring NIS on HP-UX and SunOS 4.1.3. System Administrator Consultant at Genstar, Inc. - San Francisco December 1994 - December 1995 - System Administrator for HP-UX 9.xx Oracle servers. Responsibilities included routine maintenance of an HP H series server running HP-UX 9.xx and an HP K400 running HP-UX 10.xx, software installation, backups, task monitoring and management with Maestro, LVM creation, training of others to work with LVMs. - Setup and maintained a network of Win3.1, and Win95 workstations with common office software (MS office suite), Novell client software and Reflections. Maintained Novell 3.x and 4.x servers. - Wrote a user configurable menuing system (in C with the Curses library) for SysAdmin task automation. Lawrence Berkeley National Laboratory - Berkeley October 1987 - July 1995 Mechanical Engineer July 1993 - July 1995 - Designed and implemented of a set of GUI database lookup tools (in TCL, ksh, perl, and SQL) to allow CAD (HP-EGS) users to browse and edit projects, drawings, and parts. Pointers to locations in the filesystem, project details, and drawing details were kept in an HP Allbase database. Ksh script would generate SQL queries for the database, then pass the data via a Perl client/server pipe to a named pipe on a client system, where TCL/Tk would retrieve and display it. - Designed and implemented a project and drawing browser with NSCA Mosaic and HTTPD. Wrote server code to supply HTML forms to Mosaic browsers, accept POST data in return, and send drawing screenshots back to the browser. Student Assistant October 1987 - June 1993 - Wrote a number of CAD assistance tools in Pascal (for HP Pascal OS) and later ported many of them to C (for HP-UX). Primary (ongoing) project was a schematic post processor for HP-EGS which generated netlists, partlists, supplied descriptions for discrete parts. - System administrator for HP-UX server and workstations (300, 400, and 700 series systems) Responsibilities included software installation and maintenance, backups, hardware setup, CAD tool troubleshooting, and porting tools from other UNIX variants to HP-UX. Education University of California at Davis, 1994 Bachelor of Arts, Political Science Minor, Computer Science Engineering Citizenship United States