The most recent version of my resume can be found at
http://www.integralfracture.com/resume/

John Reed Riley
john.reed.riley@gmail.com

Goals

To become a successful software engineer with expertise in distributed systems and computer security, and to continue to persue my education and professional development while leading a balanced personal and community life.

Skills

Technical
  • Proficient with Java and C#.
  • Proficient with Visual Studio, Eclipse and Vim.
  • Experienced with C++, C, Ruby, Haskell and other languages.
  • Experienced with Linux (Gentoo, Ubuntu and Debian) and Windows.
  • Experienced with BASH, TCSH and DOS scripting.
  • Experienced with several revision control systems, including Git, Perforce, Subversion, and Darcs.
  • Familiar with SQL Anywhere, Microsoft SQL Server, MySQL, and Adaptive Server Enterprise.
  • Familiar with MIPS and ColdFire assembly.
General
  • Debugging and problem solving skills developed through work experience, academic studies and hobbies.
  • Teamwork and leadership abilities developed through clubs, outdoor activities, and volunteer work.
  • Experience designing software in a variety of academic, corporate and government environments.

Relevant Experience

Winter 2007; Fall 2007 (8 months) Software Design Engineer Microsoft Corporation, Redmond
Intern on the team developing Windows Workflow Foundation, a framework for modelling business processes:
  • Designed and implemented the feature to support Active Directory queries, including its architecture, execution semantics and API.
  • Investigated and prototyped a variety of designs for the new version of the State Machine activity.
  • Wrote the design document for the new version of the State Machine activity.
  • Contributed to and participated in design reviews involving a variety of features, including my own.
Summer 2006 (4 months) Software Developer Sybase/iAnywhere Solutions, Waterloo
Intern on the team developing QAnywhere, a webservices runtime built for mobile devices on top of a store-and-forward message queue. Also helped to maintain software developed on my previous terms working at Sybase. In particular:
  • Implemented support for complex types, null reference types and empty arrays in the webservices runtime.
  • Improved performance of the C# webservices runtime on Windows CE by an order of magnitude.
  • Wrote tests for the webservices runtime under Windows CE.
  • Fixed several serious and long-standing bugs in the code responsible for detecting the currently installed version of the MobiLink System Tables.
Winter 2005; Fall 2005 (8 months) Software Developer Sybase/iAnywhere Solutions, Waterloo
Intern on the team developing MobiLink, a product for synchronizing databases. In particular:
  • Designed and implemented a system to generate SQL scripts that describe synchronizations between databases. Designed a test framework for this system.
  • Internationalized the SQL generation process to add support for localized comments and error messages.
  • Designed and implemented an algorithm to efficiently map tables and columns between two schemas.
  • Designed and implemented components to simplify the writing of asynchronous tasks and progress dialogs.
  • Updated and maintained "reference schemas" used to detect the installed version of MobiLink system tables. Also fixed bugs in SQL installation scripts.
Summer 2004 (4 months) Java / Servlet Programer Arius Software, Waterloo
Intern with a team developing custom applications for brokerages. In particular:
  • Reduced loading time of the web interface by 50%, and decreased the size of the web pages.
  • Redesigned the message queue to support synchronous message delivery and improve efficiency.
  • Found and fixed several concurrency related errors.
Summer 2002; Summer 2003 (7 months) Database Developer and Designer Cabinet Office, Ontario Government
Summer job with a team implementing a major administrative database over two summers. In particular:
  • Redesigned and documented the underlying structure of the Cabinet Office's document-storage, decision-support and public-request database, resolving several flaws and adding support for interoperability with other government databases.
  • Programmed routines for full-text searches utilizing generated caches to simplify database searches.
  • Migrated historic databases into the newly designed schema, collaborating with a team.
  • Designed and implemented an automated menu system generated from the database.
  • Designed and implemented a database access-control system, vastly simplifying software updates.
  • Programmed routines to generate external documents and email messages based on information in the database.
  • Resolved complaints and feature requests from users. Trained users in the use of new features.

Education

Sept. 2003-April 2008 Candidate, Bachelor of Software Engineering University of Waterloo
Notable courses:
  • CS 343 - Concurrent and Parallel Programming.
  • CS 486 - Introduction to Artificial Intelligence.
  • ECE 354 - Real-Time Operating Systems.
  • ECE 454 - Distributed and Network-Centric Computing.
  • ECE 493 - Special Topics Course in Computer Security.
  • SE 463 - Software Requirements Specification and Analysis.
  • SE 464 - Software Design and Architecture.
Sept. 2003-April 2008 Academic Awards and Achievements University of Waterloo
  • Math Dean's Honours List (Fall 2003, Winter 2004).
  • English Language Proficiency Prize (2003) - Perfect score.
Sept. 1998-Jan. 2003 Academic Awards and Achievements Richmond Hill High School
  • Won a variety of awards and scholarships.
  • Served two years as a teaching assistant.
  • Received two Advanced Placement credits (Physics B - 5.0, Calculus AB - 5.0).

Other Experience

Jan. 2004-Present Linux experience Personal
  • Several years of experience with Debian, Gentoo and Ubuntu Linux; including installation, system maintenance, troubleshooting and software development. Linux has been the operating system on my laptop since 2005.
  • Conributed several patches to fix minor bugs in Gentoo ebuilds.
  • Development of a patch to the Linux kernel to ignore a broken UHCI USB controller on my laptop.
  • Contributed a patch to the Linux kernel to support multimedia keys on my laptop. The patch was accepted in April 2006.
  • Purchased a virtual private server running Debian in 2006, and set up web and email servers for multiple domains.
Dec. 2001-Mar. 2002 Robotics Club Leader Richmond Hill High School
  • Initiated, organized and lead first-ever robotics club at Richmond Hill High School.
  • Co-ordinated club activities with the sister robotics club at Holy Trinity School.
  • Built and programmed a mobile, remote-controlled robot with a team.
  • Placed 2nd overall in the Canada FIRST Robotic Games; Best Engineering Panel Presentation.
July-Aug. 2001 Ontario Stewardship Ranger Ministry of Natural Resources, Toronto
  • Surveyed woodlands, restored streambeds, planted trees, and removed invasive species.
1997-2000 (summers) Youth Leader Bloorview-Hugh MacMillan Centre, Toronto
  • Supervised and lead crafts, woodworking and other activities for both disabled and other children, as a volunteer.

Activities and Interests

  • Martial Arts - currently Chokushin Aikijujutsu, previously Goju Ryu Karate.
  • Reading - mostly science-fiction, mythology and technical literature.
  • Travel - all provinces in Canada; England, Scotland, France and Washington state.
  • Camping and canoeing.

Memberships and Certifications

  • Student member of the Professional Engineers of Ontario (PEO).
  • Workplace Hazardous Materials Information Systems (WHMIS) - 2003.

References

Available on request.