Gregory Keraunen (San Jose, CA, U.S.A.)
gk@proliberty.com
http://www.proliberty.com/gk/resume.html
Programmer
Webmaster
System Administrator
Software Build Engineer
Software Quality Engineer
PHP Build System
PHP Conference
PHP Quality
Operating Systems:
Linux: Red Hat, Fedora; Windows XP, 2000; Windows 2000 Server; Mac OS
9.x; Mac OS X Server
Key Technologies:
Apache; PHP; MySQL; HTML/XHTML; CSS; DOM; Gnu Make; bash; SOAP; XML;
JavaScript; Java; C; C++; CVS; Samba; Filemaker Pro; Quark; Photoshop;
Cubase
Complete list of skills, by keyword:
http://www.proliberty.com/gk/skills.txt
2006 to present: Web Application Development & System Administration
osCommerce Zen-Cart customization (via: PHP,
SOAP, nuSOAP, XML, WSDL, adodb, MySQL, curl, cron):
+ Custom integration with fullfilment contractor, "ALOM"
http://www.alom.com
+ Custom integration with FedEx shipment tracking
+ Custom scripting on 'thank you' page to support conversion (ROI)
tracking via apache logfile analysis with "Clicktracks"
http://www.clicktracks.com (transparent gif method requires using a file
'ct_ecommerce.gif' and the parameter 'ct_ecommerce' for the revenue
amount)
Created gk_formmail - a very
flexible HTML form processing script based on "tectite formmail"
http://www.tectite.com
"gk_formmail" includes the following enhancements to "tectite
formmail":
+ All configuration options removed from HTML forms to PHP config
files resulting in:
+ Enhanced security (tectite formmail tries very hard to work
around a basic design flaw - leaving script configuration open to user
input)
+ Separation of business logic from presentation (tectite formmail
leaves most configuration logic in HTML domain, including things such as
regular expressions for field validation that should be exclusively in the
PHP domain and unavailable to hackers)
+ Separation of form configuration from core logic, via separate
config.php files for each form handler (tectite formmail required
different configurations use a separate copy of the entire formmail.php
script, resulting in a potential maintenance nightmare; gk_formmail.php,
in contrast, is designed as one core logic file that serves unlimited
forms, via independent config files)
+ Optional suppression of all output in 'quiet mode', allowing
self-validating php forms instead of more complex multi-file redirection
(tectite formmail typically redirects to 'error page' or 'thank you page'
whereas gk_formmail offers the possibility of a single form script
functioning in various modes, via use of global variables containing error
message and other info)
+ Global auto-validation for email or other fields, avoiding the
need for tectite formmail's redundant configuration (via complex regular
expressions) embedded in each form
+ Improved organization of programming style (tectite formmail
logic scattered function definitions throughout main code logic, resulting
in difficult maintenance and debugging)
Jangomail customization and debugging
+ Management of databases and data collection in support of mass
email newsletter publications and subscription management
+ Design of database system to retain control of subscriber
records, independent of both jangomail and zen-cart
+ Dialog with Jangomail programmers to resolve jangomail failure to
perform variable substitution of email template values
+ Implemented workaround for their Jangomail failure to conformance
to ANSI SQL 'datetime' standard format
+ Testing of major error modes, email bounce handling, subscribe,
unsubscribe, database syncronization, notifications
(keywords: w_4.php, cron, MySQL)
Systems analysis, design and project cost estimation
+ Client required system redesign of online shopping cart system to
integrate with Macola ERP and multiple existing web
shopping cart and various consumer, reseller dataflows
Misc:
+ Diagnosed methods of various spambot attacks via apache logfiles
+ Implemented custom anti-spam solution for "PHPbb"
http://www.phpbb.com (via PHP, JavaScript)
+ DNS admin via BIND 9.2.1 named.conf; zone file modifications
+ PHP security auditing; enhanced security via httpd.conf, php.ini
modifications, etc.
+ Data migration of newsletter subscribers for Outlook Express CSV
files to MySQL via PHP, bash, perl regular expressions
+ Cutom PHP code library development for shared use by multiple
domains
+ Apache configuration management, integration with "Plesk"
http://www.swsoft.com vhost.conf files; websrvmng
+ Custom wrapper to provide enhancements for Plesk logfile rotation
script, /psa/admin/sbin/statistics (a 'black box' which calls webalizer and
logrotate)
+ Custom scripting to support efficient server backup on daily and
weekly basis and notification of status (via bash, rsync, tar, cron)
+ System software upgrades using rpm, yum, make
+ Search engine optimization
+ Firewall and router configuration
+ Disaster recovery: server crashes; out of disc space; corrupted
Plesk database; loss of apache, DNS info, email, etc.
+ Detailed documentation of code and maintenance of a chronological
audit trail of all changes made to systems and code libraries
+ Consistency of programming, communication and system
configuration to support proper testing and maintenance
Clients:
Waverider Design, Inc.
Flexity, Inc.
http://www.trident-design.com
http://www.redmondexams.com
http://www.redmondinstitute.com
http://www.mylight.com
http://www.showertek.com
http://www.shavenaked.com
http://www.adagiousa.com
http://www.libertyonline.us
http://www.babytoupee.com
Dec, 2003 to 2006:
+ X-Cart PHP Shopping Cart Programmer
Customized X-Cart software, added features to
support client-specific business models
+ aeDating Web Application Programmer
Customized aeDating software and added
features per client specifications:
Dec, 2003 to Nov, 2004: E-Commerce Web Engineer; System Administrator
ClickTracks Analytics, Inc.
+ Analyzed customer requirements and selected appropriate software
tools for implementation and customization of online shopping cart system
using authorize.net credit card processing gateway (Linux, PHP / PEAR,
MySQL, Apache, HTML, CSS, JavaScript):
http://www.clicktracks.com/xcart/customer/home.php?cat=249
+ Extensive customization and automation of "XCart"
http://www.x-cart.com shopping cart system to meet business requirements
+ Integrated shopping cart user-interface with existing site design
using HTML, CSS, PHP and template system:
Smarty
+ Implemented and designed extensions to a software license server
using encrypted protocol over HTTP, similar to softwarekey.com:
Solo Server
+ System administration: maintenance and installation of server
software (Linux, Apache, Samba, MySQL, PHP); improved the security of web
servers, databases, filesystems and firewalls (https, iptables); user
accounts (shell, ftp, email); mirroring (rsync, ntp, bash, gnu make)
May, 2003: Conference Speaker, Amsterdam, Netherlands
International PHP Conference
+ Topic: "Doing Less At Run-Time: PHP Pre-Processing with XMake"
+ Book chapter on xmake: (choose format)
Microsoft Word
Open Office
+ Slides: http://www.xmake.org/current/doc/phpconf2003/slides
2002 to July, 2004: Instructor of Computer Technologies and Web Design
The Aptos Academy
+ Taught computer classes to elementary and middle school students
+ Network & Hardware config, maintenance: approx 20 Mac, PC, Linux
workstations; Pipeline 50 router config, various hubs, switches.
+ Webmaster: designed a web authoring process with minimimal need for a
webmaster; easily manageable by non-technical staff
2001 to present: Software Designer / Programmer
XMake: eXtended Make Environment
XMake enhances Gnu Make for better delivery of web applications:
+ auto-detection of source files
+ auto-detection of PHP source file and output dependencies
+ auto-generation of makefiles and build rules
+ SINGLE makefile design avoids pitfalls of recursive make
+ custom 'Extensions' support any source -> output file mapping
(PHP, XML, etc.)
'Hotglu' Content Management System (CMS):
+ automates building of web and other applications, project
management
+ template system separates logic and content from presentation
+ regular expression based template parsing supports traditional
WYSIWYG editing: better workflow management than with XML, XSLT based
systems
+ XML data layer links template parameters with data and command
pipes
+ Business logic implemented via extensible, object-oriented
plug-in interface to integrate functionality from multiple languages and
protocols
+ minimal system requirements: XMake, Gnu Make, PHP, Bash, sed,
libxml2
1996 to present: Programmer-Consultant, System Administrator
+ Computer and network installations, hardware config,
troubleshooting
+ Development & Admin Tools: http://www.proliberty.com/tools
+ Web Applications & Site Hosting:
http://www.proliberty.com/internet_services.html
+ Real Estate Listings: http://www.frankmurphy.net
+ mSQL Database Interface to Census Dept Data
+ Online Instruction:
http://www.proliberty.com/pranayoga/SuryaNamaskar.html
+ Filemaker Pro and AppleScript Programming:
InTouch Utilities:
http://www.proliberty.com/tools/intouch_utils.html
Tools and templates for converting Macintosh "InTouch" database to
Filemaker Pro or other relational database.
Accounting / banking application; misc. databases and scripting
May 2000 - Oct 2000: Web Engineering Consultant
VA Linux, Inc.
Designed and implemented database-driven web applications in PHP,
MySQL, XML, XSLT, XHTML, Java:
+ Content Publishing - 'Valence' (VA Layout ENgine/Content Editor)
+ Workflow management & scheduling ('OverSeer')
Oct 1999 - May 2000: 'wizard' @ awz.com
"Awz.com"
http://www.google.com/search?client=opera&rls=en&q=awz.com&sourceid=opera&ie=utf-8&oe=utf-8
I supervised and verified quality of sub-contractors and personally
implemented all the interactive features and database design on this site
including:
+ user authentication via cookie-based session tracking
+ database design for user-registration, profile-editing;
+ administrative tools for site admin and database management
+ content-publishing tools; template system
+ customized web-based email system
+ bulk emailer applications & newsletter subscription management
+ online polls, surveys, quizzes, games, contests, ecards,
message-boards
+ hit-counters, link-tracking to and from partner sites
+ packaged and documented the above tools for resale to other
startups
May '95 - May '96: Software Engineer
Novell, Inc.
+ Development and testing of MACFILE.NLM v.1.01:
http://support.novell.com/cgi-bin/search/searchtid.cgi?1006756.htm
- a NetWare server extension which provides Desktop Database
service as part of the NetWare Client For MacOS v.5.11 and NetWare 4.11
releases
+ Developed MPW tools in C and Tcl for testing NetWare File Access and
Desktop Database API's under AppleTalk and NetWare protocols
+ Tested and debugged NetWare software using internally-developed
tools; TMON, MacsBug and Lanalyzer for Windows to perform packet analysis
+ Wrote technical documentation.
Nov. '93 - May '95: Sr. Software Quality Engineer
Berkeley Systems, Inc.
+ Designed and developed 'BugReporter', a Macintosh application written
in Symantec C++, Visual Architect and Think Class Library 2.0, which
provides an interface for beta testers to report bugs and automatically
collects data about hardware and software environments on the test
platform.
+ Wrote After Dark screen-saver modules for Mac and Windows, using
Symantec C++ (Mac) and Borland C++ (Windows) compilers.
+ Tested functionality of proprietary cross-platform C++ code
libraries. Participated in code reviews.
+ Wrote scripts in MPW and Virtual User 2.0 to install, test and debug
software on an AppleTalk network
+ Localization of After Dark 3.0/Mac to French, German and Int'l
English; QA Lead on AfterDark for Windows 95.
Sept. '92 - June '93: Software Quality Engineer
Apple Computer, Inc.
+ Open Systems Engineering: Tested A/UX 3.0.2 software (Mac/Unix) with
3rd-party software and Apple hardware including the prototype Apple
Workgroup Server (Quadra 950) on a TCP/IP network.
+ Imaging Systems: Tested LaserWriter Pro 600/630 and LaserWriter
Select printers.
1987 - 88: C Programmer
"The Community Memory Project"
http://madhaus.utcs.utoronto.ca/local/internaut/comm.html
+ Community Memory was the world's first public computerized bulletin
board system, founded by Lee Felsenstein.
+ Packet-handling, debugging routines, graphics primitives for
public-access online service under Unix/Dos.
1973 to present: various other work experiences
+ Professional Musician: http://www.dilberto.com
+ Yoga Instructor & Publisher: http://www.proliberty.com/pranayoga
+ Carpenter, Plumber, Electrician, Auto-Mechanic
+ Newspaper Editor: The Monee Monitor, Monee, IL
B.S. in Computer Science, 1988; Cal State Univ., Hayward, CA
B.A. in Statistics, 1989, with Honors; University of Chicago, Chicago, IL
'An Object-Oriented Programming Approach to C++', UC Extension, Aug '94
Java Programming; UCSC Extension, Dec., 2000
Market rate. Depends on the exact details of the job. Negotiable.
References available upon request.
Last modified 07/18/07, 2:23 am; HTML auto-generated from text format by txt2html and XMake