Gary Smith, web developer.

GaryMy name is Gary Smith. I'm a web developer based in Toronto, Ontario, Canada.

I'm a former IBMer and a former CBCer. Currently I'm the tech lead at Vubble, a digital media startup.

On this verbose website you can read about what I do, my past and present jobs, and how to get in touch with me. There are also some anecdotes about how I started coding.

What I do

I've been building websites since the mid 1990s. I've done plenty of front-end (client-side) and back-end (server-side) development.

Front-end

I'm proficient with HTML5, CSS3 and JavaScript. Starting with a simple Bootstrap base I can build responsive interfaces that work properly across every device, from phones to tablets to enormous desktop screens.

I still like jQuery because it gives me a satisfying amount of low-level control while abstracting browser quirks and non-standard syntaxes. But I've also used AngularJS for sites with that need more complete interface-to-database synchronization.

Back-end

Over the years I've worked most often with PHP and MySQL. I've built many sites and systems from scratch, but I've also taken advantage of various frameworks including Drupal, Movable Type, ExpressionEngine and CakePHP.

I've also done plenty of WordPress work and I'm comfortable spinning off and customizing a child theme from a commercial third-party theme. When the need is there, I'm also happy to get my hands dirty and build a custom plugin or widget to solve a client-specific problem.

Recently I've also explored using Javascript on the server-side, namely NodeJS with Express and MongoDB.

APIs

Moreso than ever, I find myself writing code that links multiple systems together. Like almost everyone, I've settled on RESTful APIs with JSON as the cleanest solution for sharing data, and I've found the StrongLoop (LoopBack) framework to be a quick and easy way to get those running with NodeJS.

Tools

While writing code is the most enjoyable part of web development, there's a lot that needs to happen around it. Of course I use GIT to manage and version-control my code, most often with BitBucket as a repository (and it has a handy simple issue tracker, as well.)

I've become somewhat emotionally attached to Sublime Text as a lightweight editor that is just helpful enough without being intrusive. I know my way around Windows, Mac OSX and the Linux command line, and I'm mature enough to admit I prefer nano over vi.

The Cloud

After years of suffering at the hands of crappy web hosting providers I've found Digital Ocean to be a breathe of fresh air. The ability to quickly and easily spin up multiple server "droplets" and resize them as necessary makes previously cumbersome tasks a breeze. I love that they use the fancy new data centre just down the street from me — a rare and oddly reassuring link between the virtual and physical.

The Present

VubbleI am the tech lead at Vubble, a digital media startup founded by fellow ex-CBCers Tessa Sproule and Katie McGuire. Vubble is all about quality online video, combining human curation with algorithms to help us broaden our views and escape our social media bubbles.

At Vubble I'm responsible for the technical implementation of all our tools and systems — that means our website, payments, embeddable video feeds, client tools, APIs and anything else new and exciting that comes down the pipe.

We're always evolving, but for now you can see what we're about by signing up for our Best of the Day email, or enjoy the AI-powered video suggestions of our amazing Bot by clicking the Get Started button on our Facebook page.

The Past

Education

In 1998, I completed my Computer Science degree at Ryerson University in Toronto and graduated into the madness of the original Dot-com Boom. Tech graduates were in high demand and, like many of my classmates, I had my first job lined up months before graduation.

Royal Trust

That first job was at an agency where, after some brief online training, I was sent to work at Royal Trust in Toronto's Financial District. There I wrote PL/SQL queries and C++ scripts to process customer and financial data ported from a mainframe. I learned a lot, but the work culture and then-dated technologies of the finance industry didn't appeal to me.

IBM Toronto Lab

By the end of 1998 I had moved to the IBM Toronto Lab, where I worked on the Websphere Commerce Suite product family. Initially I was a Function Tester, writing and automating test cases to ensure that each software build worked correctly based on the original specifications. Later I became a Team Lead, supervising teams of up to 10 testers and presenting progress reports to senior management.

I learned a ton about the software development cycle, but as a hands-on person I wanted to write my own code, and be more than a single cog in a larger machine.

