Jeffrey M. Goff 13 Porter St London, GB SE1 9HD +44 0780.815.3300 (mobile) E-Mail: drforr@pobox.com LANGUAGES: Perl, Perl/XS, Python, PHP, SQL, Java, Clojure, Ruby, XML (XSLT, XSchema), C, C++, HTML, LaTeX, Common Lisp, Scheme, FORTH, Javascript, Parrot (Perl6) release manager COMPUTER SYSTEMS: Linux, Mac OS X, Windows, HP/UX HP9000, IBM AS/400, RS/6000, OpenBSD, Sun UltraSPARC 4, SGI IRIX, SGI Octane, Origin 200 SOFTWARE: Apache, mod_perl, Mason, emacs, vi/vim, Git, SVN, CVS, PostgreSQL, mySQL, gcc, Gtk GUI toolkit, RT, Bugzilla, JIRA, Macromedia Director, Flash and Dreamweaver, SQLite, Sybase, Informix, Oracle, MS IIS, Qt toolkit, MS VC++, MS Office, StarOffice, OpenOffice.Org EDUCATION: B.S. Mathematics/Computer Science, 1992 3.5 GPA, 3.8 in major 1992 Computer Science Student of the Year Buena Vista University, Storm Lake, IA, USA CURRICULUM VITAE: * Spoke at YAPC::NA 2010 on localizing and translators * Spoke at Frozen Perl 2010 on localizing and translators * Spoke at SanFrancisco.pm in 2009 on localizing legacy applications * Spoke at YAPC::NA 2008 on the PPI module * Article on Perl's POE module at * Beginner's article on the Parse::RecDescent module at * Article on Perl6 core data types at * Article on remotely controlling the X-Plane flight simulator at * Mentioned in Chapter 3 of /Higher-Order Perl/ by Mark Jason-Dominus PERL DEVELOPMENT: * Github account: * Member, Perl6 design team * Perl6 (nee' Parrot) project manager for versions 0.0.5 to 0.0.8 * Managed worldwide development team * Patch manager * Design team member * Perl6 (nee' Parrot) core developer, contributions include: * Core PMC scalar, array and hash types * Miniperl * Build system * Ruby grammar * Scheme compiler * FORTH interpreter * Perl module POE::Component::UserBase available from CPAN * Perl module Unicode::Overload available from CPAN * Perl module Music::Image::Chord available from CPAN * Perl module Pod::Simple::LaTeX available from CPAN * Perl module suite Games::Shogi (and variants) available from CPAN PROFESSIONAL EXPERIENCE: TagMan LLC (London office): (July 2012 - Current) * Technologies used: Apache, Apache2 (mod_perl, Plack frontend) MySQL (Data migration DB optimization, reporting, maintenance) OpenStack (virtualization and cluster management) Nagios and Graphite (monitoring software) Puppet and Chef (integration and deployment) Git version control Perl (DBI, DBIx::Class, Moose, Plack) Kayako (issue tracking) Jenkins (continous integration) * Joined as Senior Software Engineer, optimizing backend data flow; profiling, refactoring and optimizing backend application suite. * Moved to Senior DevOps Engineer position at the end of Januay 2013 * Encouraging development to work with the operations team by creating best practices for software packaging, configuration management and continuous integration. * Working with developers to manage package dependencies, split up current software into Puppet/Chef roles and refactor code to reduce configuration management challenges. * Working with operations to create best practices for Perl package dependencies, resolve versioning conflicts and create best practices for continuous integration, continous testing and software deployment. Booking.com (Amsterdam office): (October 2010 - January 2012) * Technologies Used: Apache, Apache2 (mod_perl frontend) Git version control, git-deploy (Deployment, revision control) JIRA bug tracking MySQL (Data migration, DB optimization, maintenance) Perl (Dancer, DBI, DBIx::Class ORM, Mason, Moose, Plack/PSGI, Template::Toolkit) * Joined the team responsible for making sure that guests have the largest selection of rooms and apartments to choose from when booking their stay on our site. * Expanded database from single-family rooms to allow multiple-family apartments, allowing groups a wider choice of rooms to book. * Simplified hotel and room creation by extracting child age from the existing legacy policy-based system, allowing hotel agents to enter data in one place rather than coordinate multiple entry points. * Streamlined room creation and reduced the load on the existing legacy policy system by removing hotel mealplans (breakfast, lunch, dinner) into their own database tables. iParadigms LLC (January 2008 - October 2010) * Technologies Used: Apache2 (mod_perl frontend, mod_rewrite) Google APIs (Translate, Spreadsheet) Google Docs (internal communications, translators) JIRA bug tracking Perl (ASP, Catalyst MVC Framework, DBI, Moose OO API, SVN hooks, Perl::Critic, Perl::Tidy, DBIx::Class ORM) Postgres (Data migration, DB optimization and PL/pgSQL) Python (Pootle translation engine) RT bug tracking Ruby on Rails (Tolk translation engine) SVN source control, SVN manager XML (SOAP API, XSLT, XPath) * Winner of "Rock Star of the Month" in June and August 2008 * Opened the Asian market to our services and increased potential profit 3-fold by implementing translations into the Asian languages, working with translators and writing tools to automatically vet localization and monitor translation progress. * Increased market penetration of the WriteCycle product by 20% by designing and prototypng the next generation of Turnitin on a new MVC-based architecture. * Streamlined translation workflow and improved communications with offshore translators by designing and authoring tools to create and convert Google Spreadsheet documents. * Created Google Docs documentation for in-house developers and off-site translators detailing how to localize and translate HTML and JavaScript. * Decreased translator workload by interfacing with Google Translate in order to create basic tags that translators could edit rather than having to write from scratch. * Cut developer workload by enforcing consistent indentation and style standards on HTML, Perl and JavaScript code. Technologies used include htmllint, jslint and perltidy to enforce indentation, and perlcritic and an in-house JSCritic to enforce coding styles in Perl and JavaScript code * Migrated existing customers to new platform via a data migration tool that moved accounts from a legacy database to an ORM database based around DBIx::Class Ticketmaster LLC (October 2005 - September 2007) * Technologies Used: Apache, Apache2 Bugzilla bug tracker CVS source control Linux (CentOS) mySQL (Readonly frontend) Oracle (Transaction engine) Perl (ASP, DBI, POE, RPC-XML) PHP (PDF rendering engine) Telephony (RESTful barcode transmission service) QEMU (cluster emulation, virtual IP switching) VAX 11/780 network communication XML (SOAP, XML-PHP interface) * Created the e-Ticket system that 95% of customers use to print their event tickets, coordinated between Ontario and Los Angeles offices. Used PDF generation tools in PHP over XML-RPC driven by a mySQL-based queue buffered through Apache2 and mod_perl, used CVS for source code control * Created service to handle 25% of UK ticketing traffic via mobile phone. At launch it handled ~20,000 tickets for a 5-day event at the O2 Millennium Dome in the UK, Used Apache2 and mySQL-based queue buffering, SOAP to communicate with the barcode vendor and JSON + AJAX to collect the user's phone number * Increased peak transaction throughput from 1200 to 1500 transactions per second per cluster by rewriting transaction code to streamline the critical path. Used Perl, profiling tools, mySQL and Oracle Independent Contracting (March 2005 - May 2009) * Technologies used: Apache2 CVS source control Flash (Frontend, XML-PHP gateway, Serial Port communication) mySQL Linux (Red Hat, Debian) Perl (POE, Expect, HTML::Template, Class::DBI) PHP (Communicating with Flash over XML, PEAR system library) Solaris Windows * Accelerated database access by a factor of 10 for a student assessment application in PHP by replacing a functional database API with an ORM and memcache-accelerated backend. Also wrote the report generation tools with a PDF generator using JSON within PHP. Technologies used include PHP, Flash, Flash-XML gateway, PDF generation, memcached, and JSON interface. * Replaced legacy user account management system for the University of Pennsylvania using test-driven methodology. Perl and Expect were used for testing, and POE was added in order to facilitate multitasking. * Created customer request management tools for library system management company Ex Libris using Apache2, mySQL, Class::DBI and HTML::Template Perot Systems (contracted to Harvard Pilgrim Healthcare), Natick, MA (March 2003 - March 2005) * Technologies Used: ANSI X.12 (EDI) document parsing and regeneration Java (BPML software) mySQL Perl (in-house libraries, POE) RS/6000 software installation TIBCO Bus messaging services TOAD SQL designer * Enhanced and maintained medical information processing gateway that processed and validated ~40 gigabytes of EDI medical transactions per minute. Technologies included an ANSI X.12 EDI parser in perl, XML, EDI generator and a custom Apache-style fork/exec server written in perl * Modernized EDI-XML parser for existing gateway, speeding up throughput by allowing the application to communicate with a TIBCO message bus * Cut down gateway overhead by creating an extensive test suite for the EDI-XML parser, finding several previously-unknown bugs and saving processing time by being able to reject malformed EDI files. * Improved gateway stability and robustness by designing and implementing logging and auditing services for EDI gateway utilizing the TIBCO messaging bus and perl Contractor for State of Nebraska: (April 2002-June 2003) * Saves the State of Nebraska $2.3 million+ per year by running a reverse auction system that accepts $16 million+ in orders per year in goods for all the schools in the state of Nebraska * Designed and implemented a custom ORM engine which generated SQL tables, relations, basic stored procedures, and simple HTML templates for displaying tables in HTML * Designed and implemented the reporting engine which creates reports in multicolumn, multipage PDF files using a customized set of LaTeX templates and custom stylesheets Independent Contracting * Technologies Used: Apache Flash (XML-PHP gateway, native DB, serial port communication) Linux (Red Hat, Debian) OpenBSD Perl (CGI, XML parsing, many others) PHP Postgres (Schema design, DB admin, stored procedures) Windows (95-XP) XML (in-house rendering library) (March 2010 - Present) * Consulting on database structure and Flash-XML API for the next generation of the cooperative purchasing tool used by the state of Nebraska for cooperative purchasing (May 2001-August 2001) * Consultation on software and system installation * Consultation on Perl5, Perl module, SSL, Apache and mod_perl installation (March 1997-June 1999) * System, web site, and network administrator for small office * Multimedia CD-ROM development with Macromedia Director, Flash and various Flash extensions (March 1997-June 1997) * Designed and built biofeedback application which communicated over the serial port in Macromedia Flash to allow the user to move a target on the screen using only the electrical signals in their arm muscles * Designed and built Perl CGI and mod_perl-based GUI front ends for various clients * Designed and built mod_perl application to allow users to build their own online newspapers * Designed and built CGI-based administrative applications for SQL databases Databuilt Inc., Bluffton, SC (February 2002 - January 2003) * Technologies used: Apache, Mason HTML (Form design) Linux (Red Hat) Oracle (DB admin, DB schema design) Perl (XML, Parse::RecDescent, XSLT) * Created a Mason-based form generation system to allow in-house staff to enter, edit and validate catalogs from clients such as Home Depot. Technologies included an Oracle backend feeding XML to an XML/XSLT transform that applied validation constraints and generated HTML that the in-house staff would use. * Designed and built XML-to-HTML transformation engine for architectural specification documents * Designed and built XML-DOM translator for combining multiple XML documents containing manufacturer generic specifications and product-specific specifications into a single XML document * Designed and built tool which built user interfaces to perform XML data entry * Managed five-man development team from three countries charged with developing flexible component-based query engine driving Oracle backend Blackboard Inc., Washington, DC (May 2000 - February 2002) * Technologies Used: Apache Linux (Red Hat) mySQL Perl (CGI, Locale::Maketext, in-house libraries) Windows Visual SourceSafe * Maintained and enhanced course- and class-management software for clients such as the University of Phoenix. Technologies included perl, Apache, and mod_perl with various customizations. * Enhanced customer site performance by implementing virtual servers for offsite installations of Blackboard software * Created and implemented database connection pooling, and standardized SQL calls to allow both Oracle and mySQL instances in the same pool * Technical project lead for i18n of the perl application code. MedServeLink Inc., Maple Grove, MN (1997 - June 1999) * Technologies Used: Apache Linux (Red Hat) Perl (CGI, in-house libraries, POE) Solaris * Created Perl CGI back-ends to medical office administration applications on Solaris with Apache and CGI libraries, with Sybase backend * Created Perl CGI order and search systems for Toro Lawn & Garden, among other high-profile clients Viatel Inc., Omaha, NE (1994 - 1997) * Technologies Used: C (various telecom libraries, in-house real-time telephony) Delphi Dialogic telephone switching systems Informix NewEra Nortel embedded telephone switches Summa Four telephone switches * Simplified workflow for network administrators by creating a custom graphical front-end to network traffic in Borland C++ using an in-house asynchronous communications library * Streamlined customer support workflow by creating a front-end in Informix NewEra to a worldwide telephone switching system, hosted on SCO UNIX embedded in Nortel and Summa Four telephone switches * Installed, configured and maintained a Summa Four telephone switch in Tokyo HealthCare Communications, Inc., Lincoln, NE (Graduation - 1994) * Technologies Used: C (Metrowerks CodeWarrior, MPW) InsideOut B-Tree library Pascal (MPW) * Started and managed several people in the process of converting the core application consisting of ~1.5 million lines of Pascal to C using Apple-provided tools * Tested and debugged the resultant code on both the Motorola and PowerPC platforms * Developed medical office systems management software for the Macintosh * Designed an SQL-based accounting system with a GUI interface * Created and implemented AppleEvents for the management system CURRENT PROGRAMMING PROJECTS: * App::Perltidy - Rewrite perltidy to use PPI for parsing rather than the current internals. Performs some basic refactoring along with the cleanup, and will have internals that can be extracted into dataflow modules and style detection. * Module::Jumpstart - Encapsulates my own coding workflow in a module that builds a module skeleton, creates a git repository, adds commit hooks that check for l10n, UTF-8 and style violations, and opens a new screen(1) session for me * Dataflow - Determines variable lifetimes from static analysis of perl code for automatic refactoring tasks * cl-protobuf - Implement Google Protocol Buffers in Common Lisp * cl-memcached - Bind libmemcached to Common Lisp using the Foreign Function Interface (cl-ffi) library * CLOS in Perl - Bypasses the perl5 OO system to create a CLOS-like slot-inheritance mechanism for Perl * POD::Parser::EPub - Creates EPub versions of perl documentation suitable for reading on e-book readers EXTERNAL PROJECTS: * Traveling Europe, visited Riga, Rome, Barcelona, Brussels, Munich, London, Paris and Antwerp, planning trips to Istanbul and Dubai later this year * Experimenting with Arduino electronics toolkit * Learning to fly R/C model helicopters * Practiced glassblowing at Public Glass in downtown SF * Collaborated with Dr. Irene Pepperberg of the Alex Foundation to create multimedia applications for model/rival training, operant conditioning and interactive entertainment for African Grey parrots using Macromedia Flash * Designed GTk interface to create and optimize Origami bases per Robert Lang's design method as described in with perl and Perl/Gtk.