In my first year, I worked primarily on the admin team – the section store owners use – implementing features, fixing bugs, filing issues, and writing maintenance tasks. Since Shopify encourages a strong culture of ownership, I'm always looking out for potential problems regarding user experience across project and team boundaries.
I worked with the client-side MVC framework Batman.js before we started to move to a custom in-house server-client hybrid approach. This launched me from no previous CoffeeScript experience to relative expertise, imparting in me a thorough love of the language.
My role shifted from front-end to full-stack in our transition: As a team of 8~10, we've developed a powerful system that allows the server to be the primary source of truth in rendering, but still gives us enough flexibility that at first glance, you might think we've made a single-page app. It drastically reduced our mean development time for new features, and greatly simplified bug fixes. Everybody loves it, and we're all quite proud of it :)
Shopify is the largest company (and codebase) I've ever worked for, allowing me to improve my collaboration skills with both my immediate team, and even some people I've never met in person. I've been called the "powerhouse of the issues list".
These days, I'm working in our new Waterloo office on Plus engineering efforts. We concern ourselves with all engineering efforts that affect our Plus merchants: new features and bug triage / acceleration. I was responsible for building out most of the infrastructure our sales team uses to do their job.
I was responsible for the creation of a set of utilities that added dummy data for demonstration purposes. These utilities were also used for creating fixtures for acceptance tests. Git became a part of my daily workflow; I could not do without it.
Uptown Creative Group specializes in providing clean, cross-browser, interactive HTML5 websites. During my time there, I participated in the creation of many static and CMS-driven sites, with a heavy focus on interactive maps, dynamic map searches, Yelp and weather integration. I also tailored 3rd party feeds, themed iHomeFinder sites, and provided integration for search, filtering, and pagination of MLS results.
As a freelance web developer, I was responsible for the entirety of the development phase: I received a set of design documents, and from there I created semantic HTML5 mark-up using HAML (to insure well-formedness), sensible and minified CSS with the SASS compiler, and image spritesheets for anything that couldn't be done without them.
jQuery was employed heavily on nearly every site for interactive widgets, image lazy loading, and more. From this shell template, we moved on to PHP or WordPress, depending on client needs.
At the University of Waterloo, I participated in a small team of around 6 students and 6 full-time developers, working under an agile methodology. Daily scrum is no stranger to me! We had fluid teamwork, using Microsoft Team Foundation Server for version control. We developed pages for an application in C#.net, with a heavy focus on AJAX. During this time, I took initiative to learn jQuery UI design principals, and as a result, created a fully functional widget to replace the
Key Courses: Introduction to Computer Graphics, Medical Image Processing, Distributed Systems, Introduction to Artificial Intelligence, Computer Networks, Numerical Computation, Algorithms, Computer Security and Privacy, Operating Systems
Awards: University of Waterloo Merit Scholarship, 2006
In my spare time, I'm either playing video games, spending time with my wife, or working on software.
echoplexus is perhaps my most substantial and successful personal project to date. It aims to provide web-based anonymous chat, collaborative coding and drawing, as well as WebRTC audio & video calls. Please see https://echoplex.us for a full description of all features!
μv (pronounced mew-vee) is a Rails 4 application that I've recently started working on in hopes of replacing XBMC as my home streaming system. Right now, it's able to query external datasources ( thetvdb.com, omdb ), gather metadata, download posters, and generate screenshots from video files. It groups episodes by series and displays a Netflix-esque interface, streaming video down to any web client in your home.
Please visit http://anthonycameron.com for a picturesque overview of some things I've worked on.