In 2003 I left IBM and took a brief hiatus from the tech industry to backpack in Costa Rica, Europe and Morocco.

Freelance

From late 2003 through 2007 I worked exclusively as a freelance web developer, teaching myself PHP, MySQL, CSS, JavaScript and HTML in detail. I worked with numerous designers and agencies including Swerve Design, Paralucent, SeeThrough Web, Sailor Jones Media and Boulevard Design to launch sites for a wide variety of clients such as real estate agents, authors, financial advisors, architects, law firms, electricians, banks, charities and professional associations.

CBC

In 2007 I began working for the CBC where I built and maintained websites for many high-profile Canadian TV shows including Dragons' Den, Steven and Chris, The Hour with George Stroumboulopoulos and Battle of the Blades. I was also involved in the creation and integration of special digital projects such as contests, interactive games, second screen applications and reality TV voting integrations.

The CBC was my first exposure to working in media, which appealed to me, and it was exciting to contribute to websites visited by millions of Canadians.

In 2015, I left the CBC to take on my current startup role at Vubble.

The Beginning

Christmas 1985On Christmas morning in 1985 I opened my biggest present and was initially a bit confused. Was it a fancy typewriter? No, it was a Commodore 64.

My parents didn't know much about computers but had prophetically determined that one would make a good gift for a nerdy 10-year-old. My dad had settled on the Commodore 64 after some assistance from a slightly bewildered salesperson at Canadian Tire, who was probably more used to selling car parts than computers.

The Commodore 64 had already been on the market for 3 years at that point and wasn't technologically cutting-edge, but it made for a very approachable introduction to computing. Since the computer came with only one cartridge game (the excellent Jumpman Junior) I soon began exploring what else it could do, with the assistance of the owner's manual.

One of the quirks of the Commodore 64, compared to today's computers, was that it booted directly into a prompt that ran commands in the BASIC programming language. This sort of exposure to the underlying workings of a computer would be unthinkable on a slick modern touch device.

I began working through the BASIC examples in the manual, writing code to create interesting patterns, simple animations, and interactive quizzes. I became familiar with the fundamentals of coding such as variables, arrays, loops, and conditions — and most importantly, how to conceptually break a larger task into a series of smaller, logical steps.

Ahoy! MagazineFor my birthday that winter my grandmother bought me a subscription to Ahoy! Magazine, although she likely had no idea what it was about. That quirky publication provided me with my first exposure to the creative possibilities of computers. Most appealing to me at the time was that the magazine printed the source code for games, which readers could type in and run. This, by implication, also suggested that one person could conceive, build and publish a computer game all by themselves — a concept that was new and inspiring to me.

Over the next 5 or so years I spent countless hours in front of the computer, learning new programming concepts in BASIC, and even dabbling in (but never mastering) Assembly Language. Though I was limited by a slow processor, 16 colours and a 40-by-25 character display, I attempted to create every type of game I had ever played, from text adventures to RPGs to side-scrolling adventure games.

38911 BASIC BYTES FREEUnfortunately, my ambitious goals tended to exceed my abilities by just a little bit, so few of my efforts were ever finished in a polished state. Without the Internet or outside help, any problem that I ran into could prove a fatal roadblock, and I'd eventually have to start over with a different idea. But the process taught me persistence, and I learned the satisfaction of struggling for hours or days with a difficult problem before finally breaking through and finding a solution.

That cycle of effort and reward remains the core appeal of programming for me to this day, though thankfully I now have the added advantages of adult concentration and an Internet full of helpful documentation to help ensure my projects come to fruition.

As a teen I continued to code, briefly on an Amiga 500 and then on a succession of PCs as I moved into my university years. But I still have a soft spot for the Commodore 64, which had more personality in its meagre 64K of RAM than any modern smartphone.

Contact

I live in downtown Toronto with my wife Josie.

I have a profile on LinkedIn but I don't go there very often.

I post my paintings of Toronto cityscapes at CityPainter.ca.

You're not a spammer, right, so why not send me a message?