Finding ourselves to be bored with university classes, my friend and I decided to build a networked version of Minesweeper. Friends play against each other in a passive manner—you make a move when it's convenient for you to do so.
The Android app is a classic mobile Java project and the iOS version is written in Objective-C. The game is backed by a Ruby on Rails server, sitting atop Heroku, which provides a secure API allowing for cross-platform integration.
The leaderboard makes use of the Elo rating algorithm, meaning it's more worthwhile to win against someone higher up the chain and more detrimental to lose to someone inferior to yourself.
This project was funded by private investors in Spring, 2012.
Minesweeper Flags on Google Play Back
PlanHero solves the "flaky friends" problem. Users are able to quickly build an event and invite their friends. All parties involved may then vote on dates to hold the event, places to go, or any other relevant decisions. Payments are also tightly integrated so the event planner does not need to run around and collect cash from a single person. This entire process involves minimal user input and is largely automated.
The application is written in Ruby on Rails with the help of a PostgreSQL database. Hosting is handled by Amazon EC2.
This project is currently moving through a seed round of funding.
Recognizing the frustrations and scheduling conflicts present when attempting to build a timetable for our upcoming university semesters, my friends and I built ClassGenie, the one-stop solution to university scheduling.
It works like this: You say, "I need to take MATH 100, ECON 101, and CHEM 103, and I don't want to start school before 10:00 AM." And ClassGenie will give you schedules that fit your life. Simple.
The frontend is a Backbone.js app that communicates with a Ruby on Rails API on the backend to handle authentication and persistent storage. The intelligence lies within a custom fuzzy logic system that takes numerous factors into consideration when generating potential schedules. The entire application is hosted with Heroku and is currently able to support any post-secondary institution on the planet.
This project is undergoing a final beta test and will be available soon. Back
Meet the Humans
Upon graduating from university, I decided to open my eyes by embarking on a trip around the world. Living out of nothing but a small backpack, I'll be running a marathon through New York City, hiking through the Amazon Rainforest, and teaching English in the Democratic Republic of Congo.
Over the course of a year, there's no doubt I'm going to encounter many beautiful, unique people, full of lessons to deliver and experiences to share. I'll be documenting the most interesting and uprooting ideas I discover along the way on this blog.
Note: This writing project has since evolved into a journal of concise thoughts and experiences, aptly named My Simple Thoughts. The Meet the Humans blog has been left online to serve as a demonstration of WordPress theme design.
Double Jaw Surgery
In late March, 2010, I elected to have double jaw surgery performed to correct issues with my bite. Following an arduous recovery stretching late into the following summer, I grew frustrated at the fact that no usable information related to the operation could be found online.
Thus was born my first blog, a daily writing project detailing exactly what one can expect during the recovery from this type of surgery.
The blog is currently the #1 hit for various jaw-related search terms, is referenced by several surgeons worldwide, and has allowed me to meet people from all over the world who have been through similar operations.
App.yml for Rails
After working with the Symfony framework (written in PHP), I discovered a need for project-wide configuration functionality in the Ruby on Rails framework. Since no comprehensive solution could be found, this gem was written to integrate the feature directly into the framework.
The gem supports YAML-style configuration, multiple environments, dot syntax for accessing nested settings, and auto-reloads all settings without requiring an application restart.
App.yml on GitHub
App.yml on RubyGems Back
Facebook Comments for WordPress
Recognizing a high demand for integrating Facebook accounts into blogs, this plugin was designed from scratch to be simple, user-friendly and unobtrusive. It boasts complete customization of styles and placement, and is currently used on over 30,000 websites, allowing any visitor who is signed into Facebook to post comments using their account with a single click.
This plugin made extensive use of both the WordPress and Facebook APIs.
After enjoying more than 300,000 downloads, the project was handed off to a capable Computer Science major from Stanford University, where it is still actively developed.
Facebook Comments for WordPress on GitHub
Facebook Comments for WordPress on WordPress.org Back
This well-established photography studio had recently undergone a complete redesign of their online portfolio. They wished to streamline the process of adding new clients to their external database, however, and contacted me to see if it was feasible to tie the two systems together.
Working within a WordPress installation, their client database was successfully linked to their new website so that all potential customers are now automatically managed in both systems.
SWS Truck Bodies & Trailers
Tired of their outdated website, this company approached me requesting a complete redesign, including a full backend. Seeing a challenge and an opportunity to learn, I got started immediately. The final product included a parts catalog, a trailers listing and the ability to update pages through a rich-text editor alongside a custom photo editor with scaling and cropping functionality.
This project made extensive use of the jQuery library, along with AJAX, to enhance the overall UI. The backend is completely custom, written from scratch in PHP and designed to communicate with a MySQL database. The entire site is modularized, only loading what it needs at any given time.
Apostrophe is an open-source, in-context content management system, providing users with a simple, familiar way to update their content. It maintains a full feature set, including an integrated media library, blogging and event systems, and an easy way to construct pages using slots.
The project was extended to provide a hosted solution for businesses in need of an easy-to-manage website. Multiple themes were added along with useful new features such as the ability to display an Etsy store within a website.
Apostrophe enjoys a large user base and is complemented by an active support community from all over the world, including both individuals and professional design and development firms such as P'unk Avenue (United States), Superrb Studio (United Kingdom), and MRK Development (Australia).
During my penultimate year in university, I was tasked with a senior undergraduate design project. The specifications called for an application, built in Java, that would fetch data from a given city's open data catalog and provide intelligent recommendations based on a user's schedule and preferences. The suggested activities were bundled with maps, driving directions and photographs.
My team placed first in the competition, judged by representatives from the City of Edmonton, landing ahead of forty other Engineering and Computer Science students. The final application garnered enough interest to warrant a mobile version (which is currently under development for both iOS and Android devices).
Plans in The Edmonton Journal Back
Why hello there! My name is Graham, and I like to break the rules. I’m a 27-year-old Canadian who recently graduated from the University of Alberta with a degree in Software Engineering. I’m passionate about creating the smoothest, cleanest, most simple user interfaces possible. I believe the web should enhance a person’s life, not complicate it.
When I’m not designing websites, I enjoy playing almost any sport, with some of my favorites being hockey, soccer and ultimate frisbee. I’m an avid rock climber during the summer months, but when winter hits, I head straight to the slopes to take in my snowboarding fix for the season. Outside of sports, I enjoy reading, playing guitar and recording music.
I have a desire to surround myself with smart, hard-working, challenging people who can help me achieve my full potential. I value teams with the right mix of drive, risk, and experience, not to mention a little fun!
I believe in making the web a tool for everyday life. Part of that mission revolves around great design. A user should not have to read manuals on web applications—they should just make sense.
I've been a fan of coding for as long as I can remember. I find it relaxing and fulfilling. Diving into a project for hours on end is something I look forward to. My tools of choice are PHP, Python, jQuery, MySQL and CSS3.
High Impact Projects
I want to work on projects that people will use. When you know the masses are counting on you to deliver an awesome product, motivation comes easily. Couple that with a love for what you do, and you're guaranteed results.