Garrett D'Amore
garrett@damore.org
32207 Yosemite Street
Winchester, CA 92596
(951) 325-2191
OBJECTIVE I am seeking a position as a technical lead or software architect for a small software development team (2-5 engineers), involved in operating systems, embedded systems, device drivers, or similar work. I desire a position that will challenge me intellectually, and will provide growth opportunity, and which will allow me to continue to practice software engineering hands-on. I would also enjoy the opportunity to further develop leadership skills.
I would prefer to stay in Southern California, but I am available for telecommuting or positions where some travel is required. I have worked as a telecommuter for the past 3 years, with demonstrated productivity.
EXPERIENCE 3/03-Current General Dynamics/Tadpole Computer, Inc, Principal Software Engineer
Architect and principal software engineer for network technologies, thin-client, and mobile server products.
Work includes device drivers (PCI, Cardbus, PCMCIA, I2C, RS-232 and USB) for networking (802.11 WLAN including 802.11i, 802.3 ethernet), graphics controllers, flash memory storage devices, FIPS 140-2 security, power management, device configuration and platform management. Target platforms include Solaris, NetBSD and Sun Ray embedded firmware.
As part of this work, ported NetBSD UNIX to a new embedded platform based on the AMD Alchemy (MIPS) Au1550, including software support for onboard PCI and PCMCIA host bus controllers, ethernet controllers, and assorted peripherals.
Key product, FIPS 140-2 enabled Comet mobile Sun Ray client, won Best of FOSE 2005.
Additional work includes various projects with Solaris, Linux, and other platforms to support platform features, such as enhanced keyboard/mouse support, gigabit networking, onboard modem, Cardbus hotplug support, etc.
Also responsible for engineering relationship with several key technology partners (including Sun Microsystems, Conexant, and Fortress.)
7/98-1/03 Sun Microsystems, Inc., Senior Software Engineer
Cryptographic Products Group (4/01-1/03)
Principal architect responsible for design and development of device drivers and supporting software stack (kernel scheduler and user-level libraries/daemon) for cryptographic acceleration and secure key management within Solaris. Acted as technical lead. Over 75,000 lines C code were delivered in approximately one year (start to finish) and set world record SSL server performance. (Sun Crypto Accelerator 1000)Shared technical leadership for development of the unique Sun Crypto Accelerator 4000, a combination IPsec and SSL accelerator, and gigabit ethernet adaptor.
Enterprise System Products, Solaris I/O (7/99-4/01)
Enhanced Alternate Pathing (AP) network meta driver, a STREAMs-based MUX driver (DLPI) for Solaris that layers over existing network drivers to provide redundant paths, thereby enabling dynamic reconfiguration (DR) to deconfigure a system board with a network device without causing any loss of access to network traffic on that network. Enhancements developed included automatic switchover in the event of link failure. Also contributed development to similar meta-driver for SCSI, as well as the management framework for the entire product.Secondary projects included acting as lead technical liason with OEM vendors (e.g. ESCON and HiPPI PCI card vendors) for I/O products, and development of enhancements to benefit Solaris Dynamic Reconfiguration (DR).
Data Center and High Performance Products Group (7/98-7/99)
Sustaining engineering on System Service Processor (SSP) used for system management of Enterprise 10000 flagship datacenter/high performance computing platform. Work involved both typical application development as well low level programming designed to access specific ASICs from an embedded RTOS. Languages employed include C, C++, ksh, SPARC assembly, and Tcl. Particular contributions to product include software support for new processor modules, dual power grid, and reliable programming (software update) of flash PROMs within the embedded environment.8/95-7/98 QUALCOMM Incorporated, Software Engineer, Senior UNIX System Administrator
Lead developer for UNIX system administration development team. Development of a complete software environment (built upon UNIX and CDE) to manage and automate everyday tasks for a very large (1000+ workstations, 5000+ users) heterogeneous UNIX network. Tools include a TCP-based administration server (written in C) to manage corporate name space; C, C++, and Java APIs to connect to the server; and assorted clients (printtool, chsh, passwd, poppassd, etc.). Also responsible for the development of many other smaller unique tools to assist in managing our unusually large centrally-administered site. Bundled all of these tools into a unified environment that is installed onto corporate hosts at host installation time via JumpStart and pkgadd (Solaris) or swinstall (HP-UX).
In addition to actually designing and implementing various aspects of the Qualcomm UNIX computing environment, also acted as design consultant and architect for other projects within IT department.
Additional duties include AFS, NFS, and NIS administration. Provide technical support for system administration personnel where strong programming skills or a detailed knowledge of UNIX and/or network internals is required. Platforms administered include Solaris (SPARC & x86), SunOS, HP-UX 10 & 9, IRIX 5.
Prior to being a developer, I was the lead administrator for Qualcomm's WWW (Netscape Commerce and Apache) and FTP (wu-ftpd) servers and developed several tools to assist in this, including a sophisticated activity reporting and log management tool (WebReport).
11/93-current Contractor Provide occasional software development, consulting, installation, and administration of various networks and operating systems (generally UNIX based). Services provided varied according to the client's needs: software architect, security consulting, custom software development (C, Perl, PHP, SQL, etc.), installation and configuration of Internet services, and workstation and server configuration,. Note that this work is done mostly part-time in the evenings and weekends concurrent to other more traditional employment.
Most recently, I've been completed a contract for the port of NetBSD to a new platform: the Atheros AR5312 embedded system, consisting of a MIPS 4Kc core, 802.3 and 802.11 networking, and RS-232 serial ports.
I am a member of the NetBSD Foundation with CVS commit privileges. Generally my contributions to NetBSD have been improvements in the kernel, platform support, and device drivers.
I have also written a number of programs and a few device drivers which are freely available from my website: http://garrett.damore.org. Some of these are quite widely used.
EDUCATION San Diego State University, Bachelor of Science (Computer Science 12/1995)
Distinction in the Computer Science. Upper division elective courses focused on client/server programming, microprocessor architecture, networking/distributed systems, and computer security.
TECHNICAL SKILLS Operating systems: Solaris and OpenSolaris on SPARC and Intel/AMD CPUs, NetBSD (especially SPARC and MIPS platforms), Linux (on a variety of CPUs, 0.99 through 2.6), as well as a smattering of other systems (HP-UX, IRIX, SunOS 4.x, etc.). SunRay (including internals). Very detailed knowledge of Solaris, SunRay, and NetBSD internals, in particular. This includes detailed kernel and device driver interface experience.
Programming languages: C, Java, C++, Perl, PHP, SQL, various assembly languages (SPARC, MIPS, m68k, i8086, m6502), various scripting languages (sh, csh, ksh, sed, awk, Tcl, etc.) Familiar with Scheme, Lisp, Fortran, Pascal, BASIC. (I prefer to work in either C or Java for most things.)
Network protocols: 802.11. 802.11i/WPA/WPA2. 802.1x. 802.3. SMTP, HTTP, POP, SSL, LPD, FTP, and a few others. I'm also familiar with most common Internet protocols, but the ones listed are ones I've implemented and so have detailed knowledge of. I've also designed and implemented a few custom protocols, as well.
Other technologies: PCI. PCMCIA. Cardbus. USB. SSL. RS-232. I2C. PKCS#11. OpenSSL. SSH. NFS. NIS. X11. CDE. Gnome/GTK. TCP/IP. IPv6, DNS. Emacs. BitKeeper, CVS, TeamWare. AFS. automake/autoconf. texinfo. Apache. SGML/XML. STREAMs. DDI. DLPI. Various other GNU tools. Purify. mSQL. MySQL. PHP. nroff. JumpStart. pkgadd.
GENERAL STRENGTHS I believe within the UNIX domain (and especially Solaris/SPARC and NetBSD), I have both breadth and depth. My experience as both a developer and a system administrator on a wide range of systems has given me a unique background to draw upon, and with methodical approaches to both design and problem solving, I have found that I am able to apply this background effectively to a suprisingly large number of problems and design scenarios. I've also found that the general knowledge carries over to a variety of different environments, such as several different embedded environments and operating systems. I am able to learn new technologies very quickly, and incorporate them into my work.