Don Turner is a Developer Advocate at Google, where he works on the Android developer relations team. Don talks to us about the wide skillset this role requires, and how his career path helped him develop these abilities. He also discusses his ongoing projects with Google, and more about his talk for ADC 2018 (interview by Joshua Hodge).
How long have you been working with Google?
3 and a half years, though I've worked for a variety of teams during this time. I joined as a Developer Advocate on the Partners team, working mostly with the big newspapers in London, and a few other partners who were doing stuff in social networking.
Essentially, we would work with the top 100 apps on Android and help those developers create great user experiences. We’d help them to use new Google products and if we were developing a new API, we would show it to them first and say, “hey what do you think of this…is this useful? Does this fit in with your workflow and how you want to work with your users?”
I really enjoyed working in this team, but then an opportunity came up to specialise in audio. I’ve always had a passion for music and this felt a lot more interesting! I was working with partners like ROLI, Algoriddim (who make the Djay app), MWM (based in Paris and make another djing app), Smule, Starmaker, OpenLabs. Basically, anyone making interesting audio apps on Android.
At this time I was also working with streaming audio partners like Spotify, but the challenges of streaming audio are very different to challenges of real-time audio. Real-time audio is all about latency, computational throughput and jitter. I ended up focussing solely on this area as I felt strongly that we lagged in comparison to competing platforms. I think we can do a lot to fix this by working with the developer community and improving the Android Framework- optimising the CPU governor, reducing latency on the platform, and working with OEMs to help them improve their audio performance.
Sometimes I genuinely think I have the best job in the world-I get to play around with musical toys and I’m passionate about programming and solving technical problems. Then I run into a big bug and I realise there’s still a lot of work to do!
It can be difficult sometimes to convey the challenges to developers, because (of course) most developers aren’t interested in what’s difficult- they just want it to work. I completely understand that- before I was with Google I had my own business making music apps, so I fully sympathize with that feeling. It can be easy to forget how big Android is, and how many devices and users will be affected by even the smallest change. Even a very small change can have a massive impact on our users around the world.
Working as a developer advocate, how much coding do you get to do? Do you still get your hands dirty?
100%! At the moment, I’m working on a product called Oboe, which is a C++ library for developing interactive audio apps on Android. I’m spending at least 50% of my time writing code, reviewing pull requests, testing the library, and trying to get it production ready. It’s my belief that you have to write code against a product to fully understand it.
I would think so, because you’re going to be able to speak the same language as a developer. A media person is going to have difficulty communicating with developer issues. The array of skills that one would need to become a developer advocate is quite wide- you need to be able to code, but also able to communicate well with your clients. Can you talk a little about those requirements?
Sure! As well as needing to have a technical skillset, you also need a lot of empathy. I always say: I feel the pain so developers don’t have to. I try to spot the problems beforehand that I think developers are going to face and try to talk to the product teams about how we can solve those problems.
Communication is essential as well. You need to be able to frame the way things work in a way that is understandable to developers. I know what it’s like to be a developer, under a deadline, trying to get a new feature out, and the documentation isn’t great, or there aren’t any code samples. So my main job now is to make it as easy as possible to build real-time audio apps on Android. Communication, empathy and technical skills would be the things I would highlight.
Going into your background a bit, where did this split between advocacy and coding stem from? Were you more of an advocate that wanted to start coding, or was it the other way around?
That’s an interesting question! My background is that I have a degree in Computer Science. After graduating I went to work as a junior web developer at a small company up in Nottingham, then later for Capital One as a Java programmer, but I never felt truly fulfilled by just writing code- I had other ideas and bigger plans.
In 2002, I co-founded a company for software development and digital marketing, riding the tail end of the web development boom. It went pretty well, starting off with just £3000 in the bank and growing to a business with around 20 staff and just under £2 million annual turnover.
That was fantastic and it fulfilled my goal of being more entrepreneurial and more customer facing. I was doing pitches for clients, running the company and also managing the software team. The problem was that I got too far away from the technical side of things, and as much as I loved the business side, things changed and business moved away from software development and more towards logistics and event management, which wasn’t where my true passion was. I ultimately sold that business to my co-founder and decided it would be a great idea to set up my own app development business.
One of the problems there was that I started my first business at 22, and I was starting this new business at 32- in that time I’d gotten a wife and kids and a huge mortgage, and suddenly these outgoings that were once easy to cover were a lot higher. After 12 months of investing heavily in this new business, my wife was politely saying, “we haven’t got much money left from when you sold your business…are we going to make any money any time soon?”
What I learned was that going it alone and trying to be the sole developer, marketing and salesperson just wasn’t going to work and in hindsight was a pretty foolhardy decision. Luckily I did learn an incredible amount about app development during this time. I became one of the top BlackBerry app developers in the UK and their developer relations team flew me to their BlackBerry 10 launch event in Orlando. When I met the team in person I thought, “wow, I didn’t even know these kind of jobs existed!". Working in developer relations sounded perfect-I'd get to do development work and talk to developers as well, and there’s a whole kind of entrepreneurial attitude.
I started working with BlackBerry as a Developer Advocate and I really enjoyed it, but unfortunately when the BlackBerry 10 operating system came out it didn’t do too well and I could see the writing on the wall, but I still wanted to do developer advocacy. An opportunity came up with Google and (nine interviews later) I joined the London team.I guess my experience running a company along with my technical experience has helped me so far in this role!
Where do you see the future going for audio?
What I find exciting is that most people in the world have a computer in their pocket that has the power of a decent PC 5 years ago. It means you have billions of people that have access to these creative tools and this level of technology that they didn't have before.
I’m looking forward to seeing what the next generation of artists are able to come up with!
What projects are you working on now?
The main project that I’m working on is Oboe, which we’re hoping will be the de facto library that developers use to create real-time audio apps on Android…
…and it’s included in JUCE, right?
Yes, it's used by JUCE I think it solves a lot of the problems that we’re having with Android. It can be a challenge to get optimal computational throughput, latency, and there's other hoops that you have to jump through, and I’m hoping that Oboe will take away a lot of that pain. It’ll be great to see how it’s received in the wider developer community.
How exciting! One last question. Can you tell us a little more about your talk for ADC (without giving it all away)?
Sure. My talk “Winning on Android” is about how to get the best performance and the best user experience across the widest range of Android devices. I’ll talk about ways to obtain optimal latency, ways to tune your app for optimal computational throughput, common problems that you’ll face publishing on Android, and update you on certain phones which have better performance than others- i.e. they conform to the pro audio spec.
I’ll also talk about how to publish JUCE apps on Android, and any “gotchas” you need to watch out for.