Thursday, January 29, 2009

Resume: Senior Software Engineer Object-Oriented Analysis & Development -- OO Perl, Perl, and C

PETER JIRAK
SENIOR SOFTWARE ENGINEER
OBJECT-ORIENTED ANALYSIS & DEVELOPMENT

831 Union Street #2
Brooklyn, NY 11215
C: 612-840-2166
peter.jirak@gmail.com
http://www.linkedin.com/in/peterjirak

SUMMARY

Senior software engineer with 10 years of software development experience and experience consulting and coordinating with management, development team peers, quality assurance, technical writing and technical support. Known for diligent, responsible and creative approaches to challenging development issues.

Experience includes:
▪ C, Perl, & Object-oriented Perl
▪ Critical applications
▪ Product & application integration, including integration with Oracle databases
▪ Multi-platform project development
▪ Data management and file communications
▪ Data and process automation
▪ Implementation of unit tests, test tools, and automated testing.

Strengths include:
▪ Rigorous object-oriented design and programming
▪ Dedication to quality
▪ Requirements analysis
▪ Ability to switch rapidly between projects, tool sets, and development environments.

SKILLS
Skill                              Skill Level   First Used    Last Used    Experience
Perl Expert 06/1998 11/2008 7 years
Object-Oriented Perl Expert 04/1999 01/2008 5 years
C Proficient 09/1995 01/2004 3 years
C++ Proficient 05/2000 05/2001 6 months
Perl/Mason Proficient 10/2006 01/2008 1.5 years
Microsoft Visual C/C++ Beginner 05/2000 05/2001 6 months
System V Programming in C Proficient 05/2000 05/2001 1 year
SQL Proficient 06/2002 01/2008 4.5 years
UNIX Proficient 09/1995 11/2008 12 years
Solaris Proficient 09/1995 11/2008 10 years
AIX Proficient 05/2000 05/2001 1 year
Linux Proficient 05/2000 10/2006 2.5 years
Windows Development in Perl Proficient 04/1999 10/2006 3 years
Design Patterns Proficient 04/1999 01/2008 6 years
Object-Oriented Programming Proficient 04/1999 01/2008 6 years
Automated Testing Proficient 06/1998 11/2008 2.5 years
DBI.pm Proficient 06/2002 06/2007 4 years
Class::DBI Beginner 10/2006 01/2008 1.5 years
Test::More Beginner 10/2006 01/2008 1 year
LWP.pm Proficient 07/2001 04/2005 5 months
XML::Simple Proficient 06/2001 07/2001 1 month
Win32::IE::Mechanize Beginner 04/2005 10/2006 3 months
CGI Programming in Perl Proficient 07/2001 07/2002 6 months
JavaScript Proficient 07/2001 06/2007 3 months
HTML Proficient 06/1998 01/2008 2 years
Source Code Refactoring Proficient 04/2000 01/2008 3 years
Client/Server Development Proficient 04/2000 06/2007 2 years
Web application development Proficient 07/2001 01/2008 1.5 years
LAMP Proficient 06/2002 01/2008 3 years
OLAP Proficient 12/2003 01/2008 2 years
OLTP Proficient 12/2003 04/2005 3 months
ETL Proficient 10/2000 10/2006 3 years
MVC Proficient 10/2006 01/2008 1.5 years
High volume transaction systems Proficient 12/2003 11/2008 3 years
Oracle Proficient 06/2002 04/2005 1.5 years
MySQL Proficient 10/2006 01/2008 1.5 years
PostGreSQL Proficient 04/2005 10/2006 1.5 years
Database Schema Design Proficient 06/2002 10/2006 1 year
XML Proficient 06/2002 11/2008 3 years
XSD Beginner 06/2002 04/2005 6 months
XML Schema Design Proficient 06/2002 06/2007 9 months
Data Formats Proficient 12/2003 04/2005 6 months
Data Feeds Proficient 12/2003 04/2005 4 months
Data Parsing Expert 06/1998 11/2008 5 years
Data Analysis Proficient 10/2000 10/2006 2 years
Error handling Proficient 08/2002 06/2007 1 year
Failure tolerance development Proficient 08/2002 06/2007 1 year
Proprietary Scripting Proficient 01/2008 11/2008 6 months
Proprietary Systems and Platforms Proficient 12/2003 11/2008 3 years
UML Beginner 10/2000 09/2001 5 months

EDUCATION

University of Minnesota - Completed nine credits of advanced degree course work in Computer Science
  • Network Programming, Theory of Databases, and Internet programming.
