Portfolio / Case Studies

Kingston Rocket

Photo of one of the school buses we chartered to run the service

Extensively featured on:

We were featured in the Toronto Star, Global News, and CBC Radio

  • $1,184,000 annual revenue potential
  • 7,200+ peak weekly total Facebook reach
  • 84.6% of riders were “Happy” or “Very Happy” with the service

The Kingston Rocket was a low-cost bus company I founded and ran as CEO. We served students travelling between Toronto and Kingston and reduced prices by running school buses instead of coach buses and by running only on weekends when students would be going home.

I was solely responsible for the technical backend of our company’s payment system, and also took the lead on our marketing strategy. By paying special attention to the copy and design of email newsletters, I was able attract 2,500 subscribers on our email list, which resulted with the email channel producing the highest conversion rate out of all other marketing channels, including our Facebook page which had a peak weekly total reach of over 7,200 people. At our peak, we served almost 400 students per trip—enough to fill 9 buses!

After a successful first trip, we expanded the business as the London Rocket to service students travelling between London and Toronto. However, as our popularity spiralled into mainstream news, our competitors Greyhound and Coach Canada pursued legal action against us on the grounds of a pre-existing monopoly in the industry, forcing us to close the business.

In their notice of intervention, Greyhound estimated our annual revenue potential at $1,184,000 had we continued the business. (“$974,000 annually on the London-GTA Corridor”, and “$210,000 annually on the Kingston-Ottawa Corridor”)

Atlas Symposium

Photo of the crowd at the 2011 Atlas Symposium
  • 44% net profit margin in first year of conference
  • 400+ delegates attending in 2014
  • 82.6% of delegates would invite more friends to attend the event

Atlas Symposium is an annual conference I founded in 2011 that helps high school students decide on their post-secondary options. We do this by hosting a debate between the top schools in Ontario in a one-day conference.

The debate is hosted between student panellists who answer the questions that applicants care about: classmate personalities, social lifestyle, and campus culture. This information is not covered by traditional sources of information like recruitment offices, websites, and brochures. Students can now get all their questions answered with the honest opinions of current students rather than spending hundreds of dollars and taking a week off school to drive around the province visiting open houses.

With this project, I transformed Atlas Symposium’s website into the primary marketing tool for raising awareness of the conference and closing sales. The new landing page design lead to a 22% increase in email sign-ups over the old landing page design. My ongoing involvement with the conference involves managing a team that quadrupled attendance in the fourth year of the conference, and secured sponsorships with CPA Ontario, LinkedIn, and Sun Life Financial.

Click here for a live demo. Click here to view the source code on GitHub.


Screenshot of the Battleboat app in action

Battleboat is an AI that I wrote in JavaScript that plays Battleship. I wanted to make an AI more powerful than humans, and gameplay data from over 7,000 human players shows that the algorithm wins 67% of all games. The AI works by first generating a probability heatmap as it uncovers your ship placements, then targeting cells in decreasing magnitude of probability of where the ship could be.

To challenge myself further, I developed this app without the use of any libraries (no jQuery, no Bootstrap, etc.) as a technical demonstration of my JavaScript knowledge, and to refine my skills in statistical machine learning.

Click here for a live demo. Click here to view the source code on GitHub.

Movie Info

This is a full-stack project I created that shows information about movies using the Angular.js framework. I also built a back-end database written in Flask (Python 3.4) that caches results in order to enable faster load times, and to decrease the reliance on a third-party API for movie data. This also enables the user to return to their search results later via a permanent link.

Click here for a live demo. Click here to view the source code on GitHub.


Giv2Giv is a nonprofit crowdfunded endowment platform that distributes the income from the user’s investment to the charities they want to support. The charity receives grants from the endowment every 90 days for life.

Giv2Giv needed front-end code for large sections of the website, and I created an entirely new UI for them including a primary user dashboard and an interactive HTML5 animation on the landing page that succinctly informs the user about how Giv2Giv works, leading to increased user engagement.

I also extended their custom JavaScript MVC framework by building new features into their routing system based on Crossroads.js—their framework had no documentation and I had to learn the stack quickly in order to gain a deep understanding of the internal workings of the software infrastructure rather than relying on the “magic” present in other popular JavaScript frameworks.

Click here for a live demo. Click here to view the source code on GitHub.

Saxon Energy Services

Screenshot of the Saxon Energy Services website

Saxon is an international oilfield services provider based in Calgary, Canada. They have over 3,800 employees and operate in 11 countries around the world.

The client had no existing resources for the front-end other than design assets and it was up to me to deliver code for the entire website—working only from a design spec.

I worked with a back-end developer to create a mobile-responsive HTML5 for Saxon that would deliver a consistent user experience across all devices. For this project in particular, I made sure to do extensive cross-browser testing for the website to ensure that the company would retain its professional image on older browsers that are more prevalent in the industry.

Grocery Match

Screenshot of the Grocery Match app

Grocery Match is an Android app I developed for a client in Toronto. The app lists weekly deals at Canadian grocery stores, and you use the app to get discounts on the featured products based on the store's price matching policies.

The app gets its data via an API that connects to a Ruby on Rails backend. This was the first native Android app that I made for a production environment, and I was excited to manage the entire product lifecycle with the client. After I helped the client identify the business case for creating an Android app, I worked with the client through the entire process: from design, to coding, to deployment.

