Pivoting from software engineering to developer advocacy is the best career decision I have ever made. My life already changed for the better when I became a software engineer, but switching to developer advocacy improved my life tenfold. I love working as a developer advocate because:
- The community is so supportive! As a software engineer, I sometimes felt the environment was more competitive. Even during work hackathons, co-workers were hesitant to share knowledge. I'm big on knowledge sharing and amplifying everyone's work. Receiving this level of support where people reshare my content, refer me for opportunities, cheer me on, and give me advice is so heartwarming.
- I'm passionate about supporting developers, especially early career developers and open source maintainers. I'm trying my hardest to provide the support and create the environment I wish I had when I started in this industry. And I believe open source maintainers should make a living wage. This role puts me in a position where I could have a greater influence on the tech industry.
- The coolest people, aka tech folks I look up to, want to talk with me! (Well, sometimes I reach out to and beg them to hop on a Twitch stream with me, but they don't say no. 😂)
- I have the opportunity to refine various skills, such as coding, video production, social media management, communicating with technical and non-technical stakeholders, and public speaking. I'm not the best at everything, but I love using all my skills to provide value to my team. Additionally, refining these skills helps make me more marketable. I could use these skills in any industry if I wanted a different role. I could also use these skills to start my own business and be the best CEO ever (which will happen someday).
- There are opportunities to have multiple streams of income! I think anybody can do this, but it's easy for developer advocates to earn extra money through sponsorships, brand deals, consultations, and content creation.
- I love writing. It's my best method of expressing myself. It’s therapeutic to spend my work days writing about things I learned. Selfishly, I like that folks care to consume the content I write.
- People thank me for helping them. My dopamine spikes when I know I helped improve someone's day, workflow, or career.
- I feel empowered and valuable in this role.
- Many advocates find it hard to code as much as they want to, but I think contributing to open source and creating demos whets my appetite! It’s the perfect amount of coding for me.
However, developer advocacy does have flaws! Recently, James Q. Quick wrote a delightfully honest blog post called the Top 5 Struggles of a Developer Advocate. Because of his blog post, on July 7 at 11 am, James, a few other developer advocates, and I are hosting a Twitter Space about our struggles in this field. His blog post made me start thinking about my struggles, and I decided I should share them in a blog post.
Developer relations is a highly desired field for employees and employers, but we should be honest about the challenges to help people make better career decisions. If you're considering developer advocacy because you like to help developers, you might want to read the rest of this blog post. If my complaints discourage you, I apologize. You can choose a similar role where you get to help engineers without experiencing negatives, which I will discuss in this post. Here are a few similar jobs you can aim for instead of working as a developer advocate:
- Solution Engineer
- Community Engineer
- Solution Architect
- Product Marketing
- Sales Engineer
- Product Manager
- Product Owner
- Product Consultant
And now, for the parts of developer advocacy that I don't enjoy as much.
Whether I'm coding, writing, delivering a talk, or creating a video, people may leave negative comments. Even if I restrict comments, strangers still find a way to message me. Negative feedback is good – sometimes. It helps me improve, and I'm still learning not to take feedback so personally. It hurts my feelings a little when I receive random, unsolicited mean feedback, but that's the tradeoff of learning and building in public. I try to laugh at ridiculous input because it's a little comedic that people feel so entitled and brazen to message me. I also try to delete and forget.
Examples of feedback I didn't appreciate:
- One time someone DM-ed me that a website I made years ago on Wix didn't meet their expectations for me as a developer advocate at GitHub. Then, they proceeded to ask me how I got my job.
- Sometimes, people leave comments saying, "Does she even know what she's talking about or doing?" (Many times, the point of the content is that it's my first time doing or learning about the concept, but it seems like people don't understand that).
I am by no means perfect. Admittedly, I've reviewed SOME of my content and cringed, but it pushes me to strive for excellence and prepare better in the beginning. Still, it's not an encouraging experience when people I don't know belittle my knowledge, experience, and the effort I invest in helping others. I want folks to remember developer advocates are just like you: humans trying to figure out how to do their jobs well and achieve work life balance. I'll pat myself on the back, though – the majority of my work is QUALITY, and I can create content at a fast pace.
My job covers room, flight, and hotels when I attend conferences, which is a privilege. After eating all the food I wanted and taking Lyfts to and from events, I have to find the receipts for my expense report. Worst of all, expense reports have a deadline. If you're disorganized and hate administrative work like me, this activity is a necessary evil. And it's more awful than it sounds!
I love chatting with people on Twitter Spaces, Twitch Streams, or at conferences, but I'm introverted. I'm a friendly person that NEEDS time alone. Twitch streams and Twitter Spaces look fun, but it's easy to get burned out from interacting with everyone. After one of these activities, I usually need a break, but when I don't intentionally plan my calendar, I may have back-to-back events, which means no break to recharge.
If you're not sure what it feels like, think Zoom fatigue. I struggle most with maintaining appropriate facial expressions and finding intelligent responses to continue conversations.
Constant notifications from social media platforms aren't great for my mental health either. Initially, I used to respond to all my notifications. Now, I just have to put my phone on 'Do not disturb' and let some notifications go unanswered. I hate to do it, but I can't spend all day replying to people on Twitter and LinkedIn.
Traveling for work is more glamorous than it seems. Attending conferences used to be a leisure activity for me, but now I'm there to speak, so my heart is beating in suspense from the moment I hop on the plane until I finish speaking. Also, I still need to get work done if I'm traveling. Perhaps, I need to answer emails, attend meetings, or publish content (for consistency's sake), but it's so hard to be productive and keep track of time zones while traveling!
Traveling to conferences looks like this for me:
- Rushing to and through the airport
- Realizing my flight is delayed
- Trying to get work done while waiting, but feeling sleepy and restless simultaneously.
- Typing on a cramped plane with slow wifi trying to get work done; maybe even making last-minute updates to my slide deck
- Arriving exhausted and jet-lagged but ignoring it because I had made dinner plans with other attendees
- Delivering a talk with anxiety coursing through my veins
- Double-checking my clock and realizing I missed a meeting
- Wishing I was back in my comfortable bed binging Netflix with my cat and my husband
- Flying back home, dealing with more delays and cancellations.
- Knowing my work is gradually piling up in the background
I prefer less travel, but I expect my preferences to evolve. I also see the value in speaking at conferences and interacting with developers in real life.
The best advice for a developer advocate is to choose to advocate for a product and company you believe in. However, even seemingly ethical companies make questionable decisions because we live in a capitalist society. We are victims of capitalism. Working as a developer advocate can sometimes feel like I'm an ambassador or a representative for all the company's decisions. It feels awkward to represent a company when external technologists express distrust of a company's decisions. I have to come to terms with it – whether I'm advocating for blockchain, open source, or developer tools, people will not always like it! I'm still learning that balance because I tend to get too invested in my job. I'm also learning how I can better influence product decisions.
There's a lot of collaboration involved in developer advocacy, which is fun! Sometimes, I collaborate with folks in different time zones. The time zones can be 3- or a 12-hour difference. This can mean either me or the person I'm collaborating with is working outside their regular work hours for our project. Working outside of your typical work hours isn't frequent, but it can happen occasionally. Also, don't underestimate the time invested in technical content creation. It is grueling work! Producing and editing videos, my least favorite task and my weakest skill, takes me hours. If I know that I have a packed day of meetings, I'll maximize my time by investing extra hours the day before to create a demo, write a blog post, or contribute to a project.
One of the most common struggles among developer advocates is measuring success. As a software developer, it was easy to know if I was doing well, and my progress (or lack thereof) was evident to all. I had an issue and would move it from the TO DO column to the DONE column. Each issue has an estimated time for me to work on it. And my goal is to finish the issue within the specified time. However, in developer advocacy, I talk with many people and create a lot of content, but I'm not confident it helped the company. Sometimes, my blog posts have over 18,000 views, but that doesn't mean 18,000 people followed the tutorial. They could've read the post and forgotten about it, or perhaps, they didn't read it at all. They could've just clicked the link.
When I report my impact, I can't just say 18,000 people viewed my blog post. I have to give information on insights I gained and how that blog post provided value to the company.
When I started working as a developer advocate, I had many ideas about what I wanted to do. Then, I realized that companies have business goals, and I get paid to support them. Although I have the freedom and autonomy to pursue passion projects, I must balance them with the company's pursuits and visions.
Please note this is TOTALLY hypothetical: For example, I may want to advocate for GitHub Discussions, but the company may aim to introduce more folks to GitHub Actions. While it doesn't hurt to advocate for GitHub Discussions because I'm passionate about it, I have to prioritize my talks, collaborations, and content creation around GitHub Actions. Then, I can squeeze in advocacy for Discussions with any extra time I have.
Every week, I have to make intentional decisions about what to focus on because no one is telling me what to do. Developer advocates don't have sprints and product managers telling them they have to work on this project for this specific time. Instead, we'll have a backlog of content and frequent discussions about upcoming features the company hopes to prioritize. Also, my managers may suggest ideas to me, especially since I'm on the junior side, but it's up to me to decide if I want to do it.
Saying yes to a bunch of people who want to collaborate with you is fun until you realize you have three blog posts, four talks, and two Twitter Spaces due the same week. Learning how and when to say no goes a long way. Also, learning to quickly switch to deep focus mode to complete the work you committed to is of utmost importance.
Lastly, reporting and tracking your work is essential. On my team, we report when we are going to speak at conferences, appear as guests on a Livestream, or host a Twitter space. Then, we write a brief retrospective report on the wins and challenges of that activity. The goal is to update teammates, managers, and leadership on our progress. It's fair, but it's a little tedious. If you couldn't tell by now, secretarial work would not suit me.
Because developer advocacy is still relatively new, companies don't know how to interview for the role. Some companies may ask you to complete leetcode challenges, write blog posts, contribute to their project, build with their product, deliver a fake Twitch stream, conduct a pretend podcast, or create a fake presentation. The possibilities are endless, and it's a little unsettling that companies can assign any task to me. I get anxiety performing these interview tasks because I know folks scrupulously evaluate me. It's also time-consuming because I sometimes have a job and other life responsibilities when interviewing for roles. Although software engineering interviews are anxiety-inducing, at least the format is predictable.
I love developer advocacy. In fact, thinking of reasons I didn’t like this role took more effort than thinking about reasons why I loved this role. The bright side is I can improve most of the challenges I listed. For example, I can plan ahead and make reporting easier!
I’d love to hear your thoughts below! And if you want to learn more about challenges developer advocates face, join our Twitter Space on 7/7/2022 at 11am ET. The panel will feature James Q. Quick, Cecil Phillips, Brian Clark, Jay Miller, and me.