Operating Systems: UNIX (Linux, Sun Solaris, FreeBSD)
Programming: Perl, mod_perl (1 & 2), Apache (1.3 & 2.x), SQL, XML, SOAP, REST, PHP
Databases/Directories: PostgreSQL, MySQL, Oracle, OpenLDAP
SCM: Subversion, Perforce, CVS
Worked on and maintained a web-based delivery platform for statistics and reporting for Yahoo! Search Marketing. This system was used by thousands of internal employees for gathering information about many diverse advertising related topics. It was built using Perl, mod_perl, and Apache 1.3. It communicated with a number of database backends (Oracle, Postgresql, and an internal data warehousing technology). A separate team wrote the reports that this system would run and display.
Developed the communication layer for our reporting platform to query an internal Yahoo! data warehousing technology. This layer was asynchronous and exposed an API which was used by the developers of the reports.
Worked on and enhanced the SOAP API which our reporting system exposed. This API allowed automated processes to authenticate, run a report, and gather results.
Worked closely with the developers of the reports (a team with as many as 20 people). Taught new report developers how to write reports, led instructional meetings regarding new features, and gave day to day support.
Instituted processes, procedures, and standards that moved the development group from a haphazard group to a more formal, process driven group. Among other things this helped reduce the number of code regressions by instituting a procedure for release that involved Quality Analysis.
Developed an automatic provisioning method that identified the hardware on the server to be provisioned, populated the database (Oracle) with said information, and started the provisioning process for the server. This method reduced the number of mistakes that were made in the server provisioning process.
Imported all code into source control (Subversion). Previous to this there was no source control, and all code was developed and tested on the production server.
Created an RPM build system to help keep all developers and production machines in sync with our repository of over 100 third-party source packages. The build system utilized make, perl, rpmbuild and apt-rpm. This system ensured simple installation and administration as well as a guaranteed common development environment.
Designed and wrote a PHP client for our SOAP server. Developed using PEAR::SOAP the client worked for PHP versions from PHP 4.1.0 through 5.0. This client enabled us to sell our service to customers who owned PHP driven websites.
Developed a web-based CRM system using perl, mod_perl and PostgreSQL. This system was based on a specification written by our sales people and entirely implemented by myself.
Wrote in-house software which synchronized our database with our LDAP servers. Also created patches which modified Apache 2.0.x and Bugzilla to support start_tls connections to the OpenLDAP server. These patches are currently pending approval by each of the aforementioned projects.
Setup and configured load balancing machines using commodity hardware and Linux as the operating system. These projects utilized the Linux Virtual Server project and the Linux high availability project. These projects helped to create redundancy and failover where there used to be single failure points.
Was the primary developer of a web-enabled content delivery system. This system delivered our Java applications to mobile phones and to end-users on personal computers. At any one point this system was used to host over a dozen different sites with average traffic of close to sixty megabytes per minute. All development was on Linux and Solaris using Perl, mod_perl, XML, Apache and MySQL.
Developed a build system which automatically retrieved and built the infrastructure needed to run the content delivery system (Perl, MySQL, mod_perl, ...). This system simplified the task of building groups of identical backend machines in two ways: it was much faster to setup a new machine, and all machines were guaranteed to have the same code, compiled with the same flags.
Was responsible for porting the content delivery system to Solaris.
Developed packaging mechanism to allow delivery of our product to licensees.
Administered company Perforce installation and was secondary administrator for the company co-location facility.
Developed a server and programming interface which allowed for the propagation of configuration information from one machine to all machines in a group. The server had TCP and UDP components, allowed for the discovery of new hosts attached to the group (or hosts removed from the group), and had a simple-to-use but powerful API.
Designed, developed, and maintained a packaging system for the source tree of our products. This system could create a fully installable, ready-to-go package, or it could create update packages which included all files changed since the previous package was built. This made quality analysis and customer installation significantly easier.
Was a developer on many projects directly related to our products. These projects included a distributed caching mechanism, and many projects which worked directly with our database backend (MySQL).
Was a mentor to junior engineers. Helped junior developers get up-to-speed on our product, and helped them with their design and development efforts.
Designed, wrote, and actively supported automated manufacturing systems on Sun Solaris machines. The software achieved an availability of over 99% and a utilization of over 99%. This resulted in fewer errors by machine operators, thus saving product from being scrapped. These systems were servers written in C++ and AutoShell. Tcl/Tk was used to create the user interface.
Ported all libraries and tools, which the system engineers use for development, to Linux. The libraries were entirely written in C/C++, and the tools were written in C and Tcl/Tk.
Involved daily in the troubleshooting and debugging of various network, software, and database problems, which kept the system running and saved substantial dollars.
Texas A&M University
Bachelor of Computer Science, 1996