Skills Summary
- Seven years of experience writing software using various programming languages, for both commercial and leisure purposes.
- Strong foundation in object oriented and structured programming designs and methodologies required to implement scalable software solutions.
- Experience in using functional programming paradigms to optimize application performance and reduce component coupling.
- Comprehension of the paradigms of effective and aesthetically pleasing standards based Internet application development.
- Ability to productively work either individually or as a member of a team.
Computer Proficiency
- Thorough knowledge of modern object oriented programming languages: C#, C++, and Java.
- Thorough knowledge of modern Internet languages and standards: XHTML 1.1, JavaScript, CSS (Levels 1, 2, and 3), and XML and related technologies (XSL, XPath, XSD, etc.).
- Working knowledge of relational database systems and languages: Microsoft SQL Server, SQLite, and ANSI SQL.
- Working knowledge of Microsoft Visual Studio 2010, Eclipse, and the GNU Compiler Collection.
- Working knowledge of Source Control Management systems including Perforce and Mercurial.
Work Experience
March 2010 - Present
Advanced Web Developer
Vastardis Capital Services, Burlington, ON
- Designing and developing a toolkit for the creation of pure JavaScript web user interface components using jQuery, mustache.js HTML templates, and XML.
- Designing and developing a standards based Financial Dashboard web application using various technologies and frameworks including ASP.NET, jQuery, and protovis.
- Researching cutting edge technology for integration with application including .NET’s Task Parallel Library, Comet, and Touch Events in WebKit/Gecko.
- Developed a prototype testing infrastructure for unit testing and functional testing of JavaScript components/classes using QUnit and WatiN.
- Coaching other team members regarding best practices for web based application development.
May 2008 - March 2010
Software Engineer
Actuate Corporation, Toronto, ON
- Taking a leadership role for up to five developers in refactoring the user interface code for a Web based Performance Management application written in C#, Delphi, HTML and JavaScript, with particular emphasis on the following areas:
- Creating a set of reusable and testable Web 2.0 controls from an existing legacy codebase in an iterative fashion.
- Establishing a high level of separation of concerns using various industry tested design patterns including Model-View-Controller and Model-View-Presenter.
- Establishing a goal for a clear-cut n-tier architecture and migrating existing code to the appropriate locations.
- Creating a core toolset to allow for easier implementation of standards compliant and accessibility aware (Section 508, WAI-ARIA, etc.) components.
- Ensuring team members follow through on internal coding practices regarding reusablility and separation of concerns through code and concept reviews.
- Authored and verified design and scoping documents for newly committed development projects.
- Addressed critical support inquiries from customers in a thorough and timely fashion.
- Mentored Co-operative Education students in enhancing their understanding of software development methodologies.
May 2007 - August 2007
- Evaluated the user interface of a specialized Activity Management application, with a focus on the following three areas:
- Removing redundant controls and pages from the codebase.
- Merging controls with similar functionality into generalized control(s) with appropriate behavioural facets.
- Simplifying the user’s interaction by reducing the amount of User Interface Friction present in the system.
- Designed and implemented a new set of generic and reusable ASP.NET Server Controls in C# and JavaScript for use by other developers.
- Identified and addressed encapsulation, coupling, and performance issues in the Presentation and Presentation Logic tiers of the application.
- Improved application maintainability by ensuring that ASP.NET modules conformed to Microsoft recommended best practices.
- Provided instruction, demonstrations, and support to peers for the correct usage of the new ASP.NET Server Controls.
August 2006 - December 2006
- Implemented a new Database Persistence code path, significantly optimizing most database access tasks.
- As part of a team, reviewed the application’s codebase for potential Oracle database incompatibilities, and developed preliminary software interfaces to address the incompatibilities.
- Improved the application’s user experience by profiling and optimizing heavily used Web Service and JavaScript methods.
- Designed and developed the user interface for a Database Upgrade Wizard in C#.
- Debugged and fixed key application issues in a timely fashion, ensuring that code changes did not result in any regressions.
January 2006 - May 2006
Software Developer
Business Objects SA., Vancouver, BC
- Increased the speed of the MSI generation toolchain by 10%, shortening the build times of the software suite by 10 to 15 minutes.
- As part of a team, developed the client side infrastructure needed for the organization to be able to ship stand-alone language packs for the Enterprise and Crystal Reports application suites.
- Developed and maintained internal tools used by the Installation team during the build process of media masters using C++, C# and Perl.
- Designed and developed a proof of concept version of a next generation Unix Software Installer backend using Perl, XML, and GNU Make.
May 2005 - September 2005
Junior Computer Programmer
Sensors & Software, Inc., Mississauga, ON
- As part of a team, played an integral part in the final stages of development of an application written in C++ specializing in the analysis of large volumes of Ground Penetrating Radar data.
- Increased the usability of the application by streamlining and simplifying the User Interface based on internal user response.
- Optimized the application’s data rendering code nearly 400% by using double buffering and occlusion techniques.
- Responsible for validating the implementation of several key analysis algorithms in the application using empirical examination.
- Refactored and modularized common components from the application to be used by additional projects.
Volunteer Experience
December 2011 - Present
Leadership Team Member
Master Foroughi’s Martial Arts Academy, Toronto, ON
- Leading 15 minute warm-up sessions for younger students before class.
- Assisting Masters and Instructors during class by teaching students individually or in smaller breakaway groups.
- Assisting in the organization and planning of school activities.
Education
- Bachelor of Mathematics, Honours Computer Science, Co-operative Program, Minor in Philosophy, University of Waterloo, Waterloo ON, September 2003 - August 2008.
Interests and Activities
- Leisure ice and inline skating.
- Financial Modelling and Systems.
- Classic Western Literature.