ANDREW KELLY P.O. Box 1090 650/279-0485 Elk Grove, California 95759-1090 and@akelly.com PROFESSIONAL SUMMARY Senior Software Engineer with over twenty years of experience. Technologies span Unix, Linux, Windows, the Web, and networking. Expert in C++, C, numerous scripting languages, and the Unix/Linux multi-threaded environment. Considerable experience with Visual C++ and the Windows API. Recent projects include development of features on an embedded GPS ARM/Linux device (C++, Qt/Qtopia). Prior to that, the development and enhancement of browser gateways, caching technologies, audio streaming, as well as considerable work on existing Windows applications. SUMMARY OF SKILLS Unix/Linux: C, C++, Qt/Qtopia, STL, pthreads., many toolits and libraries, most Unix shells and utilities, many other scirpting languages. Win32: MS Visual Studio/C++, Win API, cygwin. Web: PHP, HTML/CGI, XML, Javascript, Apache, many toolkits and libraries. Databases: Oracle, Sybase, Informix, Allbase, MySQL. Networking: TCP/IP (sockets), UDP, DCE/RPC, AFS, media streaming Security: Kerberos, Public key/encryption systems (RSAREF, DES, PKCS) EXPERIENCE Dash Navigation, Sunnyvale 6/2007 - present Senior Software Engineer - Design and implementation of major features of this ARM/Linux based GPS device. Included implementation of ASN.1 based C++ infrastructure on the device (using OSS Nokalva ASN.1), automatic software updates, and numerous bug fixes. Designed and implemented HTTP based services (based on nanohttp) on the device for communication over USB with a Windows based application. Technologies used: C/C++ (Linux, ARM), Linux (x86, ARM), Qt/Qtopia, pthreads, XML, TCP/IP, HTTP. Avvenu Inc, Palo Alto 4/2006 – 6/2007 Software Engineer - Responsible for the maintenance and devleopment of the Avvenu gateway servers. Designed and implemented enhanced routing policies for the browser gateway; a sophisticated file-caching mechanism for handling persisted user storage; enhanced cookie handling for tracking state, authentication and authorization; an operations monitor thread for gathering statistics on gateway performance as well as performing specific control operations; a multi-threaded instrumentation infrastructure for collecting performance data; a simple reusable TCP/IP socket class for handling async/wait operations; in addition to dozens of other minor enhancements and bug fixes. Technologies used: Linux, C++, pthreads, TCP-IP, XML, HTTP. - Additional work included bug fixes and enhancements to the Windows based client. Technologies used: Visual C++, WIN API. BMC/Remedy, Sunnyvale 1/2006 – 4/2006 Software Engineer - Performed bug fixes and enhancements for CMDB (BMC Atrium Configuration Management Database), and the product's build environment. Technologies used: Visual C++, ANT. Nominum, Inc, Redwood City 10/2005 – 12/2005 Senior Software Engineer - Performed bug fixes and enhancements for the company's DNS authoritative and caching name servers. Technologies used: C, C++, Unix, Solaris, Linux. Ticketweb (division of Ticketmaster, San Francisco) 8/2003 – 10/2005 Software Engineer - Performed major enhancements to both the front end (web) and back-end (database) systems for this successful on-line ticketing company. This included a preference/location based recommendation engine that produced events listings fed into a weekly newsletter sent by email to subscribed customers, client reports for promoters and venues, enhancements to the credit card processing interface which allowed customers to sign up to, and be authorised by VBV (Verified by Visa) and SecureCode (Mastercard), implemented a new preview form as part of the ticket purchasing process. These are just a small group of the dozens of systems enhancements and hundreds of bug fixes implemented. Technologies used: C++ cgi programs, HTML/Javascript, FAIRCOM (ISAM based) database, one-of-a-kind C++ utility programs and reports. Nortel Networks, Santa Clara 6/2003 – 8/2003 Software Engineer/User Interface - For the User Interface group, implemented front-end Web based enhancements and bug fixes for the Alteon Switched Firewall, SSL Accelerator, and Wireless Security Switch products. This involved programming in PHP with a Zend interface to a proprietary back-end technology. Technologies used: C/C++, PHP, the PHP Zend module, HTML, Javascript, as well as additional proprietary Nortel technologies. Andrew Kelly & Associates, San Jose 1/2003 – 5/2003 Software Architect/Engineer - Designed, developed, and implemented a web-based client/server architecture to support automatic Windows) PC software installation and upgrade via http transactions over the Internet. At the present time (4/2003) this software has been installed on close to half a million PC's in the US and overseas. Technologies used on the PC: Wininet.dll, extensive use of the Windows registry API functions. On the server: Linux with Apache httpd, PHP4, MySQL. Andrew Kelly & Associates, San Jose 9/2002 – 1/2003 Software Architect/Engineer - Designed and developed a store-front and warehousing web site that allows a novice user to build an online inventory of categorized products with search capabilities. The site supports image uploads, data entry into the item/part database, search by location and category, user administration with multiple security levels (implemented using the PHP4 session level mechanisms), and simplified inventory tracking. The site was developed under Linux, and was implemented completely with PHP4 and MySQL, running under Apache 1.3. Hewlett Packard (at Siebel Systems, Inc), San Mateo 1/2002 – 4/2002 Software Engineer - Ported the full set of Siebel CRM applications from Solaris and AIX to HP's HPUX 11 operating system. This included the operating system specific code that handles multi-threading server applications, dynamic loading of shared libraries, and migration of the product to multi-byte character strings. Technologies used include Mainsoft MainWin, RogueWave Standard Template Library (adopted by HP for HPUX 11), string objects, Apache 2.0 plugins, and many 3rd party embedded software products. Source code control used: Softbench/HMS and Clearcase. Agilent Technologies, Santa Clara 4/2000 – 10/2001 Software Engineer - For the CMDS-IT organization (Document Conversion Center), designed and implemented a publication file upload site implemented on a WIN/NT based IIS (Internet Information Server) using HTML and Javascript running under Active Server Pagers (ASP) scripts using MS VBScript. - For the LitStation development group, designed and implemented an Administration Web Site to be used by LitStation support personnel around the world to view/cancel literature orders, view/update database tables, monitor the run-time operation of the LitStation server system (a network based hard-copy and electronic literature ordering and distribution system), and view log files generated from the dozens of server applications on the production system (C++/CGI, Javascript, HTML, XML). This included the development of a C++ object library facility to handle HTML FORM data submitted by the site to the LitStation database using XML data, utilizing the public-domain CGICC library (C/C++), EXPAT, and qDecoder, as well as C/C++ with Embedded SQL to facilitate the database updates (ALLBASE). - For the LitStation development group, designed an implemented a file upload site implemented on an HPUX Apache based server, using CGI scripts (sh, C/C++, qDecoder), HTML, and Javascript. This site included user authentication, as well as an additional web page for user administration to control access -- granting and revoking user access permissions, allowing self registration, and registration notification using email. - Facilitated the migration of the LitStation Server and associated applications from the Hewlett Packard site in Atlanta to the new Agilent Technologies site in Colorado Springs. This included cloning and splitting dozens of applications implemented in C++, Allbase E/SQL and ISQL using multi-threaded DCE/RPC, as well as Unix Shell, Awk, and Perl scripts. - The effort also included the complete setup of the product's software development environment, including source code control (using HMS) for the Unix (HPUX) based server applications, as well as the PC (Win32 bit platform) based LitStation Client application. - Designed and implemented applications to load multiple (ALLBASE) databases with literature-related information submitted to LitStation. This included the development of a C++ object library facility to parse and process the XML-based data utilizing the EXPAT library. Andrew Kelly & Associates 10/1999 – 2/2000 Software Architect/Engineer - Designed and implemented an E-commerce site for Andrew Kelly & Associates (an online store for fine art and photography) with a fully functional shopping basket and checkout facilities for electronic credit card and purchase- order sales, using secure SSL transactions. The site also featured a fully automated administration interface that allowed the creation and update of product pages and photos. This site was implemented using the Stronghold (Apache based) Web server (FreeBSD Unix, CGI, C/C++, PHP, Javascript, sh, awk ). Agilent Technologies (formerly HP), Santa Clara 7/1999 – 3/2000 Software Engineer - For the TMO-IT organization (Market URSA project), designed and implemented a Win32 DLL for interfacing with the LitStation server (DCE/RPC protocol). The DLL handles login/logoff security protocols, submits orders for hard-copy literature, and obtains status for previously submitted orders. (MS Developer Studio/Visual C++ 4.0, C, MS DCE/RPC). Hewlett Packard, Cupertino 3/1997 - 5/1999 Software Engineer - For the Direct Marketing Information Systems group, developed a tool-set environment for use by the LitStation development group. This included a C/C++ object library, and a complete build-environment interfaced with a network-based software source code control system. Some of the software objects designed and implemented included C++ string objects, a set of C++ collectable template base objects, and a complete set of associated stream objects to allow data, machine, and network independent transfer of objects to and from client and server applications (object brokering). (C++, HPUX10). - For the Direct Marketing Information Systems group, was responsible for the migration of the LitStation server, the Electronic Literature Submittal System (ELSS), and other associated multiple Allbase (RDBMS) applications from HPUX 9.0 to the HPUX 10.2 operating system. (HPUX C/C++, HPUX 9.X/10.X, HPUX DCE/RPC, TCP/IP sockets, ALLBASE). - For the Direct Marketing Information Systems group, was responsible for the migration of the LitStation PC client from the 16-bit Windows 3.X implementation to the 32-bit Windows 95 and NT operating systems. This included rewriting significant portions of the client, as well as redesigning and rewriting three MFC applications to use industry standard C++ objects with the Windows 32 bit API, eliminating MFC from the product. (ISA Dialog Manager, MS Developer Studio/Visual C++, C, MS DCE/RPC). Wells Fargo Bank, San Francisco 9/1996 – 2/1997 Software Engineer - For the Mondex Development Group, was responsible for the design and implementation of the software infrastructure connecting interface devices for Mondex, an electronic cash-equivalent technology which uses an IC on a credit card-like device recognized by ATM's and other Mondex-compliant devices, to the various bank systems that provide authorization, account information lookup, value management, and value transfers to and from the bank purses and the consumer's Mondex device. (C++ on Tandem OSS, C with Tandem Tuxedo environment, Rogue Wave Tools.h++, Borland C++ (R5.0), HPUX Oracle). - For the PACE project group, wrote database application code for HPUX 9, using C, with Informix Embedded SQL. Tandem Computers, Cupertino 2/1996 - 9/1996 Software Engineer - For the TS/MP QA Software Development Group, migrated proprietary Tandem software test tools, to an object oriented, portable, and modular design of test system tools that run under the Tandem operating system, as well as Windows NT. Conducted C++/RogueWave Tools.h++ and object oriented design and programming classes for the test tool development team. (Tandem Guardian/OSS environments, SUN workstation cross-development environment using HP/Softbench for Tandem, C, C++, Rogue Wave Tools.h++, Windows NT, Microsoft Developer Studio for Windows NT, C++ Message Streams for Tandem and/or Windows NT). Hewlett Packard, Cupertino 6/1995 - 10/1995 Software Engineer - Financial Services R&D Group, ported the Financial Information Exchange (FIX) Protocol client, library and toolkit from the Sun Sparc workstation to HPUX 10.0 on the HP 9000/800 series. Designed an object oriented C++ based FIX communications server for HPUX for TCP/IP based networks. (C, C++, HPUX 10.0, FIX, TCL, PKCS, RSAREF, TCP/IP sockets, rpc). United Airlines, Maintenance Operations Center, SFO 11/1994 - 5/1995 Software Engineer - For the Engineering Maintenance Systems organization, designed and implemented the Security Access Facility (SAF) for Qadrant's Distributed System Infrastructure (DSI) environment. (C/C++, HPUX, AFS, DCE, RotueWave Tools.h++). Hewlett Packard, Santa Clara 3/1994 - 10/1994 Software Engineer - Development of the User Transaction Logic API layer of LitStation (a client- server application for PC/Windows and Unix/Motif). This included implementing the migration of the LitStation network interface from standard sockets to the Microsoft Windows Distributed Computing Environment Remote Procedure Call (DCE/RPC) interface, adding functionality to the product, and bug fixing (ISA Dialog Manager, MS Visual C++, Unix C++, C, DCE/RPC, HPUX 9.01, Motif/X11) Recognition International / Plexus Software, Sunnyvale 1993-1994 Director, OEM Systems Development. (C, Informix Turbo internals, Informix ESQL/C). Cornerstone Technology, San Jose 1990-1992 Director of Engineering Operations Manager, Unix Software (C/Unix, drivers for Cornerstone DualPage). Unisys Corporation / Convergent Technologies, San Jose 1986-1990 Software Manager, Business Development Unit (C, X11, Motif X Desktop) Manager, Software Design Verification Group (Network Systems Division, Convergent Technologies). Software Manager of the AT&T Group, Convergent Technologies (C, Unix System V) Experience prior to 1986, as well as references, are available by request. Visit http://www.akelly.com/resume