Résumé

Skills

  • Ruby (incl. Ruby on Rails and Sinatra), Java, C# + WPF, JavaScript, SQL, and Bash
  • Some experience with C, C++, Visual Basic .NET, and PHP
  • HTML5, CSS3, XHTML, XAML, LESS, and SASS
  • Adobe Creative Cloud, including Photoshop, Premiere Pro, Illustrator, and Lightroom
  • Git, Matrix.org synapse, nginx, Phusion Passenger, PostgreSQL, and Vagrant
  • VMware ESXi, macOS, Linux, BSD, and Docker

Education

  • B. Sc. (Computer Science), Ryerson University (2014)
  • O.S.S.D. Completed at Forest Hill Collegiate Institute (2010)

Languages

  • English
  • Japanese (some, JLPT N5 passed December 2014)

Work Experience

Highrise AI - Co-founderJanuary 2019 - March 2022

Commercialized my earlier internet-of-things personal project for use in large commercial and residental buildings, to assist with automated disaster detection and mitigation.

Cyphrs - ConsultantJuly 2014 - January 2019

Consultant for a startup developing hardware security module solutions for consumers looking to safely spend and store cryptocurrencies, and merchant terminal solutions for businesses looking to accept them in return. Tasks included initial interviewing and onboarding of firmware and hardware engineers, delivery of GUI mockups, concept art, a block explorer, and finding innovative solutions to hard UX problems like backup key storage.

tBarter Inc. - Lead Developer & Designer October 2013 - November 2015

Designed and implemented an eCommerce site that allowed people to buy, sell, or trade their own items using cash, PayPal, or Bitcoins. The site was developed using Ruby on Rails / PostgreSQL, HTML5, and CSS3 (using SASS), and hosted on Heroku.

LearnBest Inc. - Lead Developer November 2011 - December 2018

Designed and built a white-label platform for partner online learning institutions, used by tens of thousands of students across the globe. The platform uses Ruby on Rails and PostgreSQL, along with Stripe (institutional payments to LearnBest) and PayPal (student tuition payments to their enrolled institution), and is hosted on Amazon Web Services (using S3 / RDS / EC2).

show olderolder work available online

Projexity - UI/UX Developer May 2012 - May 2014

Working with co-founders Nicolas and Marisa, both graphic designers, I help to turn their designs and sketches into an elegant website that provides a responsive user experience across multiple devices and platforms. Developed using HTML5, CSS3 (using LESS), and JavaScript.

CanYouRecall? - Designer / Front-end DeveloperJuly 2012 - May 2013

Created the overall branding, logo, and site design for CanYouRecall, a site that helps students to more effectively prepare for tests and exams. Developed using HTML5 and CSS3.

SurfEasy Inc. - Junior Developer (Intern) June 2011 - August 2011

Helped to develop a Mozilla Firefox browser extension for SurfEasy’s flagship product, using XUL, JavaScript, and C.

Brave Commerce - Graphic Designer (Intern)May 2011 - August 2011

At Brave Commerce, I designed MMS ads and designed / helped develop a mobile site that allowed users to purchase deals on their phones and be billed directly via their carrier. I also co-designed the web portal for the Rogers Mobile Offers service, which was exclusively for mobile devices.

Alex Freedman's 2010 City Council Campaign - Creative DirectorMay 2010 to October 2010

Designed a website for Alex Freedman’s bid for Toronto city council, 2010, along with a logo, stationary, and other campaign media.

Freelance Web DesignerJune 2008 - Present

Independently designed and/or implemented websites for a variety of clients, using either XHTML1.1 and CSS2 (earlier) or HTML5 and CSS3 (later).

Significant Personal Projects

Hindsight (2021-)

Hindsight is a log viewer designed to show you what happened on a given date, using private databases that you supply. It makes it easy to follow events in chronological order, grouped by source.

Reverse engineering experience includes Adobe Lightroom's catalogue, EXIF / QTFF metadata, log formats of Adium, Colloquy, Google Hangouts, Facebook Messenger, Pidgin, MamIRC, Matrix, mIRC, The Lounge (formerly Shout), X-Chat / HexChat, Android's Call+SMS DB, and the Windows Phone 7 filesystem (TexFAT).

API experience includes Bikeshare Toronto, GitHub, CalDAV / CardDAV, IMAP, FitBit, Netflix, Nintendo Switch Online, and Presto.

SocialLink (2020-)

SocialLink is a custom social networking client - it presents everything grouped by person in chronological order, regardless of the underlying account or service used to initially post. Rather than following John Smith on a bunch of individual platforms, you can simply follow John Smith and see everything they post, with no algorithmic filtering.

Reverse engineering experience includes DeviantArt, Facebook, Instagram, Pixiv, Twitter, and Tumblr. API experience includes Reddit and YouTube.

Internet of Things (untitled project) (2015-)

I developed a system for controlling electronic devices (lighting, HVAC, etc) inside a home and autonomously making decisions for those devices based on relevant data collected from a variety of sensors.

Ruby on Rails, PostgreSQL, Redis, and nginx are used to power the core platform itself, with React.js + JSX used for the frontend. Ruby/AppleScript (macOS data collection), Java (Android WebView syscalls), C (custom Arduino-based sensors), PowerShell (Windows client keepalives), Ash (embedded Linux scripts), and Node.js used for smaller components.

Reverse engineering or documented API experience on this project includes iCalendar, IMAP, Insteon, LIFX, Google Cast, matrix.org's Synapse, Nextcloud / Owncloud, Particle Photon, Philips Hue, Sony Bravia, Ubiquiti mFi, Vizio SmartCast, and vCard.

Japanese Language Study Tools (2014)

Built a collection of tools to help people learn and study for the Japanese Language Proficiency Test (JLPT). While the tools only cover JLPT N4/N5, I found that they filled a significant gap in existing study tools. Word lists and flashcard study tools exist everywhere - however, speed-reading kana, adjective conjugation, vocabulary formed from specific grade kanji, and kunyomi or onyomi quiz tools are rare.

show olderolder personal projects available online

Mobile App Development (2012-2013)

In May of 2012, I created three applications for Windows Phone 7.5, called DineSafer, JLPT Flashcards, and Crossworder, using C#. During January of 2013, DineSafer and Crossworder were ported from scratch to BlackBerry 10, using Qt Cascades, QML, JavaScript, and C++.

Symphonary (2011-2012)

I designed and co-developed, along with Xingzhe (Travis) Lu, a program to teach people to play various musical instruments with the assistance of a computer. Using a custom hardware sensor in conjunction with an Atmel AVR that's attached to a musical instrument, Symphonary allows the player to see (in real time) what fingerings they're pressing on their instrument, and receive a numerical grade based on their performance.

Symphonary's client is written in C#, using WPF for the GUI components, while the hardware runs code written in C. More information, including source code and images, is available here.

SimplePost.ca (2012)

SimplePost was a free service that allowed you to send physical letters to your elected federal officials. A user could enter their message and address, which would find their region's MP, senators, and other cabinet members, and the site would create physical printable letterhead made out to each individual that the user picked. Because letters to the federal government don't require stamps, the site allowed you to easily send paper letters (which are generally regarded as being more effective compared to email), without the use of stamps or envelopes, thanks to the magic of origami.

I designed the site and branding, and co-developed the frontend, using CSS, XHTML, and JS.

More details, including, screenshots and a more elaborate summary are available here.

Press Coverage

Awards

Winner, Nokia Ready.Set () {Code} Hackathon - Student Developer (2012)