Portfolio

I began my career as an “iOS developer” but I have learned, I have struggled, and I have grown. The problems I want to work on now simply cannot be solved with iOS software alone. I am interested in building teams as much as I am interested in building software.

My first five years and my second five years of professional software development are openly documented, if you want an in-depth look.

Team

I am at my best when I'm helping others reach their best.

I started leading Artsy's Mobile Experience team in 2019, but my technical leadership spans back much further. Artsy encouraged to expand my impact so in 2015, I began learning about team dynamics and applying what I learned in my team as an individual contributor. Over the years, I expanded my technical impact by learning new systems and technologies, and expanded my cultural impact by learning how to foster healthy, empathetic, and productive work environments.

My approach to guiding product development centres learning as its goal. Developers build new products in complicated business contexts, and we don't know the answers upfront. I help teams learn how to solve the problem effectively and efficiently. We end up building a great product, but we do so by focusing on the learning rather than the building.

This focus means creating a team environment where we are constantly learning and then teaching what we have learned, often across disciplines. This foundation of learning has helped me scale up Artsy's mobile software expertise across many product teams to become a genuinely mobile-first product organization.

I excel at creating self-improving systems that distribute knowledge and responsibility across teams. At Artsy, I gave away responsibility for the engineering-wide sync. At Shopify, I built up our release management rotation so every shift made things easier for the next one.

My approach to technical leadership keeps me hands-on. Sometimes I work out ahead of the team, prototyping new ideas or helping avoid upcoming problems. However, most of my work is leading from behind. My intuition tells me what needs to be done most and I make sure it gets done.

Community

In my home region of Atlantic Canada, we have a saying: “rising tides lift all boats.”

Since I was a teenager, I've been fascinated with open source software. Not just the software itself, but the communities surrounding different projects. No one individual can accomplish what a community can – people can always accomplish more if they work together.

Today, I practice a fairly radical openness: I believe that unless there is a good reason to keep something secret, then it should be shared. Artsy called it “open source by default.” Teehan+Lax called it “creating more value than you capture.” These phrases gave names to the ideas that have always resonated with me.

See, in all our searching, the only thing we've found that makes the emptiness bearable is each other. —Contact (1997)

I take a lot of pride in helping others and in contributing to the developer community, and I've tried to set a higher standard for my own behaviour. In addition to building open source communities online, I volunteer with Pursuit. When I moved to New York in 2015, I started a weekly Saturday morning peer lab, which ran for five years. I have since shared this idea around the world to dozens of cities, so there might even be a peer lab near you!

Software

Great software is software that gets out of the user's way.

I've began writing iOS apps in 2009, when I was still in university. Since then, I've expanded into many directions. I now write software for whichever platform would best solve the problem at hand.

Shopify

I joined Shopify in 2021 and worked for two years on the Shop team. My role as Senior Staff Developer gave me a broad mandate to improve our engineering organization and deliver product goals efficiently. I met regularly with company leadership to keep our technical efforts aligned with business goals. My job was to do what needed to get done, from prototyping new product ideas to improving cross-team technical leadership.

My largest contribution was Shop Minis, a React Native SDK for third parties to build native-quality shopping experiences. First I started building the SDK on my own, then I built up a team to deliver an internal prototype, then finally I oversaw two teams delivering a private alpha to launch partners. The SDK is now publicly available.

Artsy

From 2014 until 2021, I was at Artsy: a company working towards a future where everyone is moved by art every day. I worked on a variety of teams to realize Artsy's business goals, starting with building iOS apps, then contributing across many systems and teams, and eventually leading Artsy's Mobile Experience team.

Artsy encouraged me to grow and learn, and to share what I learn with others; all of my work there was done in the open, and I wrote articles for Artsy's engineering blog.

35mm

35mm was an ambitious project that I undertook with a team of two others: a designer and an editor. We aimed to change the world for photography-lovers by providing curated photography without advertisements. Although the project was not a success from a financial standpoint, I learned a lot about writing Newsstand magazines for iOS, including architecting our own backend server in Node.js.

500px

In 2011, I began as the only iOS developer at 500px, architecting and shipping the iPad app. I helped design new features, plan the product roadmap, and respond to customer support inquiries, all while continuing to ship an amazing product. I learned a lot about how software serves the needs of the business, and collaborating towards shared goals as a team. As a team lead, I played a crucial role in the design and development of the iPhone app, which shipped late 2012.

Creativity

Beyond code, beyond writing, there is art. My primary creative outlets are music and photography.

In 2011, I began developing an increasingly intense interest in photography. Working to improve my skills, I've explored the medium on film and in the dark room, using film as small as 35mm to as large as 4x5 inches. I now shoot using my iPhone because the majority of my dedicated creative time is spent on music.

I grew up playing music but stopped when I started university. Twelve years later, in 2016, I picked up a guitar for the first time and have been (re)discovering my love of music ever since. I performed a 30-day music challenge online. Just before the pandemic hit, my band was preparing for its first performance: covers of The Weakerthans' music. Sadly, we never got to perform before I left New York.

Education

I grew up wanting to become a teacher, and when I became a programmer, I achieved my dream.

Blogging

I've been writing a developer-focused blog since 2011, now hosted here. At Teehan+Lax, I began contributing to company blog as part of my job. I continued that on Artsy's developer blog. I've also written posts for objc.io.

Blogging about has made me a better developer and a better writer. At Artsy, I hosted weekly writing office hours to help others achieve their knowledge-sharing goals.

Speaking

I began speaking in the Toronto CocoaHeads group in 2011. I soon began submitting proposals to conferences. Today, I've spoken all over the world on a variety of subjects relating to software development, team development, and open source software.

Check out my speaking page for more.

Books

I became a published author in 2012 and have since written a number of books on iOS development (both with traditional publishers and self-published). Like with blogging, writing is a very satisfying activity. I enjoy planning a route to take a reader on, considering what to teach them (and when), and turning my ideas into educational resources.

My work in books extends to technical editing as well. Check out my books page for more.

Workshops

I delivered my first workshop in 2011. In March, 2014, Treehouse invited me to Orlando to record a series of videos and screencasts to guide students through using Core Data to build an iOS diary app.

I've also given in-person workshops on subjects ranging from the basics of iOS development to functional reactive programming in Swift. I also led a workshop at Artsy to teach non-engineers the fundamentals of programming.