Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Edward S.

Peschko
Objectives:
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.

Publications:
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.

Overview:
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
Skillsets:
Languages: Perl (15 years) C (15 years), C++ (3 years)
Java (1 year) Ruby (6 months) Python (6 months)

DBMS: Oracle (10 years) DB2 (5 years), Sybase (3 years)


MySQL (3 years) SQLite (4 years)

OS: Solaris (15 years), Linux (9 years), AIX ( 4 years)


HP/UX (2 years), Win32 (10 years)

SCM: CVS (10 years), SVN (3 years) Perforce (2 years)


GIT (6 months)

OSS IDE: perl and CPAN, tcsh, vim, ctags, screen and mutt,
Packages : Compile: cscope, ddd, gdb and gcc
(favorite) data transfer: curl, wget, kermit, openssl & openssh, expect, rsync, unison
SCM: cvs, svn, git, mercurial
Web: apache, mod_perl, FastCGI
API: wx, PCRE, libtc, boost, parrot, pugs
Languages: frink, ruby, ocaml, haskell, tcl/tk
DBMS: berkeleydb, sqlite, mysql
Projects:
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.
Experience:
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 open-
source 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 mission-
critical 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)

You might also like