ANDREW FORWARD 111 PRETORIA AVE . OTTAWA, ONTARIO . K1S 1W8 . PHONE (613) 795 5273 . E-MAIL aforward@gmail.com EDUCATION Ph. D. Computer Science Model-oriented software development (Umple) University of Ottawa, October 2010 M. Sc. Computer Science Software Documentation Aura University of Ottawa, November 2002 B. A. Sc. Software Engineering First in Canada (Magna Cum Laude) University of Ottawa, April 2001 Royal Conservatory of Music Grade 8 Piano and Level 2 Theory, July 1996 TECHNICAL PROFICIENCY Application Architect / Project Management + Cross domain requirements (JAD) + Use case development, scrum daily meetings, prototype development, system modeling + Infrastructure design, implementation and support using Chef, Bash, Capistrano, Git, SVN, ClearCase, Visual Source Safe, RCS + Change requests and cost estimation + Team leader and project liaison + Defect tracking Mantis, FogBugz, LightHouse Web Application Development + HTML, XML, ASP.Net, PHP, Ruby On Rails (2.x and 3.x), JavaScript, CSS + SSL, HTTP/S, TCP/IP, DHCP + Mongrel, Passenger, Nginx, IIS, Apache, Tomcat, Capistrano, Node.js + Slicehost, Rackspace, Amazon S3 Software Development + Java, C#, C, PHP, Ruby, MySql, Erlang, Oracle 9i, PostgreSql, MongoDB + Test-Driven design / Unit Testing using NUnit, NUnitAsp, HttpUnit, JUnit, PhpUnit, JsUnit, Selenium, WebTest, WebDriver + Continuous Integration (CI), Continuous Deployment (CD), + Software Metrics such as Code Coverage Analysis (Emma, Rcov) and coding standards verification (FxCop) + Modeling, documentation in UML including a model-oriented language called Umple + Software experimentation + IDEs including RadRails, TextMate, Eclipse Cloud Development Useful Tools + Heroku, Amazon EC2, Amazon S3, Racksapce and Slicehost + Open source repositories GoogleCode, Github + Project management using Basecamp, + Google Maps, Twitter, Facebook integration WORK EXPERIENCE Senior Software Developer CENX, Inc. (Oct 2010 - present) Software infrastructure architect and developer for an Ethernet backhaul company. + Built tools to manage 15M+ client locations used in our flagship market application + Designed Ethernet Backhaul DSL to inventory large telecom network topologies + Automated server monitoring with Monit + Introduce Behavioural Driven Development (BDD) with concepts like test-first, CI and CD using CruiseControl, Cijoe, PHP, Rspec, Autotest, Guard, Selenium and Web Driver + Customer and sales team support of core Market project for managing client locations. Senior Application Developer Library & Archives Canada (Jan 2006 – Dec 2010) Software architect and senior application developer to manage the preservation, storage and circulation of Canada’s heritage. + Liaison between application design, development and the business units including requirements, estimation, development, testing, mentoring and project planning + Guided CM team to integrate SVN + Introduced PHPUnit / SimpleTest, Selenium and WebTest and phpUnderControl (CI) Senior Consultant Deloitte. (Mar 2003 – Dec 2005) Technology integration consulting within the public sector. Most significant project involved + ASP.Net, C#, JavaScript, SqlServer 2000 + Introduced automated testing with NUnit, NUnitAsp, JsUnit, and Mock objects + Managed CI server using CruiseControl.Net, + Performance and memory profiling using RedGate ANTS and Selenium + Managed several small teams + Exposure to entire SDLC + Requirements, modelling, methodologies, architecture principles, software engineering, testing & validation, database management Software Consultant 4079914 Canada Inc (2000 - present) Additional software consulting roles. Notable projects include: + www.ArrowMight.ca. Back-end management and reporting engine for distance learning + www.SiteValet.com. Senior software architect building virtual ISPs for small to medium hotels. Ruby on Rails. + www.PowerLevel.com. Application developer for an online marketplace for Real Money Trades using ASP.Net, C# and MySql. Later rebranded and deployed to the Heroku cloud using Ruby on Rails and PostgreSQL + Use Case Editor. Application architect building a use case simulator using Java, Swt, and Xml ACADEMIC AWARDS / ACCLAIM + Nominated for Governor General’s Gold Metal (highest ranked PhD Thesis) 2010 + NSERC Industrial Postgraduate Scholarship (IPS2) 2006 – 2010 + Foundation Certificate in IT Service Management 2003 + CGI Ottawa Excellence 2000 – 2001 + Golden Key National Honour Society 2000 Ontario Engineering Competition (OEC) Team Design 2nd Place 1998 + Canadian Engineering Competition (CEC) Team Design 4th Place 1998 + Lutheran Life Scholarship 1997 – 2001 + Dean’s Honour List 1997 – 2001 + Ontario Professional Engineers Foundation for Education Award for 1997 – 2000. + Canadian Merit Scholarship 1997 – 2000 + Andrew S. Haydon Admission Scholarship of the University of Ottawa 1997 – 1998 + Governor General’s Bronze Metal (highest Secondary school average) 1997 + Gerry Turcotte - Ottawa Carleton Research Institute Award 1997 + Winston Churchill Memorial Scholarship 1997 + William W. Powell Memorial Scholarship 1997 TEACHING / RESEARCH EXPERIENCE Post-Doc University of Ottawa (Jun - Aug 2011) Worked with the Complexity Reduction in Software Engineering (Cruise) team investigating incorporating software patterns directly into the Umple programming language Research Assistant University of Ottawa (Sep 2006 – Oct 2011) Worked in a small team of researchers working in the Cruise lab (Complexity Reduction in Software Engineering) + Developed model-oriented programming language (Umple) available at http://try.umple.org + Conducted several online surveys to gather data about the attitudes of software practitioners Teaching Assistant University of Ottawa (Sep 2000 – Jan 2002) Computer and Engineering courses in English and French including quality assurance, introduction to engineering and file management in Java and C language + Software Quality Management including Black / White Box, Unit, Component, Integration, Coverage analysis, Test-driven development + C Programming including File Management, Introduction to Engineering COMMUNITY EXPOSURE UCosp Project Mentor (2011 – present) Coordinate undergraduate students across Canada on semester long open source projects Open Source Contributor (2008 – present) Leading projects as well as contributing improvments to existing ones including Log.io, Monit, Appstats, Geokit with Github (github.com/aforward) and Umple with Google Code (code.google.com/u/aforward/) Junior Achievements (2004 – 2011) Involved with their Economics of Staying In School, and Business Basics program helping to educate youth about life skills. Ottawa Regional Science Fair (2002) I judged the Junior Engineering projects. Ontario Engineering Competition 2002 An annual competition that promotes both design and communication. • Coordinated 10 executive members and oversaw accounting, sponsorship, promotion, publications, • Involved 180 competitors and 50 judges • Despite challenges, the result was a well run, balanced budget competition University of Ottawa Baseball (2000-2001) Played left field for two seasons hitting over .400 in my first season, and finishing 3rd in Canada in 2001 Enrichment Courses Instructor (2000) Weeklong French IT camp for high school students involving computers, the Internet and robots (Lego Mindstorm). In School Mentoring (2000) Similar to Big Brother where I visited with a high-needs students in a one-one setting during school hours. IEEE Student Branch (1998 – 2002) • Coordinated a technical conference in 2000 (S-PAC) brining 150 students and professionals together • Recognition for recruiting the most new members in Canada in 2001 • Awarded an honorary thank-you from the Dean of Engineering in 2002 Adventures in Engineering and Science University of Ottawa (1998 – 1999) Camp instructor and Camp Coordinator my first and second year (Bilingual camp). Richmond Retirement Lodge (1997) During my lunch hours I helped with meals and recreation at the local retirement lodge. CONFERENCE PUBLICATIONS Lethbridge, T., Mussbacher, G, Forward, A. and Badreddin, O, (2011) "Teaching UML Using Umple: Applying Model-Oriented Programming in the Classroom", CSEE&T 2011, pp. 421-428. Lethbridge, T.C., Forward, A. and Badreddin, O. (2010), "Umplification: Refactoring to Incrementally Add Abstraction to a Program", Working Conference on Reverse Engineering, Boston, October 2010, pp. 220-224. Forward, A., Badreddin, O., and Lethbridge T.C. (2010), "Perceptions of Software Modeling: A Survey of Software Practitioners", 5th Workshop From code centric to model centric: Evaluating the effectiveness of MDD (C2M:EEMDD), Paris, June 2010, http://www.esi.es/modelplex/c2m/papers.php. Forward, A., Badreddin, O., and Lethbridge T.C. (2010), "Umple: Towards Combining Model Driven with Prototype Driven System Development", 21st IEEE International Symposium on Rapid System Prototyping, Fairfax VA, June. Forward, A., Lethbridge, T.C., and Brestovansky, D. (2009), "Improving Program Comprehension by Enhancing Program Constructs: An Analysis of the Umple language", International Conference on Program Comprehension (ICPC) 2009, Vancouver, IEEE Computer Society, pp. 311-312. Forward, A. and Lethbridge, T.C. (2008) "A Taxonomy of Software Types to Facilitate Search and Evidence-Based Software Engineering", Cascon 2008, IBM and ACM, pp.179-181. Forward, A., and Lethbridge, T.C. (2008), "Problems and Opportunities for Model-Centric Versus Code-Centric Software Development: A Survey of Software Professionals", Workshop on Modeling in Software Engineering, in conjunction with ICSE 2008, Leipzig, ACM, pp. 27-32. Forward, A., Lethbridge, T.C. and Deugo, D (2007), "CodeSnippets Plug-in to Eclipse: Introducing Web 2.0 Tagging to Improve Software Developer Recall", Software Engineering Research, Management and Applications (SERA) 2007, August, IEEE Computer Society, pp. 451-460. Forward, A. and Lethbridge, T.C. (2002), "The Relevance of Software Documentation, Tools and Technologies: A Survey", DocEng 2002: The ACM Conference on Documentation Engineering, pp 26-33. JOURNAL PUBLICATIONS Forward, A., Lethbridge, T.C., Badreddin, O., Solan, J., (2011) "Model-driven rapid prototyping with Umple", IEEE Software Practice and Experience. DOI: 10.1002/spe.1155 Lethbridge, T.C., Singer, J and Forward, A., (2003) "How software engineers use documentation: the state of the practice", IEEE Software special issue: The State of the Practice of Software Engineering, Nov/Dec 2003, pp 35-39.