Let me start by saying that I've been a Developer Advocate for about 6 years of my career, and I absolutely LOVE my job. If you've followed any bit of my content and career, that hopefully doesn't come as a surprise. In fact, I think Developer Advocate positions are often looked at as one of those "pie in the sky" type roles that people hype up in their minds. Here's a picture of me speaking at a conference, one of my favorite things to do in the world.
As I said, I love my job, but just like with every other position, there are some difficulties and struggles in the role. Let's look at the top 5 struggles I have as a Developer Advocate.
1. Gauging Personal Success
This list is not in any particular order, but this one definitely rings most true for me. Even though I have several years of experience in content creation and Developer Advocacy, I still find myself frequently asking:
Am I doing a good job?
In Developer Advocate roles, this is a hard one to answer. It's just not easy to translate talks given, videos created, etc. to tangible metrics that correlate with impact on the company.
Let's start with an example. Let's say my company sponsors a conference, and I spend all day at a booth. During that day, I have really engaging conversations with 50 different people. How do I then translate that to impact?
The easy answer is "the more people we talk to, the more exposure we get". This is absolutely true. BUT there's often not a direct way to further track the impact of those conversations. There's no guarantee that any one of those conversations is going to lead to a sale for the company, at least not directly.
See, this is one of the things that you just have to accept with Developer Advocacy. You often won't see the direct correlation between your activities and traditional company goals like signups, dollars earned, etc. To help with that, though, I've changed my perspective on "tracking metrics".
Instead of looking directly at those traditional company goals, I want to focus more on the types of activities that I can do that I think will influence those goals. For example, instead of targeting signup numbers directly, I'd rather spend time and energy investing in activities that have the potential to move the needle around signups. That's where I can more specifically track my impact. Here's what that looks like.
"This quarter I want to drive 1,000 signups for the platform."
"This quarter I want to produce 4 videos and 4 blog posts because those are 2 activities that I think will lead us to 1,000 signups."
This may seem subtle, but the tweak here has a significant impact. Even if my content doesn't drive a significant chunk of signups, I still have a goal with a tangible number that I can gauge: the number of pieces of content that I produce.
All in all, measuring impact and gauging value is a constant struggle. I think most teams and individuals are continuing to figure out how to do it.
2. Where Do We Fit In?
This is a question I've had since starting as a Technical Evangelist at Microsoft almost 10 years ago. Then, the Evangelism team was part of the Sales organization. At both Auth0 and at PlanetScale, Developer Advocacy has been a part of the Marketing organization. Which one is right?
Well, that has become a tough question to answer, because honestly, I've never felt like we fully fit in. I remember going to a massive sales conference at Microsoft early on in my career (my first week actually) and hearing all of these words that felt unrelated to me and my job: "customers", "revenue", etc. In Developer Advocacy, you almost never talk about customers. Instead, you talk about developers. You also rarely talk directly about influencing revenue (see section above). Those concepts just feel a bit foreign when you're focused on driving genuine engagement with developers in the community.
I've had similar feelings about being part of a Marketing organization. In addition to talking about customers and revenue, there's also a slew of new acronyms like MQLs (marketing qualified leads), B2B (business to business), etc. I'll be honest, I've sat on my fair share of marketing calls and felt completely lost 🤷♂️
Want to get a different perspective on where Developer Relations fits in? Kim Maida (she's amazing btw) wrote a wonderful article on the topic you should read Which Department Does Developer Belong In.
Having the hyper-focus on developers and community means we may not directly align with traditional sales or marketing goals. Often the verbiage is totally different, but engaging with other sales and marketing people has always led to a learning experience for me. My advice is to embrace it wherever your team lands and learn as much as you can.
3. Sacrificing Technical Depth
The best thing I ever did in my career, which has mostly been in Developer Relations, was to take a few years in the middle to work as a full-time Software Developer. Remember, I started my career as a Technical Evangelist at Microsoft, so immediately, I was expected to give talks and demos of our products. Unfortunately, what that led to was working on relatively small demo applications and not on production software. There's a big difference...trust me!
That full-time experience working on production code has given me a perspective as a Developer Advocate that I never would have gotten had I not made the switch. I can now have much more technical conversations with developers based on my first-hand experiences. That said, as a Developer Advocate, you rarely end up working on production software. You may have opportunities here and there, but for the most part, this would not be a consistent aspect of your job.
Writing code is a muscle that needs to be exercised to maintain.
As a Developer Advocate, you're going to lose some of that technical knowledge the farther and longer removed you are. Don't get me wrong, I still write a decent amount of code, but again, it's usually for demo apps. Again, there's a big difference between demos and production software.
The flip side of this is that by working on different products, you also have the opportunity to add to your technical breadth of knowledge. For example, I didn't know anything about Authentication before working at Auth0, and I knew very little about databases before joining PlanetScale. I've used both of these opportunities to build out areas of knowledge that I didn't have before.
4. Juggling Various Responsibilities
As a Developer Advocate, you have the potential to become many things: a speaker, a video creator, a writer, a documentationist (that's a word, right?), a designer, a live streamer, and so much more. There are so many different complementary skillsets and responsibilities at play that it can be extremely difficult to juggle.
This is especially true at younger companies where they are looking for one person to fill a lot of gaps (see list above). At bigger companies, it's probably easier to specialize in one area, but it's still a lot. So, how do you juggle all of the potential responsibilities?
This is honestly one of my constant struggles in my roles as a Developer Advocate and as a solo content creator. I want to do and learn more than I actually have time for. There are never enough hours in the day. One thing I'm trying to do better at, though, is prioritizing my backlog of potential activities on a regular basis. I've also been trying to be intentional with my time by dedicating time to certain activities. I like to think I've made progress, but I haven't followed my time boxes as much as I should 🤷♂️
5. Traveling ✈️
From an outsider's perspective, I think Developer Advocate roles are really glamorous. In theory, you get to travel across the country and maybe the world to give talks. What you may not realize though is that traveling is ehxausting.
No matter how comfortable and nice a hotel room is, it's never the same as being in your own house and bed. The same is especially true for airplanes. Trust me, it's not fun sitting on cramped planes especially when you face delays, cancellations, etc.
I am not very productive when I travel.
More important than the comfort level, though, is the impact that traveling has on my productivity. Historically, I don't get much actual work done on a plane, train, etc. I try to keep travel situations as stress free as possible which means I often tune out the world and listen to music or watch Netflix. It's basically my coping mechanism 🥰
When you think about giving a 30-minute talk at a conference, it seems like a relatively low investment from a traveling perspective. However, most conferences are more than one day long and that's not even factoring in the day before and after for the travel itself. That means a 30-minute talk might wipe out almost an entire week's worth of productivity. That's a big challenge for me.
I should also add that your amount of travel is typically a personal preference that you get to influence. I've worked with people that want to travel constantly and some that only want to travel a few times a year. I'm sort of in the middle. I expect to travel about once a month and things are ramping up quick in a semi post-COVID world. Just know that, as a Developer Advocate, you should have control over the amount of travel you do and where you go.
The last thing I'll add is that for every trip I do take, I try to take advantage of it. I love exploring new places, and I especially love doing this with my wife, Jess. In a recent trip to London for a conference talk, my wife joined me, so we left a few days early and took a vacation to Paris 🥰 Not ba huh?
Again, I looove my role as a Developer Advocate, but I do think it's important to call out some of the struggles in the role. Just like everything else, there are ups and downs, so I wanted to give the community some perspectives to think about. If you have any additional thoughts or questions, feel free to share with me on Twitter.