Resume for Dr. George Fairbanks

Dr. George H. Fairbanks

gf-resume@georgefairbanks.com

http://georgefairbanks.com

(303) 442-0725


EDUCATION

Carnegie Mellon University, Institute for Software Research, Ph.D. in Software Engineering, May 2007. Thesis committee: David Garlan, Bill Scherlis, Jonathan Aldrich, Ralph Johnson (UIUC)
The University of Colorado at Boulder, M.S. Computer Science, May 1998
The University of Colorado at Boulder, Institute of Cognitive Science, Certificate in Cognitive Science, May 1998
The University of Virginia, B.S. Computer Science, May 1993

HONORS

SOFTWARE ARCHITECTURE

February 2008 - August 2008 Software Architect Kinetium / OpenText Boulder, CO

  • For a $750M sales company, redesigned their core business processes, chose ERP components, and designed an enterprise software architecture.
  • Worked directly with company president and senior executives.

May 2005-September 2006 Chief Architect (IDEM project), Architect (ER project) Kinetium / Citigroup New York, NY

  • Architect overseeing 4 projects, 30+ developers.
  • Created architecture models for an enterprise-scale identity and entitlement management system.
  • Responsible for the architecture for the next generation entitlement review system.
  • Authored published paper: Software Architecture at a Large Financial Firm.

May 2002 - September 2002 Architect, Instructor, Mentor Kinetium / JPMorgan Chase New York, NY

  • Mentored experienced team through their first use of the Component Architecture Method (CAM), a development method focused on precise UML, patterns, and architecture.
  • Authored published paper: Why Can't They Create Architecture Models Like Developer X? An Experience Report.

SOFTWARE DEVELOPMENT / DESIGN

June 2006 - September 2006 Software Developer Kinetium / Citigroup Boulder, CO

  • Developed a custom plugin for Rational Software Architect CASE tool to support MAp.

September 2003 - December 2006 Software Developer CMU Institute for Software Research Pittsburgh, PA

  • Designed and implemented a static analysis tool as an extension to the Eclipse Java Integrated Development Environment to support Design Fragments, a new technique to specify and check the patterns of client-framework
    interaction.

September 2001 - May 2002 Software Developer CMU Institute for Software Research Pittsburgh, PA

  • Developed data interchange classes for event bus subsystem for the AcmeStudio architecture modeling tool.

January 2000 - April 2001 Founder, President Groupedia Boulder, CO

  • Founded company to build groupware tools for mailing lists.
  • Responsible for design and implementation of a fully dynamic database-backed website, business plan creation, negotiations with venture capitalists, and recruitment of established mailing lists.
  • Created a high-availability, reliable, efficient, web-accessible environment for mailing list groups to organize knowledge, share links, and create documents while maintaining content accuracy.
  • Production code:  Oracle 8.1.6, ArsDigita Community System 3.x & 4.0, AOLServer 3.x, TCL, SQL, PL/SQL, Perl, QMail, Unix shell scripting, Linux
  • Prototype code: Java, J2EE, JDBC, EJB, Apache, Linux, PostgreSQL 7.x.

September 1998 - February 2000 Professional Services Consultant Icon Computing / Platinum Technology / CA Austin, TX

  • Led client groups to develop precise business process models using Catalysis.
  • Advised software project teams on analysis and design strategies.
  • Developer on internal Java-based (Swing) CASE tool that supports Catalysis features.

May 1998 - September 1998 Java Developer Novazen Boulder, CO

  • Developed requirements, architecture, object model, and prototype implementation for J2EE-based web application.
  • Developed Java code to communicate with Gemstone/J object database including Java classes running inside the database and RMI interfaces to database.
  • Applied principles of XP (Extreme Programming) method including continuous testing.

February 1998 - June 1998 C++ Developer Heuristec Boulder, CO

  • Developed C++ classes to prep input files for statistical queuing analysis.

May 1997 - September 1997 Technical Lead, C++ Developer Booz-Allen & Hamilton McLean, VA

  • Subcontractor to a government agency.
  • Designed and implemented a propriety interface with a leading PCS wireless telephone switch.
  • Developed initial system and successfully deployed it on a live wireless network.
  • Technical lead for project and primary technical contact for client.
  • Responsible for the training and mentoring of a new employee.
  • C++ code initially developed under Linux and later ported to Windows NT 4.0.

June 1995 - December 1996 Senior Systems Designer Time Warner Communications Denver, CO

  • Lead designer for telephony customer service management applications.
  • Successfully moved software from 6-9 month waterfall development schedule to two-week iterative cycle.
  • Heavy use of frameworks, design patterns, and idioms in Smalltalk.

