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.

The first time I had "leader" in my job title was 2019, but my technical leadership spans back much further. After being encouraged to expand my impact at Artsy, 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 itself.

This focus means creating a team environment where we are constantly learning and then sharing what we have learned, often across disciplines. This foundation helped me scale up Artsy's mobile software capability across product teams, ship the Shop Minis SDK at Shopify, and build the mobile app at Float.

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. I've tried to set a higher standard for myself. In addition to building open source communities online, I volunteered 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 been writing iOS apps since 2009, when I was still in university. I moved to Toronto, joined some startups, and built up an expertise in iOS apps. Eventually, I expanded in many directions to become a generalist, able to work up and down a technical stack, and across the company's organization. After generalizing for years, I returned to my specialty again.

Float

Screenshot of Float's mobile app

I joined Float following a search for a quality team building worthwhile products with interesting technology. Float was looking to build a mobile app. A better spender experience would lead to more compliant transactions, faster. That would lead to happier accountants, saving them time and saving their business money. I joined to build that better spender experience.

I led a small team of developers, launching the app on iOS and Android after just 99 days after the initial commit. I made careful foundational choice, to set up Float's existing developers to contribute to the mobile app. It needed to feel familiar without unnecessarily adopting technical debt from their existing web app. Borrow existing tools where it made sense and intentionally diverge where that makes sense. And all these decisions had to be made quickly.

It worked! By the time I had left Float two years later, every product team had contributors to the mobile codebase. The app had a low crash rate, high ratings, and happy spenders. I accomplished what I had originally joined Float to do.

Shopify

Screenshot of Shopify's Shop app

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

Screenshot of Artsy's mobile app

From 2014 until 2021, I worked 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. My work at Artsy was done in the open, and I wrote articles for Artsy's engineering blog.

35mm

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

Screenshot of the 500px iPad app

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.

I fell into photography 2011 while working with a lot of photgraphers. I started on digital before exploring film and the dark room. I used B&W for years, focusing on composition, shooting the streets of New York. I used film as small as 35mm to as large as 4x5 inches. Eventually, I moved back to digital.

I grew up playing music but stopped after high school. Years later, I picked up a guitar for the first time and rediscovered my love of music. Some friends of mine had formed a cover band of The Weakerthans. Sadly, COVID hit just before our first performance.

I'm usually focused on one or the other at a time, following my interests as they come and go.

Education

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

Blogging

Blogging

I've been writing a developer-focused blog since 2011. At Teehan+Lax, I began contributing to company blog as part of my job. I continued that on developer blogs at Artsy and Shopify. 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

Speaking

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

Check out my speaking page for more.

Books

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

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.