Quinn Weaver DBA Fairpath, independent contractor quinn@fairpath.com 510-520-5217 (M) Berkeley, CA US citizen http://fairpath.com/quinn/resume/ Who I Am and Where I've Been I am a senior software engineer with a track record of delivering robust systems on time, on budget, and on scope. I have broad experience: I've built web apps, web services, financial software, TCP/IP servers, and VoIP phone systems. In a past life I was a Unix sysadmin. I've written products in OO Perl, Java, and C++. I've used SQL databases extensively (both DML and DDL). Lately I've specialized in web apps and web services. I learn new technologies quickly, independently, and off the clock. I've succeeded in start-up, university, and corporate settings, on teams, solo, and as team lead. I've seen numerous projects through the entire product life cycle. I enjoy partnering with my customers, bridging the gap between technical details and business results. I pride myself on keeping stakeholders informed and happy, and delivering on schedule. What I Can Do for You I do contract work for large and small clients. - I can build you an office phone system from scratch, using VoIP, for significant cost savings over a PBX solution. - I can build you an IVR (phone menu system): "press 1 for sales, 2 for support..." I can integrate with your database to create sophisticated commerce, support, and CRM phone apps. - I can build you a dynamic web site. I do the system administration, back-end code, and Javascript, and I bring in design talent to do the content (XHTML and CSS). I manage my own design talent, acting as master contractor. - I can enhance your existing systems. I excel at untangling legacy codebases; I dive in quickly to create rigorous testing frameworks, fix bugs, add features, document code and procedures, and upgrade infrastructure. - I can advise you on any of the above areas, and/or consult on an ongoing basis. I can help plan your enterprise architecture, working solo or with your existing team. Need to start from scratch? I can get your start-up off the ground. Need to integrate new systems into a heterogeneous environment? I can make all the pieces fit. Skillls Summary Specialties Web programming Web services VoIP IVRs (Integrated Voice Response systems, phone menu systems) Languages Perl: expert; fluent in object-oriented Perl (OO Perl) SQL: expert (including DDL/database design) Java: working knowledge C/C++: working knowledge Databases PostgreSQL MySQL SQLite Sybase Web frameworks Catalyst (Perl MVC framework) Template Toolkit HTML::Mason Raw mod_perl Web services REST (XML, YAML, JSON) SOAP (SOAP::Lite, Apache Axis) Sysadmin: OS's Linux (Red Hat, Debian, Ubuntu) Solaris FreeBSD Sysadmin: services Apache; mod_perl Asterisk BIND DNS Sendmail mail server Postfix mail server Mailman NFS NIS+ Dev tools Subversion CVS RCS Monotone Bugzilla/Issuezilla RT Methodologies Test-driven development (TDD), a.k.a "test first" Object-oriented programming Model-view-controller (MVC) programming: Catalyst Extreme Programming (XP) Waterfall Natural languages Spanish: near-native profiency (studied in Spain during college) Selected Work Experience Software Engineering - Ran a company's evaluation of Catalyst (Perl MVC, similar to Ruby on Rails). Wrote a prototype and chose libraries. Then, with two other consultants, rewrote a legacy, profitable web site in under six months. Skills used: Perl, Catalyst, PostgreSQL (as database architect) - Rewrote a legacy trading system as an intranet SOAP service, using OO Perl and SOAP::Lite. Created a regression test framework to ensure identical results with the legacy system. Wrote client code in Java (Apache Axis) and Perl (SOAP::Lite); resolved interoperability issues. I also built and administered the development web server (Apache 1.3 with mod_perl). Skills used: SOAP web services, Perl, Java, Apache/mod_perl, regression testing - As lead architect, designed an Apache app server using custom mod_perl handlers. Skills used: Apache, mod_perl, REST/XML, technical writing - Performance-tuned a legacy mod_perl app (for CPU and memory usage). Skills used: Apache, mod_perl, performance tuning - Wrote a GUI visualizer for SIP (Session Initiation Protocol) transactions. Using this tool, performed end-to-end testing, created Postscript network diagrams, and wrote system documentation. Skills used: Perl, Tk, understanding of VoIP protocols, technical writing - Added audit-mandated data to an in-house security and Sarbanes-Oxley database. The new code monitored all Sybase, Windows, Unix, and NIS+ group access, and raised exceptions for unauthorized privilege grants. Extended a sophisticated database schema (using association tables, dictionary tables, and other meta-relational concepts) to accommodate these new data. Skills used: ColdFusion, Perl, NIS+, Unix, Sybase, SQL (DML and DDL), XML - Wrote a stand-alone REST provisioning server in C++, with client code in Java. Client and server communicated by XML over a trivial HTTP subset, which I implemented from scratch. Contents were VoIP provisioning data. Skills used: C++, Java, TCP/IP server programming, HTTP, XML - Wrote plugins and documentation for the Java smart web proxy WBI (similar in concept to Greasemonkey, but much preceding it). Later this product was commercialized as the core of an IBM XML transcoding engine. Skills used: Java, technical writing Teaching, Consulting, and Writing - Conducted a company's evaluation of Perl Web templating solutions: Perl ASP CPAN module, Template Toolkit, and HTML::Mason. Recommended HTML::Mason, resulting in its adoption as the official company standard. Skills used: Perl, technical writing - Helped plan curriculum, write online materials, and teach courses for USAIL, a first-of-its-kind online course for training systems administrators. Taught lecture sessions; coached students through hands-on training. http://www.uwsg.indiana.edu/usail/ Skills used: Unix system administration, technical writing, teaching System Administration - Built a Linux shop's desktops, servers, and network from 15 people at the time I joined to over 70 when we were acquired by Cisco. Handled all functions from building the network to purchasing hardware to administering systems. Migrated network to new office. Hired an assistant sysadmin. Skills used: Unix system administration (Red Hat Linux), sendmail, NFS, DHCP, TCP/IP networking, change management, crimp tool - Acted as a consulting/troubleshooting sysadmin for a university of 30,000 students. My team of five handled all departments and labs; I was the Linux and Solaris specialist. Between putting out fires, we created USAIL to empower grad students and department IT staff to administer their own systems. Skills used: Unix system administration (Solaris, Red Hat Linux, Slackware Linux), NFS, NIS Education BA (cum laude) with majors in cognitive science and classical studies - Greek, Indiana University, 1995-1999 Professional Activities Presented sessions on Asterisk IVR programming at the first O'Reilly Emerging Telephony Conference (2006) and at CodeCon (2006). President since 2001 of San Francisco Perl Mongers (programming language users group). Book and coordinate presentations by Perl celebrities, authors, and local Perl luminaries. References Available upon request.