Hide chapters

Living by the Code

1 min

Before You Begin

Section 0: 2 chapters
Show chapters Hide chapters


Section 1: 14 chapters
Show chapters Hide chapters

Getting to Work

Section 2: 17 chapters
Show chapters Hide chapters

12. An Interview with Ash Furrow
Written by Enrique López-Mañas

Heads up... You're reading this book for free, with parts of this chapter shown beyond this point as scrambled text.

Ash is a compassionate software developer from Canada. After working at Artsy for seven years, he now works for Shopify. His background is originally in native iOS apps, but nowadays he builds a lot of software in React Native. He has published a number of books, built many apps, and is a prolific contributor to open source software. On his blog, he writes about a range of topics, from interesting programming to explorations of analogue music and the humanities.

Connect with Ash

Twitter: @ashfurrow




You’re a renaissance man. You’ve become an expert in many different technologies, defying the traditionally held idea that a developer should master a single technology. Was this an intentional strategy on your part?

I wanted to increase the scale of my impact at Artsy, and iOS is only a small part of Artsy’s technology stack. To have a bigger impact on that stack, I had to learn new technologies. This was the motivating factor. My desire was very intentional, but how I went about it was very organic. I happened to be working on a team that was building something with Scala, so I learned Scala. And then the team happened to be building something in JavaScript, so I learned JavaScript and React.

Would you recommend that beginning developers plan to cultivate multi-focal expertise?

For beginners, I recommend focusing on a single technology. The problem is that people continue to focus on one thing for a very long time. Once they have achieved a certain level of depth, developers should start to branch out. There’s no right answer about when it’s best to branch out, but I think most developers wait too long. The longer you wait to branch out, the more difficult it is to learn new technologies. For beginners, learning how to program is already so overwhelming that focusing on a specific language or a specific framework is a good idea. Once they’re feeling confident, I like to encourage them to branch out into related technologies. For example, if they’ve learned a lot of Swift, they could learn Objective-C. It doesn’t need to be something entirely different. They don’t need to jump from Swift to some unrelated language, like Scala, or Ruby even. Start with something related to what they already know.

Is there any factor developers seeking to branch out should consider when they’re trying to choose a new technology to learn? How might the answer be different or similar for junior and senior developers?

It depends on what their motivation is. If they want to learn something purely because they enjoy learning and it’s a hobby, then they should pick whatever is the most appealing to them. If they’re working in a team, then they should ask themselves, “What does the team need me to learn?” Ideally, you’d list what the team needs and what you want, and then find out where they overlap. That’s where you should focus your attention.

Ash’s Recommendations

  • Operating Manual for Spaceship Earth | Buckminster Fuller
  • The Pessimists Archive podcast | Jason Feifer
  • Awakening Compassion at Work | Jane E. Dutton and Monica C. Worline
Have a technical question? Want to report a bug? You can ask questions and report bugs to the book authors in our official book forum here.
© 2023 Kodeco Inc.

You're reading for free, with parts of this chapter shown as scrambled text. Unlock this book, and our entire catalogue of books and videos, with a Kodeco Personal Plan.

Unlock now