University of Minnesota - Bachelor of Science in Computer Science and Bachelor of Science in Mathematics
  • Degrees completed with distinction. Member of the Tau Beta Pi Honors Society.
  • Emphases included Statistics, Software Engineering, System Architecture and Computer Architecture.
  • Recipient of academic excellence scholarships from the Medtronic Foundation and the Mathematics department.
PATENTS
  • Patent pending for Physical On-Demand which I architected and implemented at Digital River.
CONFERENCES
  • Attended North American Perl Conference in 2006.
EXPERIENCE

2008: Associate in the Core Strategies department at Goldman Sachs, New York
Member of the Securities Database Administration team
Member of the six person team responsible for the 24x7 operation and enhancement to Goldman’s globally replicated trading database used for all risk management and derivative trading at GS. The environment had grown organically and I and my team were tasked with operational support as well as development of management/monitoring infrastructure. Tasks ranged from installing new databases and coordinating with Sys Admins to development of monitoring infrastructures in Perl to debugging new releases of the database.
  • Deploy, support and maintain databases which contain real-time information on Goldman Sachs securities information. Systems used to perform and track trades, perform investment risk analysis, deliver investment risk analysis data, and perform pricing of tradables in real-time.
  • Keep databases online, functional and available so that internal consumers can get real-time trade, risk, and pricing information.
  • Support “desk-strategists” who use this data to provide real-time risk analysis of securities and other investment products to traders and investors.
  • Track status of deployment requests, system defects and other issues.
  • Deploy new instances of Goldman Sachs Securities databases.
  • Investigate defects when they arise or are found.
  • Develop and enhance reporting and monitoring processes to detect, diagnose and alert system problems and defects.
  • Develop and enhance automation tools to automate functions performed by the SecDba team.
  • Enhance performance of existing Core Strategies tool set used by “desk-strategists” to find and maintain transactions.
  • Provide direct assistance to “desk-strategists” and Information Technology in tracking down system issues and implementing applications that run on the risk analysis platform.
2007: Senior Software Engineer - DoubleClick, Chicago
Implemented changes to the Performics/DoubleClick platform. The platform paired web-site publishers with web-site advertisers. Publishers received revenue when web-site advertisers sold product from a link that a consumer clicked on in the publishers web-site - DoubleClick receved a revenue share.
  • All work implemented in Perl. Apache was used as the web server which ran on Solaris. DoubleClick had MySQL databases as a backend. Perl’s Class::DBI was used to access the MySQL databases. Mason was used for the front-end.
  • Myself and my team implemented a new accounting report process on the DoubleClick platform to improve tracking and realization of revenue.
  • Implemented automated testing using Test::More of the classes that comprised the back-end of the new accounting report process.
  • Created a tool to automate testing of the migration of the accounting data into the summary table. This tool verified the process that populated the summary table - verification of this process was essential as these reports are used to realize revenue and pay out web site publishers.
  • Added a new interface to the click server to allow web site publishers to automatically place an affiliated advertiser’s link on their page without manual intervention. This made it easier for publishers to utilize advertiser campaigns that they felt best suited their web site without contacting an account manager.
2006 - 2007: Senior Software Engineer - Holmes Corporation, Eagan
Designed, implemented, and documented web-based applications that run on Holmes Corporation’s web-based educational learning system. Web-based applications are geared towards training adult professionals for preparation for certification exams.
  • All software implemented in Object-Oriented Perl with MySQL databases. All software ran on Apache on UNIX servers.
  • Perl’s Class::DBI module and DBI.pm were used to perform database operations.
  • Used Mason as the “View” layer to generate HTML server-side.
  • Used Perl’s Test::More module to automate testing of class modules.
  • Fixed bugs in Holmes Corporation’s application engine which provides interactive training experience for users.
  • Added bug detection to the application engine to make detection of bugs in the application data easier.
  • Automated the process of correcting errors detected in the data for the application engine.
  • Designed, implemented, and documented the Common Content Repository. Holmes Corporation’s Common Content Repository stores the outlines and content for the training materials for the courses and permits that content to be displayed to the user’s web browser dynamically, on-demand.
    • Wrote Object-Oriented API to the CCR in Object-Oriented Perl. This abstracted programmatic use of the CCR from the data model used for the CCR.
    • Implemented a command-line interface to the CCR for testing purposes.
  • Enhanced Holmes Corporation’s exam engine to support a richer interactive experience for users.
  • Designed and implemented Holmes Corporation’s game engine. The game engine provides an interface that permits flash based games to use Holmes Corporation’s exam engine. This allows users to test their course knowledge using interactive flash based games.
    • Game engine implemented in Object-Oriented Perl. Classes abstract data from their representation, easing changes in data representation if necessary. Complex tasks such as outputting game data in XML are modularized into classes, easing changes in the XML representation as necessary.
    • Game engine receives HTTP name-value pairs from flash based game client; sends response in XML.