June 1993 - January 1995 Member of Scientific Staff BNR (Bell Northern Research) / Nortel Research Triangle Park, NC

  • Object oriented software developer on the largest OO project at that date (1500 developers), a rewrite of the call processing software for their flagship DMS-100 central office telephone switch.

TEACHING / MENTORING

Jan 2008 - May 2008 Instructor Carnegie Mellon University Pittsburgh, PA

  • Co-instructor of graduate level Architectures of Software Systems course, with David Garlan and Tony Lattanze.

May 2005 - September 2006 Instructor, Mentor Kinetium / Citigroup New York, New York

  • Instructor for five-day MAp architecture course.
  • Mentored architects on MAp architecture techniques.

May 2004 Instructor CMU Tepper School of Business Executive Education Pittsburgh, PA

  • As part of a week-long course on software development, I delivered lectures on testing GUIs of websites, design for testability, frameworks and quality, and a large case study on HTTPUnit and Cactus.
  • Translated live into Japanese.

December 2003 Instructor CMU Tepper School of Business Executive Education Pittsburgh, PA

  • As part of a week-long course on software development, I delivered lectures on Modifiability, Testability, and Availability.
  • Translated live into Japanese.

May 2002 - September 2002 Instructor, Mentor Kinetium / JPMorgan Chase New York, New York

  • Instructor for five-day CAM architecture course.
  • Revised instructional materials and authored new case study.
  • Authored CAM reference chapters on usability design.

September 2003 - December 2003 Teaching Assistant CMU Institute for Software Research Pittsburgh, PA

  • Assistant for Dr. Priya Narasimhan's graduate Analysis of Software Artifacts course.
  • Developed and taught lecture on J2EE and EJB.

September 2002 - December 2002 Teaching Assistant CMU Institute for Software Research Pittsburgh, PA

  • Assistant for Dr. David Garlan's graduate Software Architecture course.
  • Developed and taught lecture on the architecture of the Apache web server and on Java programming.

January 2001 - September 2001 Instructor Valtech Dallas, TX

  • Taught five-day Enterprise Java Beans (EJB) and J2EE course.
  • Taught five-day Object Oriented Analysis and Design course.
  • Developed chapters of EJB course.

September 1998 - February 2000 Instructor Icon Computing / Platinum Technology / CA Austin, TX

  • Advised software project teams on analysis and design strategies.
  • Led client groups to develop precise business process models using Catalysis.
  • Taught five-day advanced classes on Component Based Design and OO using UML and Catalysis.
  • Taught Java course to top software developers at Platinum technology Developer's Conference. Topics included Java language, API's including Swing and JavaBeans, and J2EE.
  • Presented lectures on Catalysis at software conferences in the US and Brazil (translated live into Portuguese).

September 1997 - May 1998 Project Mentor University of Colorado Boulder, CO

  • Mentored eight groups of four students to develop their senior projects.
  • Evaluated as best mentor since program inception (fifteen years).

PUBLICATIONS

Design Fragments. George Fairbanks. Ph.D. Thesis. CMU Technical Report CMU-ISRI-07-108. April 2007.
Design Fragments Make Using Frameworks Easier.George Fairbanks, William Scherlis and David Garlan. In Proceedings of ACM SIGPLAN Conference on Object Oriented Programs, Systems, Languages, and Applications (OOPSLA) 2006, Portland, OR, USA, 22-27 October 2006.
Software Architecture at a Large Financial Firm. George Fairbanks, Kevin Bierhoff and Desmond D'Souza. In Proceedings of ACM SIGPLAN Conference on Object Oriented Programs, Systems, Languages, and Applications (OOPSLA) 2006, Portland, OR, USA, 22-27 October 2006.
Design Fragments Make Framework Use Easier. George Fairbanks. Presented at ACM SIGPLAN Conference on Object Oriented Programs, Systems, Languages, and Applications (OOPSLA) 2006, Portland, OR, USA, 22-27 October 2006. Winner of student research competition, which included this poster and a presentation.
Why Can't They Create Architecture Models Like Developer X? An Experience Report.. George Fairbanks. In The 2003 International Conference on Software Engineering (ICSE), Portland, OR, 3-10 May 2003.
Software Engineering Environment Support for Frameworks: A Position Paper. George Fairbanks. In Proceedings of the International Conference on Software Engineering (ICSE) 2004 Workshop on Directions in Software
Engineering Environments, Edinburgh, Scotland, May 2004.