======
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 

OSSD, Bilingual, top 1% in OCDSB 1997

Royal Conservatory of Music
Grade 8 Piano and Level 2 Theory, July 1996

======
WORK EXPERIENCE
======

Senior Software Developer
CENX, Inc. (Oct 2010 - present)
Software infrastructure architect and developer with a Carrier Ethernet interoperability company.
• Built tools to manage 15M client locations used in our flagship market application
• Data Audit lead. Developed a system to enable intelligently deal with over 20 Gigabits of inconsistent data (from spreadsheets, word and html documents, html, PDFs, email) involving more than 300 different formats and 1000s of files
• Built custom DSLs for automating integration with 3rd party ordering tools, for building telecom network topologies, data auditing 
• Built KPI generator to simulate network conditions like latency, jitter and frame loss.
• Automated server monitoring with Monit, and Munin
• Introduced Behavioural Driven Development (BDD) with concepts like test-first, CI and CD using CruiseControl, Cijoe, PHP, Rspec, Autotest, Guard, Selenium and Web Driver
• Client support on core Market / Inventory apps for managing client locations.
• Helped introduce DevOps processes and systems to automate and enable scalable cloud-based applications

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  (since 2000)
Additional software consulting roles.  Notable projects include:
• NSERC Grants. Built web services API to bridge access between CRM and Sharepoint
• Uhber.com. Social media platform to help build the ultimate homepage. 
• HatchMortgage.com.  Application developer to streamline mortgage apps with social media integration, REST API and JQuery UI.
• ArrowMight.ca.  Application developer building back-end management and reporting engine for distance learning courses
• SiteValet.com. Senior software architect building virtual ISPs for small to medium hotels. Ruby on Rails.
• TravelOnlyOttawa.ca.  Niche travel website that focussed on speed and SEO for “Ottawa travel agent”
• Use Case Editor. Application architect building a use case simulator using Java, Swt, and Xml

======
ACADEMIC AWARDS / ACCLAIM
======

• Nominated for Governor General’s Gold Medal (highest ranked PhD Thesis) 2010
• NSERC Industrial Postgraduate Scholarship  (IPS2) 2006 – 2010
• Certificate in IT Service Management 2003
• CGI Ottawa award for Excellent 2000 – 2001
• Golden Key National Honour Society lifetime membership 2000
• IEEE RAB Student Branch Membership Growth Award - University of Ottawa 2000
• Canadian Engineering Competition (CEC) Team Design 4th Place 1998
• Ontario Engineering Competition (OEC) Team Design 2nd Place 1998
• Lutheran Life Scholarship 1997 – 2001
• Dean’s Honour List 1997 – 2001
• PEO Foundation Award 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 Research Institute Award 1997
• Winston Churchill Memorial Scholarship 1997
• William W. Powell Memorial Scholarship 1997
• Certificate of Distinction (to 25% in Descartes Mathematics Contest) 1997

======
TEACHING / RESEARCH EXPERIENCE
======

Post-Doc
University of Ottawa (Jun - Aug 2011)
Worked with the Complexity Reduction in Software Engineering (Cruise) team helping to open source the Umple programming language and build infrastructure to automate deployment and quality assurance procedures.

Research Assistant
University of Ottawa (Sep 2006 – Oct 2011)
Involved with 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

======
TOOLING PROFICIENCY
======
Web Apps And Software Development
• Umple, Java / JVM, C#, C, PHP, Ruby, Erlang/Elixir, Clojure 
• HTML, XML, ASP.Net, PHP, Ruby On Rails (2.x and 3.x), Elixir, Java, JavaScript, JQuery, Prototype, CSS/Sass/Less
• SSL, HTTP/S, TCP/IP, DHCP
• Mongrel, Passenger, Nginx, IIS, Apache, Tomcat, Node.js
• DigitalOcean, Rackspace, Amazon S3, Heroku, Google Maps, Twitter, Facebook 
• Git, SVN, ClearCase, Visual Source Safe, RCS for version control
• Nant, Ant, CruiseControl, Cijoe, Bash
• NUnit, NUnitAsp, HttpUnit, JUnit, PhpUnit, JsUnit, Selenium, WebTest, WebDriver
• SharpDevelop, VisualStudio’s.Net,  Eclipse, RadRails, TextMate Sublime as an IDE
• MySQL, Oracle 9i, Redis, PostgreSql, MongoDB, Riak
• Chef, Pallet, Ansible, Puppet, Capistrano

======
APPLICATION PROFICIENCY
======

Application Architect / Project Management
• JAD sessions (cross domain requirements)
• Aligned requirements with use cases, prototypes and system development
• Infrastructure design, implementation and support to better automation
• Change requests and cost estimation
• Managed small software development teams
• Defect tracking Jira, Bugzilla, Mantis, FogBugz, LightHouse, Basecamp, GoogleCode and GitHub

Software Development
• Test-Driven design, Continuous Integration (CI), Continuous Deployment (CD), Unit Testing, Software Metrics like Code Coverage, (Emma, Rcov) and coding standards (FxCop)
• Modeling, documentation in UML including a model-oriented language called Umple
• Software experimentation
• Language design both general purpose (Umple), and domain specific (DSL)

COMMUNITY EXPOSURE
Open Source Contributor (2008 – 2013)
Contributing and/or improving existing open source and personal projects including Log.io, Monit, Appstats, Geokit with Github (github.com/aforward) and Google Code (code.google.com/u/aforward/)

Junior Achievements (2004 – 2011)
Involved with Economics of Staying In School, and Business Basics program helping to educate youth.

Adventures in Engineering and Science 
University of Ottawa (1998 – 1999)
Camp instructor and Camp Coordinator (Bilingual).

IEEE Student Branch (1998 – 2002)
• Coordinated a technical conference (S-PAC) brining 150 students and professionals together
• Recruited the most members in Canada 2001

Ottawa Regional Science Fair (2002)
I judged the Junior Engineering projects.

Ontario Engineering Competition 2002
Annual university undergraduate competition focussing on design and communication.
• Coordinated 10 executive members and involved 180 competitors and 50 judges
• Involved with accounting, sponsorship, promotion, and publications,

Enrichment Courses Instructor (2000)
Weeklong French IT camp for high school students involving computers, the Internet and robots.

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
 
======
CONFERENCE PUBLICATIONS
======

Badreddin, O., Forward, A., Lethbridge, T.C., (2013) ‘Improving Code Generation for Associations: Enforcing Multiplicity Constraints and Ensuring Referential Integrity’, Software Engineering Research, Management and Applications (SERA), Springer, to appear.

Badreddin, O., Forward, A., Lethbridge, T.C., (2013) ‘Exploring a Model-Oriented and Executable Syntax for UML Attributes’, Software Engineering Research, Management and Applications (SERA), Springer, to appear.

Lethbridge, T.,  Mussbacher, G, Forward, A. and Badreddin, O, (2011) “Teaching UML Using Umple: Applying Model-Oriented Programming in the Classroom”, CSEE&T 2011, IEEE Computer Society, pp. 421-428.

Omar Bahy Badreddin, Timothy Lethbridge, Hisham El-Shishiny, Margaret-Anne D. Storey, Andrew Forward: Challenges and opportunities in applying research prototypes and findings into industrial practice. Cascon 2010, IBM and ACM,  414-415

Lethbridge, T.C., Forward, A. and Badreddin, O. (2010), “Umplification: Refactoring to Incrementally Add Abstraction to a Program”, Working Conference on Reverse Engineering, Boston, IEEE Computer Society, 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., Solano, J., (2011) “Model-driven rapid prototyping with Umple”, Software Practice and Experience, Wiley. 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.