Click here for a live demo.

The Skinny Blonde Girl Blog

Screenshot of The Skinny Blonde Girl website

The SBG blog is a fashion blog run by Katelyn Zborowsk in Toronto. I was hired by Sixtooth Interactive Development as a front-end developer to create HTML/CSS/JavaScript from scratch that would be converted into a custom WordPress template for Katelyn.

Market IQ

Screenshot of the Market IQ website

I worked at Market IQ to help develop a stock trading system that uses natural language analysis of real-time news events broadcast on Twitter, blogs, newswire services, and other sources to guide stock purchase decisions.

By analyzing the machine learning systems in place and applying various techniques (such as kernel methods) to improve the algorithms, I was able to increase classification accuracy of predicted stock direction by 12.7% despite a noisy input dataset.

Simple Black-Scholes

Screenshot of Simple Black-Scholes

The Black-Scholes formula is a mathematical model used in finance to determine the theoretical price of a stock option. Surprisingly, there are no well-designed online Black-Scholes calculators—all of the results I could find on Google either lacked features (such as reporting intermediate calculations, or allowing an input for dividends), or were confusing to use (e.g., unclear whether to input time in days or years). My objective with this project was to create an app that would guide user behavior primarily with design cues, in order to fix these user experience problems. As shown in the next screenshot, the form validation events respond dynamically to several cases, giving the user context-sensitive feedback.

A form validation example on the black-scholes calculator

The validation errors are designed to gently tell the user what went wrong and exactly how to fix it. By conveying instructions to the user only after they are done interacting with the application and not presenting all the information up front, the user feels smarter when they learn how to use the application without any help. This is also reinforced through implicit design cues rather than explicit text; for example, the monetary input fields are prefixed with a $ symbol to make it obvious what should go in the input field without explicitly telling the user what to do.

If a user inputs a value that is outside the range of what would be considered realistic, the application continues anyway instead of crashing and reminds the user of what’s going on just in case they mistyped a number. In some cases, it’s natural to omit a number, and certain fields (e.g. the dividend field) have default fallbacks so the user isn’t jarred if they forget to enter a certain value.

Click here for a live demo. Click here to view the source code on GitHub.


Screenshot of Vidhub website
  • Awarded the “most monetizable product” by FreshBooks

Vidhub is a live video annotation service that allows you to insert comments on a video as it is playing, allowing you to refer to these comments at the specific timestamp while the video plays. It is currently incredibly difficult for video editors to share comments and questions with other people involved in a video project, resulting in a disrupted workflow when teams of employees have to work together to produce a video. Vidhub aims to resolve this issue by allowing everyone involved in video production to bring their comments to one place on an easy-to-use app.

I worked with a team on this project during the hackathon at the Canadian Undergraduate Technology Conference and my role involved wireframing the user-interaction, then putting together the design architecture and finally implementing on the front-end HTML and CSS.

Click here for a live demo. Click here to view the source code on GitHub.

The Pineapple Project

Screenshot of Pineapple Project website
  • Won an award from PayPal for best use of payments API

The Pineapple Project is an application that helps subsistence farmers in developing nations make informed decisions on which crops to plant. Due to the scarcity of information available, farmers risk planting a less optimum species or variety of crop, exhausting limited land and resources needed to support the farmer's diet or income.

The Pineapple Project works by geo-locating the user to determine basic planting conditions such as expected rainfall, temperature, humidity, altitude, and other variables. The user can also refine the information by inputting information specific to their land plot, such as soil type, incline, and amount of shade. The application uses this data to generate a ranking of the crops most likely to be viable, allowing the farmer to make a more informed planting decision.

I worked with a team on this project during a 24-hour hackathon at AngelHack Toronto, using a rapid-development strategy that allowed us to ship the product on three platforms (web, mobile HTML5, and iOS) while still maintaining the attention to detail present in a high-quality product. My role involved designing and coding the public landing page on the web platform in order to drive downloads of the mobile app.

Click here to view the source code on GitHub.

Hide Facebook Post Likes

Hide Facebook Post Likes logo

I developed this Google Chrome extension to hide the number of likes and shares on Facebook posts in order to encourage you not to compare yourself to other people. My philosophy behind developing this application is that Facebook should not be a popularity contest. I believe that when you share something, you should share it because you care about your friends, and not because you just want to have the most number of likes on your post. Hiding the likes and shares on posts, comments, and news feed items lets you have a meaningful conversation instead.

Click here to view the source code on GitHub.


A photo of me pitching at the Queen's Startup Summit

FitHub is a mobile app that ensures you have proper form while exercising to help reduce injuries from weightlifting. It works by analyzing your body geometry through machine vision and I developed it with a team of six over a 48 hour hackathon at the Queen's Startup Summit.

As the only person on the team tackling business development, my role was to create a revenue model, marketing strategy, and distribution plan and present it to a panel of judges at the conclusion of the hackathon.

RC Gamification Consulting Logo

The RC Gamification Consulting Website

RC Gamification Consulting approached me to create a logo that would feature prominently in all of their branding, both online and offline. I worked with the client through a process of identifying the core values that the business wanted to communicate, and embodying those values into a visually memorable symbol supported by a wordmark. The client wanted a modern look on a classic “game” concept, and I used this metaphor to model the logo after a badge that reminds the viewer of online gamification techniques.