Michael South 101 Canyon Run Cary NC 27513 919 465 9074 msouth@gmail.com Objective: Developer/software architect/research position in a challenging and intellectually stimulating environment. Education: M.S. Mathematics, Texas Tech University, 1995 B.S. Physics (magna cum laude), Valdosta State University, 1993 Technology: Languages: Perl (10 yrs), C (3 yrs), Java (18 mo.), Fortran (2 yrs), SQL (6 yrs), ABAP (18 mo.). Also skilled in XML, JavaScript, Director/Lingo, Flex (ActionScript). Perl Modules: DBI, HTML::Mason, HTML::Template, CGI::Application, Template Toolkit, Class::MethodMaker, XML::Simple, GD, SVN, many others. Databases: MySQL (6yrs), PostgreSQL (3 yrs), SAP Open SQL (1.5 yrs) Source Control: CVS, Subversion Formatting Languages: HTML (5 yrs), Tex (1 yr). Operating Systems: Unix (Solaris, IRIX, Linux, Unicos), Windows, MacOS API's: CGI, Apache mod_perl, GTK, MacOS Toolbox Experience: 2003-Present: Senior Software Developer, McClatchy Interactive (formerly Nando Media) (Promoted to Senior Developer 2004, former title was Developer) Design and development of content management, audience management, and search and revenue applications for the interactive division of the McClatchy newspaper company. We use object oriented Perl for the administrative interfaces, batch input processing, and publishing of news content on the web. We also interface with various third party tools to provide things like search, credit card processing, and other specialized functionality. Additionally, I was lead developer during our coding and rollout of a SOAP API that allowed third parties to interact with our registration application. Tapped as lead developer for our major rewrite of the company's flagship product (online news publishing/content management). Oversaw the expansion of my previously written administrative interface module into a much expanded core framework forming the foundation of the admin interfaces for all of our future development. Wrote the foundation for the database abstraction layer, including a wrapping class implementing both an object interface and a tied hash to mimic DBI's database handle behaviour exactly, extending the power of DBI without sacrificing the familiarity of the interface. Selected to redesign the templating and page building system (for both preview and caching to docroot for reader view) for all future applications. Wrote mod_perl handler, complex mason components, and Template Toolkit foundation for the new system. Designed database for template management and worked out the inter-product communication between the templating system and content systems. Did improvement, development, and refactoring of our Flex user interface infrastructure, development of Flex interface (using Cairngorm MVC framework) to authorization web service. Created base classes for consistent but flexible local modeling of database objects and standardized communication with all of our RESTful web services. In addition to the above development duties, I have been the go-to person for ferreting out deeply hidden and difficult-to-isolate bugs in our systems (or in third party modules our systems use). This includes, for example, debugging live mod_perl sessions and deducing that an empty string(!) that had been returned by XML::Simple was turning on a UTF-8 flag in the string it was included in, causing high ascii in the page returned to browsers to render unpredictably. I am the resource that other developers turn to when they find behavior they do not understand or wonder whether Perl is capable of some particular contortion. I have suggested and have had implemented many suggestions for development standards to produce more reliable and readable code. Banged out an xml-persisted high school sports score database tool for three clients on short notice. Completed in the desired short turnaround time with two more features than initially promised. Tool has never had a problem in more than a year of live use on three sites, and was robust enough to be hacked up into a campaign horse-race tracking tool in a couple of days (by another developer). Developed a means of using a single VeriSign account for multiple products. Added Market Segment functionality to our audience management (user registration) system. Improved on the planned design and delivered greater functionality than initially envisioned. Extended the life of the current version enough that an upgrade cycle was able to be skipped. I also do on-call work, which I have always completed with exemplary attention to communication, utilization of all available resources (if I don't know, I'll wake up someone who does), and in-depth followup effort to ensure that the root cause of the root cause gets addressed. 2001-2003: Consultant, Grant Street Group (formerly MuniAuction) (Linux/Apache/MySQL/mod_perl site for auctioning municipal bonds and other securities.) Design and implementation of new features for auction server. Designing to business requirements and coding to spec. Developed a MIME-compliant extension of the internal mailing system. Developed an object-oriented extension of the Perl DBI module. General go-to guy for optimization, bottleneck analysis, bug diagnosis, test automation, etc. 2002: Consultant, Shodor Education Foundation Java applet enhancements/bug diagnostics and fixes for high-profile client, technical writing. 2000-2002: Software engineer, NeTraverse, Inc. Worked in various capacities on the GUI Installer for Win4Lin. Implemented an interface between the GUI and the scripts that did the actual work of the installation. This involved a fair amount of interprocess communication (fork, exec, communication through named pipes) and constituted the most crucial component of the installer. Contributed significantly to a much-needed mid-stream reorganization of the guts of the GUI engine. Suggested important and forward-looking features which ended up saving the company a tremendous amount of potential difficulty. This work was mainly in C, using Unix (Linux) system calls and the GTK GUI toolkit. http://www.netraverse.com (<--you can download and run the installer after a free registration) Removed an error prone, time consuming bottleneck in workflow around the GUI installer's backend by replacing a hand-maintained text file with a database (PostgreSQL) and a web front end (Perl/CGI). Added custom user management functionality to the open source Webmin unix system administration tool. Added user interface enhancements and new features relating to the use of Win4Lin, Netraverse's flagship product, in a server environment. This work was prominently used in the attraction of both customers and investors. Created a CVS repository of the main line of development of Webmin, and used branches to hold our changes. This allowed us to seamlessly incorporate bug fixes and feature enhancements by the Webmin maintainers as new releases came out. 2000: Consultant to the Shodor Education Foundation, Inc. Designing and developing an online assessment system that enables the creating, taking and analysis of online assessments through a standard browser. A substantial project involving requirements gathering, data modeling, database design and implementation, object oriented design and development, and human interface design. (Perl, CGI, MySQL) 1999-2000: Consultant, The INC Group, Inc. Created detailed design and led team in implementing a web-integrated database solution for a consulting company. Implemented as a model-view-controller system with HTML templates, a Perl CGI/DBI program, and a MySQL database, all running on Linux. Set up and managed CVS for version control. Installed, configured, and administered MySQL. This product keeps contact information, skill information, resumes, surveys and their results, and shared files in a central database accessible through a standard web browser. All data can be updated as well as accessed over the web. Full text search of resumes is possible, as well as simply searching on a consultant's skill set. Managers can, for example, request a list of consultants whose resume has not been updated for a certain period of time and automatically send them an email notification telling them to rectify the situation. 1999: Technical Training Coordinator, The INC Group, Inc. Managed a team of six in the redesigning of a five-week course in a business application programming language, including GUI design; database design and maintenance; data conversions, loading, and extraction; job scheduling; etc. Taught the course to a class of six new hires and then delivered same course at a client site to a class of 20. Created and delivered an Perl course internally. 1998: Consultant, the INC Group, Inc. Business application programming for various clients. Database design and maintenance, GUI design and implementation, data loading interfaces, and reports. Took on a wide range of roles from coding to specification to single-handed analysis, design, specification and implementation to managing a team of ten developers in an end-of-project quality assurance and optimization effort. References available upon request.