When I build software, I focus on simplicity: simple, organized design; simple, readable code; simple, useable interface. I am a quick learner, and I think it is important to be versatile with respect to technology.

Technology I've Used in the Past

  • Java
  • C, C++, Objective-C
  • Javascript, HTML/CSS
  • PHP, Ruby on Rails, Django
  • HTTP, ReST

Most importantly, I would love to learn whatever cool language or framework you use.

Here are some projects I've worked on, in reverse chronological order:

2012 / 2013 - Clinical Decision Support Software (in progress)

Working with another developer and a local team of clinicians to prototype their vision of a clinical decision support system for iPad.

  • Designed the architecture of the system, including an HTTP ReST API.
  • Used KineticJS to create a graphic interface built on HTML5 Canvas.
  • Employed a continuous build and integration system. (Jenkins CI)

2012 / 2013 - uOttawa Engieering Students' Society (ESS) (in progress)

Volunteering as Director of Information Technology on the ESS executive, which is comprised of 10 students. In that capacity, I also appointed a Commissioner to help with the development of various projects. The software projects that follow were completed with the help of that Commissioner.

  • Writing an internal web service that will manage the sale of ESS merchandise. (PHP, MySQL)
  • Designing an API that will provide hooks for our online store.
  • Designing a web interface for in-person sales.
  • Built a registration system that gathered data about students registering for frosh week activities.
  • Built a point of sale system for volunteers registering attendees for the annual EngBall.
  • Helped to manage a ~$100,000 budget.

2012 - Professional Engineers Ontario Student Conference (PEOSC)

Volunteered as Communications Director on a team of 5 students to plan and execute a student conference.

  • Worked with the Creative Director to implement the website.
  • Drafted pitch emails to potential speakers and sponsors.
  • Coordinated logistics on conference weekend and acted as MC for many of the sessions.

2012 - IEEE International Conference on Communications (ICC) Website

Currently working with another member of the IEEE to improve ICC2012's website. The website conveys a lot of complex information that is difficult to read and understand in its current form. I am working to improve the user experience by making the site more interactive and dynamic so that the user can find and understand exactly what they are looking for. My code should be live by the end of March 2012.

  • Using JavaScript to create dynamic components that the site can display personalized information. (i.e. based on membership status, student status, etc.)
  • Modelling information so that the site can make suggestions in real time, based on the user's selections.

2011 / 2012 - Service Oriented Architecture (SOA) Prototype

As part of my job at the Treasury Board's Interoperability Centre of Excellence, I am helping to create a prototype of Service Oriented Architecture for the Government. The goal is to implement a few different scenarios using different technology in order to compare and contrast different solutions.

  • Developed a proof of concept Service Oriented Architecture prototype.
  • Wrote custom Java business portlets for deployment on Liferay CMS.
  • Installed, configured, and administered application servers locally and remotely.
  • Wrote a simple web service to test the prototype infrastructure.
  • Wrote a wrapper API for the jUDDI registry that facilitates the publication and discovery of web services.
  • Acquired a Level II (Secret) security clearance with the Government of Canada.

2011 - Online Property Rental Web Application

Completed as a Software Design and Analysis project, as part of a 3 member team. Designed and implemented an 'Online Property Rental' web application that facilitates the discovery and rental of property for owners and customers.

  • Followed the Rational Unified Process software engineering framework, including iteration.
  • Analyzed use cases and designed a useful, usable system.
  • Iterated to improve the design.
  • Implemented the design using Java and a Java Enterprise framework.
  • Employed Twitter Bootstrap to create a friendly web interface.

2011 - Requirements Specification for TA Management System

Completed as a Software Requirements Engineering project, as part of a 4 member team. Elicited requirements for a new Teaching Assistant Management System (TAMS).

  • Elicited requirements using a formal, structured approach.
  • Interviewed stakeholders and analyzed their responses.
  • Formalized requirements into a requirements specification according to IEEE 830.
  • Validated requirements with stakeholders before submission.

2011 - Ottawa City Event Planner

Completed as a Databases I project, as part of a 2 member team. Designed and implemented an application that allows users with login credentials to discover and purchase tickets to events happening in Ottawa.

  • Implemented the user interface with Java Swing.
  • Designed a relational database schema and implemented it in PostgreSQL.
  • Implemented database-centric features such as search and filters.
  • Sanitized input to the database for added security.

2011 - Simulation of an Oil Mine

Completed as a Software Construction project, independently. Designed and implemented a simulation of an oil mine which was used to optimize the mine's throughput.

  • Implemented the simulation using Java threads for active objects in the model.

2010 - Box Packing with the Genetic Algorithm

Completed as an Intro to Programming project, as part of a team of 2. Given the weights of several objects, our genetic algorithm packed the objects into several containers so that the weights of the containers were as similar as possible.

2008 - Rapid Acting Insulin Dose Estimator (RAIDE)

Completed as a high school project, as part of a team of 2. A simple Java program that allows those with diabetes to estimate their required dose of rapid acting insulin given several parameters.