This whole article spanned out of a Twitter thread happening over the weekend, and I felt I wasn’t doing it justice with a series of 280 character posts. I’ve also embedded the thread at the bottom of this post, so it’s easier to see the whole context in one place. A few misconceptions are floating around the internet about what a Developer Advocate does regularly, and they revolve around the glamorous life we’re having, jetting around the world daily. I thought I’d share what being a Developer Advocate is for me, and what I do and don’t do on a regular basis.
There are a lot of definitions online if you happen to google it, and all of them differ. I’d say it depends, but then you’d probably ragequit right here. Bare with me. Most companies and products are different, and the goals for DevRel teams vary, so people doing developer advocacy in those teams have slightly different roles, with the same title. So I’ll talk about the things I know and I’ve been doing for the past few years.
I’ve been a Developer Advocate for Nexmo in this time, and my role is to be the bridge between the product teams developing the Nexmo APIs and the developers using the Nexmo APIs. Whenever we develop a new product, I’ll be “customer zero”, basically the first developer to use it in a production-like manner. It’s a 2-way bridge though, so once it’s made public, I’ll also look for feedback from the developers using the product, and bring that back to our product team, so they can improve on it.
If you’ve only clicked through to see what a developer advocate is, you can stop here, they are “the bridge between product and developers”. If you want to see how that translates into day to day work, read on.
I can honestly say this is one of the most flexible jobs I’ve had (and I’ve had a few). It’s a mix of Product, Engineering, Education and Community roles. No two days are exactly the same, and on any given day I’ll do one of these things or a combination of them.
This translates into creating blog posts, tutorials, documentation, workshops, and webinars around the Nexmo APIs.
The getting started guides and blog posts are shorter form content but I’ll occasionally do something a bit longer like a tutorial. What’s the difference between blog posts and tutorials, you ask?. I’m glad you asked. We define them slightly differently at Nexmo. The blog posts are shorter-lived content, which doesn’t get maintenance and updates over the year. But tutorials live on our Developer Platform and get regular updates, so they’re long-lived. They may start as blog posts some times, and we’ll migrate them later on if there is enough interest from the people that read them.
Written content is not only used for our blog and documentation, but it’s also used for the live workshops and webinars we’re doing. I’ve just finished writing and then running our Nexmo Convo Workshops in Australia, and I’m working on a new workshop for our Vonage Campus event happening in San Francisco in October. If you’re in San Francisco, you should definitely join me, I’ll walk you through building talking websites.
Not all the Developer Advocate roles have a strong engineering component to them, but you’re still writing code regularly. Why? Well, because all those blog posts, tutorials, documentation, workshops, and webinars are based on code. Code you’ll be writing. The blog posts and tutorials all need the demo apps, while workshops and webinars need example apps. What’s the difference? Well, demos usually have a shorter life span, are specific to a use case (for example “How to create your own voicemail”) and could have a third party integration in them, while example apps have a longer life span, get periodic updates and are functionality based rather than use-case based (for example “How to record an incoming call with Nexmo”).
If you’ve been paying attention, those two use the same Nexmo APIs and features, but one deals with a specific use case you can build with those features, and the other one focuses specifically on explaining how to use those features on their own.
Workshops and webinars rely on the same demo or example apps that I’m writing for the blog posts and tutorials, so I can reuse them.
Maybe I’m doubly lucky, but Nexmo also has a CLI written in Node.js, that we use across our documentation to help developers set up their account without having to go to our dashboard. So I maintain that as well, and because they’re used by thousands of people, I need to make sure they’re production-grade.
If you look around online, there is a pattern of Developer Advocates moving back and forth to Engineering roles, because they miss building products. I think this particular aspect of my job, developing the SDK and the CLI is what makes me not want to switch back and forth because I’m already building products as part of the role.
As a bridge between Product and Community, you act as a feedback mechanism. For everyone. When Product wants to build something new, or change the way one of you APIs works, who better to reach out to than someone who’s job is to understand developers’ pain points. So I get to participate in the Product development process. That usually means looking at OpenAPI specs and trying to make them easier to read or make sure they’re easy to use. Or testing out a new product or feature, and making sure it’s something that developers want to use.
Once the product is ready for release, I also collect feedback from the people that use it. I’ll occasionally sit in while people try to use the documentation and the SDK, trying to figure out the bottlenecks and remove them, or gathering feedback on how the product is used in the wild. That doesn’t really scale well though, so you need a bigger audience. That’s where interacting with the developer community at large comes in. And how do I interact with the developer community, you ask? Well, read on!
One of the other ways I interact with our community is by sponsoring events and manning the Nexmo booth. I get to tell people all about Nexmo if they haven’t used it before or listen to their feedback if they have. And you know, hand out T-Shirts and stickers like they’re candy 😅. In all honesty, this is probably one of the more draining activities from the #devrellife, there’s a lot of things that happen behind the scenes, from preparing the materials to use at the booth (event page, survey, demos), to physically getting there before everyone else to set up the booth and then pack it all up at the end. It involves a lot of work, and I don’t do this alone, usually there’s a few of us from Nexmo sharing the work and being present on the day at the booth. The slightly sarcastic twitter thread about how a day of sponsoring a conference looks like is what prompted this whole article.
These are just the tip of the iceberg though as most interactions with the community don’t happen in person at events. I interact with people trying to use our APIs a fair bit on StackOverflow, Twitter, and the Nexmo Community Slack. It’s usually the same scenario, someone is having an issue with following along one of the pieces of content we’ve published, or they’re trying to build something with Nexmo and they haven’t read up on all the documentation available, so I’ll nudge them in the right direction, or answer questions about our APIs. This is probably one of the most time-consuming things I do, mainly because it’s async, and it involves debugging other people’s code, code I don’t actually get to see. So it means a lot of hypothetical solutions, seeing a lot of code snippets, and trying to figure out all the possible ways it could be wrong.
If you still don’t know what a what a Developer Advocate does on a regular basis, let me at least tell you what I don’t do.
The most common misconception about the #devrellife is that we get to jet around the world from conference to conference, traveling and living in style, because everything is paid for by the company. It could be so, but it isn’t. And let me tell you why: it’s simple math. You have a set budget every year. The less you spend on one thing, the more things you can do. Some developer relations programs are big enough and lucky enough that they can actually fly business class if the flight is over a certain number of hours. But most developer relations programs out there don’t have that kind of policy so everybody flies economy.
At Nexmo, we’re lucky enough that we can upgrade to Premium Economy if the flight is over 6 hours, and we can ask for business if we do back to back events or if we feel like we need to. Let me be clear, we’re not asked to do these things, family and health come first. But most of us choose to do more for our communities, and choose to fly the cheapest logical option, most times with budget airlines. The reason is simple, instead of flying business, we can sponsor that extra community conference this year, or host one more meetup every month. And we do that because at the end of the day, helping enable those communities to gather in person (most of which wouldn’t be able to without sponsors), heavily outweighs us being slightly more comfortable for those 6 hours.
As for the “living in style and luxury hotels” part, the same as we have a certain budget for flights, we have a daily limit for hotels as well. That is nowhere near enough for the luxury hotels. I for one don’t care for those fancy hotels anyway. I just don’t feel comfortable in them, and I don’t really have the time to enjoy the amenities like “spa day” and “golf club”. A hotel provides a simple function, and that’s a place to sleep. I have a few simple rules I use to choose my hotels, be it for traveling for work or holiday: above 8 on booking.com, as close to the venue as possible, preferably with a treadmill or gym. And that gives me enough options to choose from, I end up usually going with IHG because they’re the cheapest options.
“OK, you don’t travel and live in style, but you get to see the world”. Yes, I do. I’ve seen about 20 airports and 30 hotels this year. And the bus/taxi/train rides in between them. Even if you do get to a new city, it’s not like you have the day off to go exploring. You’ve still got a job to do, and most of the time I end up in a coffee shop with good wifi either close to the hotel or close to the airport. Learning to navigate a new city every month gets exhausting after a while, so I try to minimize the interaction as much as possible. If you do happen to have some free time in the evening, because there’s no conference function to go to, you just end up crashing in the hotel room and Skyping your loved ones.
It’s definitely not for the “glamorous” life, or for all the “fame” and “glory”. I’m doing all this because I genuinely like to help people! And I could honestly say I’ve helped at least one person every day! I really care about the developer community, “making developers’ life easier” is not just a marketing gimmick for me. Despite being sarcastic on Twitter, I’ll gladly do this all again tomorrow, and I’m going to enjoy every moment of it. I love helping people and this is the most rewarding job I’ve ever had (and I’ve had a few).
If you find yourself thinking “I wish I could do this as well”, well, you can!. I’m more than happy to help - you can find me on Twitter, and my DMs are always open. I also co-curate a weekly newsletter with Julia called “Developer Avocados 🥑 Weekly”, full of resources geared towards helping you become a (better) Developer Avocado 🥑, give it a read. If you’ve read this article and think “I wish I could join you”, well, that’s possible as well, Nexmo is hiring for a bunch of roles in the Developer Relations team, take a look at the open roles or DM me about it.
😴You spent the night before in a plane, and the morning queuing for 4 hours to get a visa on arrival to Thailand.
😪You woke up at 6 today, and showered keeping one eye open at a time because that's the most you could do23:41 PM - 05 Sep 2019
☹️You lucked out of getting shitty hotel coffee cause breakfast opens at 7...
😬So you went for shitty 7eleven coffee instead. At least you found the one option without sugar, so that's something.23:49 PM - 05 Sep 2019
🌄You got to the conference an hour before everyone else, because you need to setup the booth.
🧳A jetlagged @RabbiGreenberg joins you, with the 'swag stash', which you both carried into the country, shipping stuff in this part of the world is a 'no no'.00:46 AM - 06 Sep 2019
👨💻Because you're working at the conference it means you're on an opposite schedule to everyone else.
🙊You're working during the conference breaks and your 'break time' is during the talks.02:19 AM - 06 Sep 2019
📜The keynote just started, so you could technically do that coffee run you've been badly needing since 6 am.
🎁But this is the only conference @timriley is doing this year, and the keynote is supposed to be special.
🤔What do you do? Decisions, decisions...02:23 AM - 06 Sep 2019
🍣Guess who has to do shifts to get lunch while at conferences? And you guessed it right, everyone else is still watching the talks.
🏝️I hope you like eating alone.05:09 AM - 06 Sep 2019
😶It got quiet at the booth, it's finally time to get caught up on some work.
📉But you really should check social media and analytics first, see how your conference engagement went so far.
📢Maybe you should spend this quiet time scheduling some more tweets for tomorrow.07:46 AM - 06 Sep 2019
🥳 Congratulations, the last break of the conference is done! You can start packing up the booth.
🙊By now you've had similar conversations with 100 people at least, and they all started the same.
👻Have you heard about Nexmo before?09:14 AM - 06 Sep 2019
👨💻You've actually managed to get some work done today. You added one new endpoint to the node SDK you're working on. Two more left for tomorrow.
📦Just in time for the end of the first day of the conference, you really should be storing the booth you packed up earlier!09:55 AM - 06 Sep 2019
😪The first day is done, and so are you. Looking forward to go to the room and just crash for an hour or so.
💃You keep telling people you'll be at the after-party. In 30 minutes.
👟Look on the bright side, the only time you get 9 hours of activity is during a conference!10:59 AM - 06 Sep 2019
🛌You've managed to leave the party unnoticed and you're finally crashing in your room.
🤯But before you shut down your phone and go to sleep, remember why you're doing all this.12:36 PM - 06 Sep 2019
💼Nobody talks about the 12 hour work days or about always being out there.
🚧Everybody gets hung up on the travel and the glam life.
💸Not sold on the glam life? Travel was amazing. You saw so much of Bangkok: the airport, your hotel and the conference hotel.13:06 PM - 06 Sep 2019
✨You're not doing this for the 'glamorous' life, or for all the 'fame' and 'glory'.
👨⚕️You're doing all this because you genuinely like to help people!
🔮And you could honestly say you helped at least one person today!13:10 PM - 06 Sep 2019
👩⚕️You really care about the developer community!
💖And 'making developers' life easier' is not just a marketing gimmick for you.
☺️Despite being sarcastic today on Twitter, you'll gladly do it all again tomorrow.
😁With smile on your face. Because you love helping people!13:15 PM - 06 Sep 2019
🤩It's honestly the most rewarding job you've ever had (and I've had a few), and you wouldn't trade it for another!
🙇♂️Thanks for coming to my TED talk, see y'all tomorrow!13:32 PM - 06 Sep 2019
As we all know being a competent software developer or engineer means continuously learning throughout your career. It’s great! That makes this profession exciting and allows to escape everyday routine at work. In fact, it’s not a job anymore - it’s a lifestyle 👩💻👨💻