Edward S.

Two main objectives: one, to get a position at Google which allows me the freedom to both utilize my technical skills to the fullest, and to be able to both learn from my colleagues and hopefully teach them something in the process. Second, to get a position at Google that ‘matters’, that helps address an important or unfulfilled need in Google and that allows projects in Google to grow and meet their potential.

Perl 5 Complete, McGraw-Hill, 1998. ISBN 0079136982. Developer's guide for Perl, designed for experienced programmers who need to learn Perl for a commercial environment. Perl 5 Developer's Guide, McGraw-Hill, 2000, ISBN 0072126302. Second edition of above book, updated for latest perl (at the time 5.6), including new index, developer support appendixes, and perl developer's kit CD.

I am a published architect/programmer with 15 years of industry experience bringing OSS solutions to businesses. I focus on taking mission-critical roles on mission-critical backend systems, roles including: • • • • • • • interfaces and invoicing (business-to-business and internal) configuration and release management data migrations and extraction-transformation-loading code migrations and reverse engineering system architecture and design Productivity tool design/coding and maintenance API design, development and coding for all of the above

Languages: Perl (15 years) Java (1 year) Oracle (10 years) MySQL (3 years) Solaris (15 years), HP/UX (2 years), CVS (10 years), GIT (6 months) IDE: : Compile: data transfer: SCM: Web: API: Languages: DBMS: C (15 years), Ruby (6 months) DB2 (5 years), SQLite (4 years) Linux (9 years), Win32 (10 years) SVN (3 years) C++ (3 years) Python (6 months) Sybase (3 years)



AIX ( 4 years)


Perforce (2 years)

OSS Packages (favorite)

perl and CPAN, tcsh, vim, ctags, screen and mutt, cscope, ddd, gdb and gcc curl, wget, kermit, openssl & openssh, expect, rsync, unison cvs, svn, git, mercurial apache, mod_perl, FastCGI wx, PCRE, libtc, boost, parrot, pugs frink, ruby, ocaml, haskell, tcl/tk berkeleydb, sqlite, mysql

Some specific technical projects in past: • Personal Productivity API: I maintain a personal productivity API, mostly coded in C and perl, which provides an self-contained, integrated development environment with cross-platform open source tools, with integrated environments, configuration management and releases, as well as hooks for coding backend applications. Debugging Tools, API for instrumentation of C/C++/Perl source with ‘tracing’ code. Developed C and C++ ‘parsers’ (approximations via regular expressions) for instrumenting C/C++ and perl code with debugging, tracing output. Written to shorten the learning curve, and simplify both the analysis and debugging of large c/c++ systems with which I was not familiar. Code Generation Framework. Programmable interface to generate code given other constraints (for example, entries in a database being used to generate c code for the extraction of data given a certain criteria). Used to generate C, C++, and perl code for places where performance was at a premium under a fast development cycle. Code Collection, Sorting and Analysis tool. Called ‘Hoover’, was designed to collect unorganized code from multiple machines, and process it in such a way that it could be collected, examined, and stored in a logical manner (ie: in source control). Performance Testing Instrumentation API. Organizational framework in perl and C++ which allowed programmers to test multiple versions of their code in a production setting with minimum overhead, and pinpoint bottlenecks in their code.

Pacific Gas and Electric August 2001 – Present (consultant thru Future Presence) Senior Engineer/System Architect Primary technical developer on the Invoice payment backend for MDSS – the IT branch of the Customer Energy Efficiency initiative at PG&E. MDSS’ primary function is to collect, analyze, and pay work done by external vendors for energy efficient measures that they install – acting both as interface to the outside world, and interface to the internal world to make sure that the vendors PG&E works with get paid. Specific roles include: • • Programming of interfaces with internal systems including the central Billing System, SAP, and Fraud prevention (Perl and C on a solaris backend). Design and development of external interfaces with energy efficiency vendors and local governments, development of transactional system to collect data from said vendors (primarily XML and CSV via perl over scp and via embedded stored procedures running unix invoice processing jobs) Design and implementation of SCM and release practices for both win32 and Unix to handle SOX compliant concerns with minimum amount of impact on productivity. Primarily CVS – moved to GIT and SVN.

• •

Interface and negotiation with both Information Security and Enterprise development to implement code and data security measures for MDSS code. Scaling of project – both in terms of code, data, and personnel – in migration to become a enterprise application. Scaled from 8 people in 2001 to about ~80 at end of this year. Primary API development (Perl + C) for Extraction Translation and Loading tools to handle invoice processing, used Oracle back end. Project support (for both program implementers and for invoice payment)

• •

Goal of CEE initiative is to build a ‘negawatt’ power plant by the end of 2008 – ie: to give out ~1 Bn in rebates over 3 years to help customers save a GW aggregate of energy. Programs are funded by the state as part of the statewide initiative. Wor Excite@Home: June 2000-Dec 2001 (independent consultant): Senior Engineer (Development, Build && Release) Perl and C programmer responsible for timely rollout of Excite@Home Japan WebSpace, and rewrite of build/release process, system monitors, software agents, supporting programs, etc. Responsibilities included: • • • • Implementation of release management. Writing of wrappers around ssh && scp, creating process for releasing into QA/production. Primarily in perl. Development of regression tests to accompany individual WebSpace releases Writing of socket-level stress tests to stress individual WebSpace components Development of localization/internationalization system for abstracting language (and display of language) concerns from WebSpace portal (think libiconv in perl and java) Coordination of production releases.

