Welcome to another installment of our Top App Dev Interview series!
Each interview in this series focuses on a successful mobile app or developer and the path they took to get where they are today. Today’s special guest is John Sundell.
John Sundell, previously a lead iOS developer at Spotify, is now enjoying life as a freelance developer. John is now a respected member of the iOS community with his headline Swift by Sundell and various talks at conferences around the world. John is also a keen open-source fan and contributes to regular projects on Github.
John, you were previously a lead iOS developer at Spotify. How and why did you make the decision to go freelance?
I worked at Spotify for 3.5 years, and it was an amazing experience. I learned so much, got to work on a really exciting product and met so many great developers. But after those years, I felt like I was ready for some new adventures.
In order to continue growing as a developer, and to get to work with an even broader set of technologies, I decided that my best option was to go freelance to be able to work with more people in more different contexts.
What was the best thing about going freelance and why?
The freelance lifestyle has always appealed a lot to me (I was a freelancer before I joined Spotify too), since it gives you so much freedom as to how, where and who you’ll work with.
I love working remotely since it lets me set my own schedule in a more free-form way – which is super useful since I love to do things like travelling and working more flexible hours.
I’ve never been a huge fan of strict processes and office politics, and being a freelancer lets me get away from all of that and enables me to focus on coding and working directly with other developers and designers.
What do you miss (if anything) from working at a company like Spotify?
Only the free snacks in the office! No, just kidding ;]
One thing that was incredibly cool working for a company like Spotify was working on such a large-scale, popular product. You could be building a UI, and then two or three weeks later, you would see someone on the subway using that UI that you just built.
That was kind of amazing and surreal in many ways. So seeing your work have that kind of impact on people’s everyday life was an amazing feeling. Another thing I miss sometimes is being able to spend a lot of time focusing on architecture and designing systems.
I’ve always loved system design, and nothing beats designing a system that needs to be able to support millions and millions of users.
Most developers are worried about getting enough work as a freelancer, what advice would you give to said people and how did you manage this?
My top advice would be to establish a solid network of potential customers and partners before going freelance. Get in touch with people that you want to work with, and always be open to making new connections.
Most developers are not super interested in working with sales, so the best approach is usually to work with people and companies that you know since before going freelance. Conferences, social media, blogs and GitHub are great ways to build a network and get in touch with potential customers, and once you have a network established (which doesn’t have to be that large by the way), it shouldn’t be too hard to find new work – developers are really high in demand, as we all know!
Another key thing is building trust. Always under-promise and over-deliver, and go the extra mile in order to make your customers extra happy. That way, chances are those customers will refer you to even more customers, and that way you’ll keep building your network and get to work on even more cool projects.
Can you give me a full detailed breakdown of your average day to day schedule? E.g 9 AM start working, 10 AM have a coffee/break.
My dog usually wakes me up around 8 AM because she wants to go for a walk, so that’s how I start my day. We usually go for a 30-minute walk, and after that, I get ready for work.
I like to work in 2-3 hour periods, with a 15-minute break in between. That way, I can stay focused, I don’t waste time while working and I don’t feel stressed during the day.
I love coding, but I also love relaxing. Taking a quick 15-minute walk, or just relaxing on the couch for a while, is a great way for me to regain energy and re-focus for the next task. I don’t have a strict schedule (again, one of my favourite things about being a freelancer), so that 2-3 hour split is how I manage most of my time.
In The Spotlight
John, I would say in the last year or so, you have really become a key player in the iOS community. How did this happen and was it something you planned to happen?
Like you say, it’s only been in the last year or so that many people have started to notice my work – but I’ve actually been sharing things with the community for over 5 years.
This is something I spoke about in my talk “Sharing” at the App Builders conference this year, the fact that there’s a pretty big backstory behind what at first might look like something that “appeared out of thin air”.
Like everyone else, I started with an audience of 0, and with me being the only contributor to all of my open source projects – but over time things grew into what you see today. I love sharing my work since it lets me work together with so many people from around the community.
Whether it’s open source, blogging, podcasting, or something else, getting feedback and contributions from people around the world is incredibly motivating and has helped me grow so much as a developer. So I never set out to become a “key player” or to get a big audience (although I’m extremely thankful to everyone who follows me and likes my work), instead – I’ve always been driven by the idea that we can all make our lives as developers so much nicer by sharing parts of our work and solutions with each other.
You have spoken at many conferences around the world. What is it you love about conferences, and why do you attend them?
I love talking to other developers, to share ideas and to hear people’s stories. It’s easy to fall into the trap of thinking that the problems you face are unique to you and your team, but very often many other people are facing the exact same challenges.
So when I go to speak at a conference, it’s not only to share learnings and to do a talk but mainly to speak with other developers – it gives me so much inspiration, ideas and motivation to keep learning new things.
I also love travelling and experiencing new places and new cultures. Like how being exposed to new ideas helps me grow as a developer, I like to think that being exposed to new cultures helps me grow as a person.
Working as a freelancer and speaking at various conferences must be very time consuming. How do you manage your time to fit all this in?
That’s the number one question that I get asked (well, maybe tied with “What Xcode theme are you using?”) – how I manage to work on so many different things.
Just like with sharing my work, this is something I’ve practised and tried to improve over many years. I used to be extremely disorganized and had a large number of side projects that never went anywhere, but over time I’ve learned how to maximize my productivity without working too many hours.
For me, it’s really a mixture of productivity and time management. Like I mentioned, I split my day into 2-3 hour chunks, with each chunk being focused on a specific task. I also use a system called “Quick wins” – I keep a list of tasks that should take less than one hour to complete, and then I do a few such tasks each day – which helps give me a sense of accomplishment.
I wrote about a lot of these things (and more) in my Productivity blog post, but in general, I think to be mindful of what you spend your time on can really help you achieve a lot more things, without adding stress – at least that’s how it works for me.
I really enjoy reading your weekly Swift by Sundell. How did this happen and how do you manage this on a weekly basis?
That’s great to hear :) I love writing the blog, and I’m happy to hear that people seem to enjoy it, learn new things from it and that it generates some interesting discussions around the community.
Like most of the things I do, it started out as an experiment/challenge. I had tried blogging before, in 2015, without it going anywhere – and I think a big reason that my previous attempt failed was due to lack of focus and goals. When I tried blogging again, at the beginning of 2017, I wanted to do things differently.
I set myself a challenge to see how many weeks in a row that I could write a new post each week, and I decided that no post can take more than 3-4 hours to write. That way, I end up with posts that are more focused – easier to read and easier to write.
Having the weekly challenge pushes me to produce something each week, and it doesn’t have to be revolutionary and amazing, just sharing some ideas from the work that I do every single day.
Can you share any statistics (or screenshots) for your weekly Swift by Sundell?
While I love to celebrate the occasional milestone, I don’t want to focus too much on statistics and numbers.
My goal is always to produce the best content I possibly can, regardless if my audience includes 100 people or 100,000. One thing that I am very excited about though, is the fact that Swift by Sundell is read by people in 177 different countries!
That’s more countries than I’ll probably ever visit in my entire lifetime, so being able to reach people in so many different places around the world is incredibly exciting!
What tools do you use on a daily basis to help keep you focussed and on track?
My primary productivity/focus tool is Apple’s Notes app.
I’ve tried lots of to-do apps, productivity tools, time measurement software, etc – but for me and the way I think & work, using Notes is perfect. I have a couple of notes pinned to the top of the list – three of which are “Quick wins”, “Upcoming blog posts” and “Podcast planning”, which I use to plan most of my work.
I create to-do lists, write down thoughts and use tables to structure things like podcast episodes. I love the free-form nature of using notes this way since it lets me create my own structure that maps to the way I like to think about things.
It may sound like an over-simplification, but the key for me is to focus on one thing at a time. Think about it, if you only do one thing per day, you can do 30 things in one month. Again, “Quick wins” and managing my time is really key here.
I am an aspiring conference speaker. What is your ultimate advice and can you go into details about the preparation involved?
My number one tip for new conference speakers is to not only prepare – over-prepare. I rehearse most of my talks 10-15 times and spend around 30-40 hours preparing a talk.
Since I never have a whole week I can just block out to preparing a talk, that means that I have to start really early. I like to start preparing my talks 2-3 months in advance, which gives me enough time to familiarize myself with how I want to present the topic and make many iterations of the content.
It also helps to remove stress. I’ve seen so many people sit and work on their slides the same day as the conference, which I honestly could never do. I usually say that “I’m not a good speaker, I’m a good rehearser”.
For me, knowing my slides in-and-out, forwards-and-backwards, really helps reduce nervousness and makes it much easier to have a good flow when presenting. To prepare the content of a presentation (before I make the actual slides in Keynote), I use one of my favourite apps – MindNode. It lets me organize all the content in a mind map, which makes it easy to get an overview of what I want the talk to include.
What does the future look like for John Sundell? Any clues as to what you will be doing in the future?
I’d love to be able to spend even more time on Swift by Sundell. I think there’s so much more I could do – including writing a book, hosting workshops and live streams, doing videos, more open source projects, more podcasts and much more.
I’m currently working with some really awesome companies – this wonderful site included – to sponsor my work and to enable me to spend more time on it.
I love iOS development and will, of course, continue to do that as well, but I think where I can make the biggest contribution to the community is by continuing to expand my work with Swift by Sundell, the Stacktrace podcast (that I do with Gui Rambo), and other initiatives.
We’ll see what the future has in store, but I’m really excited about it :]
Where To Go From Here?
And that concludes our Top Dev Interview with John Sundell. Huge thanks to John for sharing his journey with the iOS community!
John is a great example of how dedication and perseverance can pave the way to success. He uses short bursts of productive time to help break his large goals into small, achievable targets.
If you’re interested in becoming a speaker or writer, John’s excellent suggestions on networking and over-preparation will definitely help you achieve these goals.
If you are an app developer with a hit app or game in the top 100 in the App store, we’d love to hear from you. Please drop us a line anytime. If you have a request for any particular developer you’d like to hear from, please join the discussion in the forum below!