Hi, I'm Anthony Cameron
I'm a software developer with a passion for the web and computer graphics.
Senior Software Developer @ Shopify
Oct 2013 – Now
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 loved it, and we were quite proud of it.
After that, I was working in our new Waterloo office on Plus engineering efforts. I was responding to a variety of engineering efforts that affect our Plus merchants: new features, bug triage / acceleration. I was responsible for building out most of the infrastructure our sales team used to do their job at the time, and also created some in-office TV dashboards that displayed live sales data (among other things).
Since around May 2016, I've been 100% working from home in Waterloo. I spent approximately 1 year in the Shipping team, and delivered: an improved shipping zones UI, and allowing all Shopify merchants access to Shopify Shipping carrier-calculated rates. I also championed our bulk label printing project, a new user flow that allows merchants to buy & print multiple shipping labels at a time.
Nowadays, some Shipping teammates and I have splintered off to form a new team, but I'm not permitted to speak too much about it at this time!
UI Developer @ Exinda Networks
Aug 2012 – Aug 2013
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.
Freelance Web Developer @ Uptown Creative Inc, Others
Dec 2009 – Aug 2012
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.
Bachelor of Computer Science @ University of Waterloo
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
Personal Projects & Open Source
In my spare time, I'm either playing video games, spending time with my wife, or working on software.
echoplexus was perhaps my most substantial and successful personal project to date. It aimed to provide web-based anonymous chat, collaborative coding and drawing, as well as WebRTC audio & video calls.
μ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 https://anthonycameron.com for an overview of some things I've worked on.
I also contribute to OSS (my own and others) on GitHub.