In addition, interfaced with NOC to troubleshoot various production issues (provisioning, bandwidth, display) with user accounts, and to both apply ‘quick fixes’ for these issues in production, and migrate these production fixes through the full release cycle. Convergent Communications (independent consultant) December 1999-June 2000: Senior CGI/Web Programmer Web programmer responsible for development/maintenance of analytical applications used for company-wide reporting. Environment was primarily perl/javascript based, with DBI connections to Oracle for DBMS support, with web servers being a combination of Netscape and Apache. Applications included: • • Sales support. Used to gather company-wide sales data for reporting to the SEC and forecasting sales growth. Pricing maintenance. Automatic system for controlling pricing and billing from external vendors. Allowed centralized management of purchasing, and integration into Oracle Financials for payment of these external vendors.

LDAP maintenance. Applications - with API - for maintaining business hierarchies. Allows for effective reporting at any business level, be it company wide or for a single branch. Monitoring and Reporting tools. Centralized Pricing tools allowing for monitoring of business expenses.

Companies’ focus was on telecommunications equipment, and providing telecommunications services to large companies. Small company (IT department consisted of 5 people total). In addition, duties included source control support for above applications, perl and opensource maintenance, conversion of said applications to mod_perl, and partial conversion of said applications to Java. CSG systems INC (independent consultant) January 1998- December 1999 Senior Developer/Analyst Developer/Analyst charged with a variety of tasks in Perl 5, PL/SQL, and C++. Company’s focus was providing billing functionality for the tele-communications industry. Accomplishments included: • • • • • Reverse engineering a 50 step, 48 hour data migration process in PL/SQL to 3 step process that took 1 hour in perl. Developing a data-warehousing process to synchronize IBM mainframe data with an oracle database on a daily load basis (in perl, generating PL/SQL) Developing a server-side stress-testing backbone for QA in use with its data processing. Developing and maintaining a business object API (in perl, and C++ linked into perl) for use in server side C++ applications. Developing and maintaining a generic perl API approx 50,000 lines long, used by multiple projects.

In addition, job included DBA support for migration and warehousing efforts, source code control support (CVS), interfacing with quality assurance and system administration. TCI (consulting with Data Migrations) (June 1995-December 1997) System Architect/Technical Lead System Architect and Developer responsible for release of data migration tools on a high pace, rapidly changing, and mission critical billing project for TCI. Environment was Perl, Expect, C, and C++. Accomplishments included: • Implementing a process that downloaded gigabytes of data off of production mainframe systems without needing system shutdown. Cut down process from approximately 48 hours to 2 hours.

• • • •

Developing and maintaining a perl migration API that scaled to 20 developers and analysts for multiple concurrent system migrations. Implementing a wrapper around RCS and SCCS that allowed for rapid application development. Building - through Sybperl and DBD::Sybase – multiple environments and a release strategy to migrate both code and data through a DEV/TEST/PROD release cycle. Supporting the entire developer community (150 developers+) in Sybase and Perl.

Job resulted in successful conversion of 5 billing systems onto distributed, multi-server billing system model (named Summitrak) with over 1000 target tables for migration. Final perl project was 300k lines of code. United Health Care (Sept 1991-June 1995) Database Analyst (June 1993-June 1995) Was a data analyst responsible for timely development and deployment of missioncritical database support applications. Developed tools in perl4, expect and C for: • • • • • • Migration of data feeds off of Unisys mainframe Database analysis/error checking Performance testing, Regression testing of client code Automatic data migration of RBASE/legacy code, Database reporting modules in automatically generated C and SQL.

Project was relatively small-scale, with 20-30 developers. Project was coded in C, Perl and Sybase in a non-distributed environment. System Administrator (Advanced Information and Technology) (Sept 1992- June 1993). System Administrator developing packaging, security, and other user utilities in C, expect, Perl as well as maintenance of AIX environment. Ported utilities for use on world wide web. Developed tools in C and perl4 for • • • • System security Data releases into production Web interfaces to internal processes Client/server debugging and performance

Part of user support staff -- responsible for in office UNIX, C, Expect and Perl support for entire advanced information and technology group. 3M (Purchasing Systems) (1990 Dec -- 1991 June) Data Modeler Purchasing System and Electronic Data Interchange Design.. Worked with end users, invoicing and inventory managers, and legacy programmers on design (GUI) of legacy

purchasing system via EDI. Developed mainframe screens, and worked with mainframe users to define data flow in new purchasing system. Internship through YMCA. University of Minnesota Computer Science Department(1988-1992) Lab Consultant and Teaching Assistant (1988-1992), Consultant and Teaching Assistant: Assisted student users at University of Minnesota computer lab running Apollo, SunOS4.1.Helped electrical engineering and computer science students with Perl, C++, and C, and other questions. Responsible for maintenance/running of machines, and some system administration functions. Education: B.S Computer Science, University of Minnesota References: Len Finegold (Convergent Manager) (720.253.5855) Alan Oatman (CSG systems Manager) (720.922.2612) Michele DeWolfe (co-author Perl Complete) (303.722.4461) Brian Kirsch (technical peer, Excite@Home) (415.946.3056) Eric Waldheim (technical peer, TCI && CSG systems) (303.804.0136)