2005 - 2006: Senior Software Engineer - Shavlik Technologies, Roseville, MN
I was a tool smith and created tools used to gather data about software patches for Windows OS and applications. I was also responsible for releasing the dataset used by Shavlik’s Compliance product.
  • Designed, implemented, documented and delivered software that collects, aggregates, analyzes, and verifies data about software patches for Windows OS and applications.
  • Designed, implemented, documented and controlled the release process for dataset consumed by Shavlik's Compliance product.
  • Solutions developed in Object-Oriented Perl with PostgreSQL database backends. Solutions ran on Windows and UNIX. Tools generated reports in XML, HTML and formatted plain-text.
  • Developed a solution that extracts patch information from Microsoft's technet web pages and produces aggregated reports in tab-delimited format and in XML. This solution spiders Microsoft's technet web site, parses the web pages, and identifies each available patch, the patch URL, and the URLs of all foreign language patch files.
  • Developed a solution that expands, parses, and analyzes Microsoft patch files, then produces a report in XML that contains data needed for installing the patch on a target system.
  • Developed a solution that creates a user-specified report used to verify Shavlik's Windows patch data. This solution parses data from two XML files, merges the data together, identifies the desired sub-set of patch information and produces a human-readable report in formatted plain-text.
  • Developed a solution that detects and verifies product dependencies in Windows patch data. This solution let one person produce an accurate patch product dependency data set in four hours, a task that formerly required two people three days. This solution parses Shavlik's XML patch data file, identifies the XML elements that describe product dependencies in Windows patch data, then checks this data against other product and patch information in the XML file to assure data consistency and integrity. In addition, it creates a product dependency inconsistency report in HTML.
2003 - 2005: Software Engineer - Digital River, Eden Prairie, MN
Implemented a variety of services that ran on Digital River’s Perl-based eCommerce platform.
  • All software implemented in Perl.
  • All software used Oracle SQL databases and used Perl’s DBI.pm module to perform database operations.
  • Analyzed client’s business process, determined requirements and specifications, and then created the software architecture.
  • Write software documentation
  • Write test scripts
  • Coordinate software delivery with Account Development Managers, Project Managers and Quality Assurance.
  • Architected, designed, and implemented Physical On-Demand, a new on-demand software CD fulfillment system.
    • Designed database schema of several dozen tables.
    • Designed XML front-end protocol, documented XML using XSD. XML was sent to Physical On-Demand using HTTP POST
    • Implemented in Object-Oriented Perl.
  • Re-wrote the catalog bulk upload process. The catalog bulk upload process was an eCommerce web-portal solution - it allowed third party vendors to upload their product information into Digital River’s catalog database, so that other eCommerce web sites could receive data feeds and sell directly from this catalog with Digital River receiving a revenue share.
    • Re-wrote the catalog bulk upload process to improve performance and better suit clients business needs.
    • Worked with software manager and Account Development Managers to determine the requirements and specifications.
    • Implemented in Object-Oriented Perl.
  • Setup financial revenue report feeds for clients and Digital River accounting department.
    • Data feeds produced in a variety of formats: Comma Separated Values, tab-delimited, etc.
  • Setup real-time subscriptions that activated software upon purchase by sending an HTTP request to the product vendor’s web server.
    • Used the Perl LWP module to make HTTP requests to the product vendor’s web server
2002 - 2003: Software Engineer - Sun Microsystems, Inc., Eagan, MN
Member of the development team responsible for SAM-QFS, a high performance file-system.
  • SAM-QFS combined QFS - a high performance file system with SAM - an archiving technology.
  • SAM is a feature rich archiving solution that includes segmenting large files which allows these files to be archived in portions instead of all at once. This feature was optimal for large files where small regions of the file could change.
  • This file system/storage solution was implemented in C.
  • Analyzed product to reproduce bugs reported by the customer, then designed and implemented fixes using C.
  • Demonstrated resolution of product defects.
  • Developed a solution in Perl using DBI.pm and the Oracle backup API to integrate Oracle backup into the SAM-QFS file system.
  • Modified handling of stat and lstat system calls in the kernel of the SAM-FS file system.
  • Improved handling of hardware failures from the SAM archiving component in the file system - propagated errors from the device driver APIs back to the file system and improved handling of those errors.
  • Implemented bug fixes to tar.
  • Added support to ls for displaying information about the SAM file segments.
  • Assisted documentation writer in documenting new features, enhancements and bug fixes in SAM-QFS.
