Name: Daniel Patterson Location: Canmore, Alberta, Canada Nationality: Australian Email: danpat@danpat.net Education --------- Bachelor Applied Science - Computer Science, RMIT University, 2000 Bachelor Engineering - Computer Systems Engineering (incomplete), RMIT University Victorian Certificate of Education, 1996 Skill Summary ------------- I've been working with Unix and Linux based systems for over 15 years. I've been involved in J2EE(-like) systems for around 8, starting in 1999 with ATG Dynamo, but most recently on JBoss AS, WebLogic and WebSphere. At various times I've worked with other Unixy-weby like tools, like Perl, Python, PHP, MySQL, sed, awk, Apache, but it's been the big Java stuff that has paid most of the bills. I'm very comfortable with Perl. I've also spent quite a bit of my time concentrating on the build engineering side of software development, working with build scripts (Ant, make), deployment scripts (RPM and Solaris packaging, shell scripting), version control tools (CVS, Subversion, ClearCase), automated build systems (CruiseControl) and the like. In a previous life I was a contributor to the Debian and Subversion open source projects. Employment History ------------------ November 2007 - Present Location: Trailsports Inc, Canmore, Alberta, Canada Title: Cross Country Ski Instructor Summary: Teach people to ski, enjoy the outdoors, don't touch computers. March 2006 - October 2007 Location: Barclays Global Investors, San Francisco, USA (employed by MorningGroup, Inc, contracted to BGI) Title: Senior Software Engineer Summary: Work on mostly back-end systems for BGI's data warehousing application. Primarily a high-volume JMS driven system with some small Spring-MVC web interface applications for internal use. Responsibilities: - Build system cleanup when I first joined. Ongoing maintenance of the build using Ant, Ivy, Emma, PMD, Ashcroft, JUnit, etc. - Provide guidance during design for deployment-related issues, configuration design and deployment architecture. - Work both alone and in small teams to develop new applications (almost exclusively web-based using Spring-MVC on JBoss). Interesting projects: - Migrate a collection of legacy (read: archaic) in-house developed messaging code to standard J2EE concepts such as message-driven beans and JMS. Eliminated lots of bugs and halved the size of the codebase. - Build an in-house calendaring service for tracking stock market holidays across all the exchanges that BGI trades on. Exposed internally using SOAP (XFire) for use throughout BGI. September 2005 - March 2006 Location: National Australia Bank, Melbourne, Australia Title: Build engineer Summary: Wrote and maintained build (Ant, maven) and deployment (TCL, sh, perl) script for a large J2EE project (40 developers). Responsibilities: - Maintained the build scripts for the Corporate Internet Banking application (adding new projects, refactoring, etc) - Wrote a complete deployment process for the large codebase (26 servers, including database setup, WebSphere configuration (using TCL), WebSeal, Tivoli Access Manager and WebSphere Portal) - Performed major merges between parallel projects, including fixing conflicting Java code and JSP's. - Maintained CruiseControl automated build tool. June 2004 - June 2005 Location: National Australia Bank, Melbourne, Australia Title: Senior Technical Specialist Summary: Version control expert for many software development teams. Responsibilities: - Administered the NAB's Harvest and Clearcase version control tools as part of the "Configuration Management" team (seven staff working on both PC, Unix and Mainframe systems). - Designed a new Sarbanes-Oxley (SOX) compliant version control, release management deployment process for all of the banks internally developed applications. This new process included autmated builds, branch policies and deployment tools. - Assisted development teams plan and implement the new SOX compliant process. - Provide guidance for software configuration management policy - Run training sessions for version control fundamentals, specific tool usage, configuration management best practices. Interesting projects: - Design and implementation of a "build farm" to centralise and control software releases across more than 100 software products using a large variety of tools and platforms (Java/J2EE, Delphi (1,5,6), Pascal, Cobol, Visual Basic, Visual C++, ANSI C). Developer team sizes varied from 1 to 80, depending on the product. System required (almost) no administration once configured, development teams had (almost) full control over their build processes without requiring our help. - Extended an open-source Java NFS server to allow us to mount the contents of our Harvest version control reposority "live" on Unix servers. (http://danpat.net/downloads/hnfs-0.3.tar.gz) April 1999 - October 2003 Location: Adaptive International, Melbourne, Australia Title: Senior Consultant Responsibilities: - Designed and implemented J2EE Applications for various customers, usually in a small team (2-5), but often alone. - Established a unit testing framework used by all internally developed projects, which consisted of regular automated execution, to ensure the integrity of the code. - Provided Unix expertise both within Adaptive and to clients. - Setup and maintenance of Adaptive's internal network (mail, file storage, web services, LDAP, VPN access, etc) for Melbourne and Sydney offices (around 90 users, approx 50% split). Infrastructure primarily Linux (Debian), with some Solaris, users mostly on Windows 2000 or XP laptops. Hardware installation (servers, racks, cabling) were part of my duties. Provided 24/7 support during critical periods. Interesting projects: - Telstra Dealernet - J2EE Application for publishing product information to mobile phone dealers. WebSphere 3.5.1, later upgraded to 4. Using CVS and later Subversion for version control. Team of 6 (including 1 Business Analyst and 1 Project Manager). Development environment used JBoss and Apache Tomcat. - Telstra PIG - PHP proxy for processing WAP MMS (Multimedia Messages). Designed to parse and re-format around 6 million messages per day. Team of 2. March 1998 - December 1999 (School times) Location: RMIT University Title: Tutor Responsibilites: - Classroom tutor for CS198 "Computing Theory", assignment, paper and exam marking. - Classroom tutor for CS109 "Introductory Java", assignment, paper and exam marking. - Classroom tutor for CS108 "Introductory C", assignment, paper and exam marking. Other Notes ----------- Small-time code contributor to the Subversion project (http://subversion.tigris.org/) Debian-developer in a past life Secretary of Linux Australia (www.linux.org.au) from 1997 to 1999 Software tools I'm familiar with -------------------------------- Platforms: Linux (Debian, RedHat, Slackware, Knoppix) Solaris 6, 7, 8, 9 (tinkered with 10 a little) MacOS X (OS 9 in passing) The various Windows flavours from 3.1 to Server 2003 Languages: Java, Perl, PHP, C, sed, awk, Python, Pascal, C++, Ada, Basic (VB), JavaScript Web environments: J2EE (JBoss, Apache Tomcat, WebSphere, ATG Dynamo, BEA WebLogic) Struts, Spring MVC (and Spring in general), Velocity, a little Freemarker Apache HTTP server PHP mod_perl Plain old CGI Version Control: CVS, Subversion, Clearcase, CA Harvest, RCS Misc development tools: GNU make, autoconf, ant, junit, some OpenMake, Eclipse (& WSAD/RAD) Databases: Oracle 7,8,9, Postgresql, Mysql, Sybase ASE Some standards I'm familiar with: HTTP, HTML, FTP, LDAP, XML, XSL(T), RSS, SMTP, CSS, JSTL and so on and so forth. Most of the things that most average people who play with Free and Open Source Software (FOSS) have come across, mixed with the commercial software I've run across whilst at work. Interests --------- Nordic skiing Road cycling Swimming References ---------- David Browne David.Browne@servicecentral.com.au CTO, Service Central, Melbourne, Australia $Id: resume.txt 237 2006-02-24 21:40:48Z danpat $