Professional Documents
Culture Documents
7375 Alicante Road Carlsbad, CA 92009 Philip_Plumlee@hotmail.com Phone: 760 814 5658 760 500 0338
Programming Experience
2009-present Cuker Interactive Senior Software Engineer
Cuker is a website agency specializing in boutique e-commerce and online marketing strategies, using Python Django. I upgraded their unit testing strategy to support Test-Driven Development, BehaviorDriven Development, and Continuous Integration to CruiseControl.rb. Celtek Clan Integrated fulfillment via SOAP to ProLogs ProWares warehouse management system. django-test-extensions Add assert_xml and assert_html, to test XML and HTML via XPath. Manduka Transmit sales orders via SOAP to Intuit QuickBooks. merchant-gateways An open source Python port of the Rails ActiveMerchant plugin, to give all payment gateways the same simplified, idiomatic interface. Morelia viridis An open source Behavior Driven Development system allowing clients to express business rules in plain English. Unit tests evaluate the rules and verify the source code obeys its specifications. Xterra Wetsuits Integrated fulfillment to Mail Order Manager, and wrote an elaborate packing algorithm that matches wetsuit orders to correct box sizes. Web Cube The core of all these projects is a CMS & e-commerce engine using Djangos segmented architecture to allow clients to pick and choose which features they want in their websites, all running from a common code base.
My innovative contributions to the TDD environment, assert{ 2.0 }, assert_xhtml, and assert_rjs_, are now released and used as Free Software. VideoFly The customer entertainment system, using light Ajax, and advanced SOAP Web Services connecting to multiple affiliates & payment gateways, with rotating content, & high-volume Flash, integrated via XML. weg2257 The in-house content management system, using advanced Ajax, and high-volume MySQL data warehousing. All projects use Capistrano to deploy to multiple server clusters, with load balancing.
language pairs) to dynamically register with a server and display intermittent dynamic pop-up ads, containing graphics, using efficient dynamically uploaded graphics. Project finished in 2 weeks using Test Driven Development. GIF, HTTP, VB, XSLT ResourceLocalizer dynamically replace English text in RC resource scripts with translated text from any other language. C++, Unicode, XML
Data visualization, maps, and contour plots for a database of environmental quality samples taken at a customer's site. Win32, Visual Basic, VC++, SQL Server Data Importer system to import any database of geographically distributed soil sample analysis results, of any schema, process the intermediate version to clean and sanitize it, and bulkimport the result into EnvSofts proprietary database. VB, SQL Server Surface Maps ported FORTRAN contour plotting algorithms to C, wrapped them into an OCX control, painted this onto Visual Basic forms, and added controls to configure dozens of math coefficients. Rendered map outputs into portable formats, and display these on overlays of aerial photographs. Thorough documentation, including the math routines involved. ATL, DocJet, f2c, GDI, GIS, MFC, C, VB6
Net9000 VT-220 terminal emulator to place a Graphical User Interface between the user and the character-mode interface of the Thermco Furnace MUX-9000 controller. Users hit our buttons, and our Virtual User drives the controller's user interface. The program maintains a database of Thermco Recipes, presents these in a full-featured source code browser. Recipes can transfer over a network between furnaces, and users can drive a furnace's terminal remotely. Parsed the 'recipe' command language for Thermco Vapor Deposition Furnaces, to present a hierarchy chart of the subroutine calls. Thermco writes their recipes in a language like old-fashioned BASIC, with GOSUB calls. This, plus their queasy user interface, makes the recipes too easy to write and absurdly difficult to read. The first thing our program does is expand all subroutines into a call tree and put every line in order. Think of it as a source code browser for recipes. Simulated recipe action in Schemes. Borland C++, OS/2 Presentation Manager Novellus Monitor interpret the Semiconductor Equipment Communication Standard protocol emitted by a Novellus semiconductor furnace; sample its data while it runs, and relay the customers workflow commands into it. Borland C++, OS/2 Presentation Manager Recipe Editor download, interpret, and graphically render the sequence of commands in a Thermco furnace controller recipe. Edit, store, browse, and upload recipes. VB Schemes render any database contents, or live data, as a customized animated map representing the pipes and control signals inside a furnaces Mass Flow Controller system. OS/2, Presentation Manager, proprietary language SPEEDFAM Material Handling Monitor Record wafer film thickness before and after polishing. Display thickness trends over many runs. Schedule wafers from various lots for test, production and touchup polishing. VB TEL Data Capture interpret the GEM emitted by a Tokyo Electron Limited vapor deposition furnace & store its run information to our proprietary database. Borland C++, OS/2 Terminal VT-52 terminal emulator to present RS232c output from the Thermco Furnace, with hand-made character mode windows, menus, configurable charts and context-sensitive help. Thermo Data Capture interpret the VT52 output of a Thermco furnace; store run information in our database. Borland C++, OS/2, Oracle TrendViewer 2000 database and GUI to collate and display Statistical Process Control trends in the behavior of individual components of semiconductor furnaces. VB, LabViews, VC+ +, SQL Server
Writing
Acknowledged by the books Agile Software Development: Principles Practices & Patterns by Robert C. Martin Extreme Programming Installed by Ron Jeffries Programming Cocoa with Ruby by Brian Marick Test Driven Development: By Example by Kent Beck Unit Test Frameworks by Paul Hamill User Stories Applied: for Agile Software Development by Mike Cohn Working Effectively with Legacy Code by Michael Feathers
Lecturing
Test First User Interfaces Test Driven Development Test First User Interfaces Refactoring Demo 27 8 4 2 July April Sept Oct 2004 2004 2003 2002 XP/Southern California XP/San Diego XP/San Diego XP/San Diego
SKILLS Languages
years
C++ C language Visual Basic Ruby JavaScript Python Perl Systems MS Windows SQL STL TCP/IP HTML ActiveX / OLE / COM GNU Linux MFC AmigaDOS Tk ASP WTL XML XSLT MSI Unicode Gnome KDE Mophun Techniques User Interface Theory Object Oriented Programming Design Patterns Test Driven Development Extreme Programming Statistical Process Control
11 6 6 4 4 2 2 13 10 10 10 8 6 6 5 4 4 3 3 1 1 1 1 1
14 10 7 5 3 2
References employers o Kent Beck kentbeck@csi.com Dave Geving dsgev@mail.com (h)619-442-9337 (c)619-249-2310 Llewellyn Falco isidore@setgame.com (858) 336-6560 Paul Petralia Paul_Petralia@Prenhall.com 201-236-7997 Paul Treece 562 592 7608
colleagues o Ben Kovitz bkovitz@acm.org 858 488 2052 Jim Shore jshore@titanium-it.com John Sarkela wiljo@mac.com