2002: Contract Software Engineer - Digital River, Eden Prairie, MN
Developed CDToGo, a platform that supports on-demand customer data CD creation. CDToGo takes a CD production request from initiation to completion, writing and labeling the CD (including barcode) and generating shipping information.
  • Implemented in Object-Oriented Perl using the CGI protocol via CGI.pm.
  • Ran on Apache on Solaris.
  • Designed database schema for Oracle SQL database used to track software, customers, CD requests, and shipping addresses.
    • Used Perl’s DBI.pm to perform database operations.
  • Designed XML schema for XML that contained software configuration data.
  • Read software configuration data into CDToGo using Perl’s XML::Simple module.
  • Designed the CD production request protocol and the exception handling mechanism.
    • CD requests were made as a set of HTTP name-value pairs.
  • Documented the CDToGo platform, including the CD request protocol.
2001: Contract Software Engineer - Superior Ford, Plymouth, MN
Designed, implemented, tested, documented and supported an application that analyzes financial data and creates a series of financial reports in HTML. This application was implemented in Object-Oriented Perl and took in a tab delimited flat file that contained information on each car sold at the dealership and produced aggregated financial reports in HTML. The application ran on an x486 processor (Windows).
  • Used caching techniques to optimize performance in an environment with limited memory available.
  • Worked with customer to define product requirements, then used UML to model product design.
2001: Contract Software Engineer - Tie Commerce (SPS Commerce), Saint Paul, MN
Used Object-Oriented Perl and the CGI protocol via CGI.pm to develop a web-based eCommerce file exchange application that ran on Apache on Solaris and Windows. This application allowed users of Tie Commerce’s EDI software to exchange documents over the web without using a Value Added Network.
  • Implemented a web-based front end.
  • Implemented a command-line client that used Perl’s LWP.pm module to send and receive documents to and from the server.
  • The command-line client allowed the file exchange software to be integrated seamlessly into Tie Commerce’s EDI software.
  • Used UML to model a design that provided for rapid customization of the web interface.
  • Designed software to accommodate future product development and anticipate potential needs of the user.
2000 - 2001: Software Engineer - Legato Systems, Inc., Eden Prairie, MN
Implemented Networker Module for Lotus Notes v2.1. NML integrated Legato’s Backup and Recover Server with Lotus Domino Server.
  • Implemented in C on multiple platforms: Windows NT, Solaris 2.7, AIX 4.3 and Linux x86
  • Backup client was multi-process.
    • Implementation used System V programming in C: fork, shared memory segments and mutexes.
    • NML used multiple processes to “stream” backup data to server to increase the performance and reduce the time required.
  • Recovery client included a feature that allowed recovery of documents directly from the Lotus Notes GUI.
    • Implemented in Microsoft Visual C++
  • Fixed many of the defects and limitations of NML 2.0.
  • Modified architecture and refractored source code to increase efficiency of backup “streams” by changing data selection from static to dynamic.
  • Created and maintained project schedule.
  • Increased accuracy of product testing by coordinating fixes with Quality Assurance and reviewing test plans
1999 - 2000: Senior Software Engineer - SPS Commerce (Saint Paul Software), Saint Paul, MN
Used Object-Oriented Perl to develop and implement a communications system that delivers and receives EDI documents via asynchronous, bisynchronous, FTP and HTTP protocols.
  • Design pattern permitted use of common code across platforms, EDI software products and communication protocols.
  • Modified architecture and design to accommodate communications system changes.
  • The communication system integrated seamlessly with SPS Commerce’s EDI software to allow the sending and receiving of EDI documents using a variety of communication protocols.
  • Assisted in development of product documentation.
  • Coordinated Quality Assurance test plan development
  • Provided information and assistance to technical support.

1998 - 1999: Software Developer - Platinum Technology, Eagan, MN
Developed, implemented and documented an automated test harness in Perl.
  • The test harness parsed tests, executed and verified them and created test reports in HTML.
  • HTML reports contained “PASSED” or “FAILED” as a result for each test.
  • Reports organized into categories.
  • Reports could be “drilled into” to allow the user to view the desired level of detail.

1997 - 1998: Associate Software Tech - Physical Electronics, Eden Prairie, MN
  • Developed and documented InstallShield install project templates and semi-automated install projects.
  • Ported Physical Electronics’s Compass software from Solaris 1 to Solaris 2. Compass was implemented in non-standard C on Solaris 1. Ported Compass to ANSI compliant C on Solaris 2. Tested and debugged code after port.

1995 - 1997: Teaching Assistant - University of Minnesota (Twin Cities Campus), Minneapolis, MN
  • Teaching assistant for C programming class
  • Lab consultant in UNIX and Windows labs.

No comments: