I want to spend my time building tools that make people's lives better.
Unlike some programmers, I did not grow up programming. I grew up using computers, but I didn't write my first line of code until university. I spent most of my time playing basketball and running track.
Throughout high school, all I dreamed about become was a Pixar animator/technical director. My high school had a design studies course where we were taught 3DS Max. I watched every special feature I could get my hands on and frequented 3D forums like 3D Total and CGSociety. As I took these classes, I discovered I was more interested in the technical side of the 3D. The artistic side of the 3D didn't come as naturally and would require much more work on my part to catch up with those were more naturally talented. What fascinated me at that time was how all the tools worked together. Developing an animated feature involves work from many people with different talents, using different sets of tools. I thought to myself, I might not be able to become a great animator, but I think it would be fascinating to develop tools to support the artists.
People from Pixar often talked that their movies were the result of the collaboration between arts and technology. This was perfect. I cared about both and thought I might have a future in the field.
Fast forward to my time in undergrad. My interest in 3D waned as I began to explore all that goes into making great software. Great software, the kind that people are delighted to use, is the confluence of art, design, programming, psychology, and a number of other fields. I joke now that good software is often underwhelming to experience. It just works. Yet, the reason it just works is because it's been designed for the right job. It has few bugs. It's easy to navigate. In pursuit of the ability to make this kind of software, software that made people's lives better, I drifted away from pursuing a career in 3D.
I believe our ability to perform any task, shoot baskets, draw, program, comes from our ability to master the fundamentals so I focused on these during my time in undergrad. I learned data structures and algorithms. I learned the basics of graphic design and usability. I did more math than I care to remember. My goal was to give myself the foundation of knowing how to think so that I could tackle any kind problem I might face in the future. Technology changes rapidly, but the fundamentals of sound thinking are timeless.
After undergrad, my passion to build to tools that helped people lead me to grad school at Simon Fraser University where I had the privilege of being part of a program whose core mission was to explore the intersection of art and technology. I joined a research group developing a tool for exploring large collections of documents and was exposed to the fields of visual analytics and computational design. On the surface, it seems that visual analytics and computational design couldn't be more different. One is about data, visualizations, stats, and perception and the other about form, structure, and physical spaces. What I discovered is though their activities differ, underlying both is the same type of thinking. It's human problem solving supported by computation.
One of the aspects of problem solving is the need to explore alternatives. A designer might explore alternative user interface designs whereas an architect might explore different ways to utilize the land where the building they've been commissioned is to sit. Exploring alternatives is fundamental to human problem solving and can be quite laborious since most software does not make exploration a first-class activity. Designers have to manually build and manage each variation.
I spent my time in graduate school exploring this problem and working on a way to computationally represent alternatives in a manner so that people don't have to make every single alternative themselves. This work resulted in my PhD dissertation and a prototype programming language called Shiro for expressing alternatives in a parametric system.
Ever since my days watching the special features of animation films, I've always wanted to work at a company that had a great atmosphere, one that valued arts and technology working together.
While I was in graduate school, I saw an opportunity to do this. One of the issues many researchers face is that their prototypes are often far harder to develop then, in my opinion, they should be. I believe one of the issues for this challenge is that grad students often have too much to do and are not experienced as software developers. The result is prototypes that don't demonstrate an idea as well as they could, which in turn hurts the ability to run studies and write papers. Papers are the lifeblood of a researcher's career. Without a solid publishing record, a researcher's funding dries up.
In 2011 in the midst of grad school, I started Loam Studios Inc. because I wanted to offer researchers an opportunity to work with a firm that understood both software development and research. Having a foot in both worlds, I thought this was a great opportunity to put my passion to work. From 2011 to 2017, Loam helped researchers build the tools they needed for their work.
Unfortunately, Loam faced a problem that I didn't realize at the outset. Unless a researcher is highly successful, one of the few receiving the largest grants, they cannot afford to work with an agency. While their research benefits from having skilled designers and programmers involved, they simply don't have the funds to pay an agency what the agency needs to charge to remain afloat. This is why researchers turn to grad students for the majority of the software development and design work. Grad students are nearly free. As a business, it's hard to compete with a nearly free workforce, even if they are less equipped to do the job.
Thus, in the late fall of 2017, I wound down the consulting side of Loam. I still think there is an untapped opportunity in product designers and developers working alongside researchers. I think it could help solve many of the issues researchers have with gaining traction for their work. Nevertheless, this is an effort for another time or person.
In early 2018, I joined Stembolt to build e-comm stores. There, I worked for a few months before Stembolt was acquired by JUUL Labs Inc. At JUUL, I had the opportunity to see what it was like to work for a company, then, with a multi-billion dollar valuation. I worked on the core platform team working on Solidus. We were responsible for all the core e-commerce functionality - payment methods, compliance checks, order fulfillment, etc. It was a fun learning experience. The Canada team, made up of the team from Stembolt, was an exceptional group of people. I learned a ton. In September 2020, JUUL decided to close the Canada office and downsize its e-comm team. Fortunately, I was able to anticipate this layoff and had a new position queued up.
In September 2020, I started full-time at The Beyond Group as a Senior Developer. Back to agency life! In March 2021, I was promoted to Lead Developer and recently received the title of Director of Engineering. I lead the software development team and support the CEO in building the processes we use to serve our clients.