For a long while now I've been unsure of what my job is. This should sound alarming to any manager or CEO, but I've always had good reviews and continue to get promoted so I know I'm doing something valuable. But it's not coding, coaching, or managing. Sure, I can do all those things, but I find I have a desire that's quite unique that drives my core activity through priority.
Finally this year a manager suggested to me that I may want to look at the job title "Developer Advocate". In my head this is someone who goes to conferences and talks about code more than writing code. But as I looked through the definition, I found more and more that it fit exactly with my internal motivations.
Part of what resonates with me about this position is that it's so difficult to pin down. At the heart of it, I'd say that a developer advocate is someone who feels deeply that it's an injustice that everyone on the planet is not a software engineer. They care deeply about the accessibility and consumption of tooling and languages and won't stand for poor documentation, onboarding, trainings, or lack of enthusiasm around tech. They find the ecosystem so exciting that they need to share with someone and contribute to the community.
Many engineers want to simply solve hard problems and would love to have a technical writer by their side to take the communication and community side. However, many companies don't have the resources to hire enough technical writers to make this workflow possible. Developer advocates step up here to fill in the gaps.
One problem, the large company I work at doesn't have a "developer advocate" role. So I've made this my mission and here's my plan.
First and easiest, write down the activities I've already been doing for the last few years that fall under developer advocate. Note that these are not yet well recognized as engineer tasks that can count towards promotions.
- Writing blog posts
- Managing our documentation system
- Doing tech talks (internal and meetups)
- Doing trainings
- Working on psychological safety and learning zone
- Promoting community building in the company
- Advocating for open-source
Second, I need to convince senior management that these activities have an impact equal or greater than the impact I'd be having as my traditional role description (senior engineer). This is an ongoing effort that I'll give an update to in a while but my plan is to meet with our product managers and talent development teams to find metrics that we can agree are valued at the corporate level. Then I'll need to track those metrics and focus on moving the needle.
The difficulty here is going to shift the perception of engineering managers to agree that these activities are both highly valuable and that it takes a unique set of skills (senior engineer + excellent communicator) to do this role well.
Finally, I need to define the role in terms of our performance review process and open the door for others to go down this career path.
If there's a lesson here, it's to reflect and care deeply about your internal priorities as they relate to your role. At the end of this, even if I find I'm not providing as much value as I expected, I'd rather take a pay cut and title change than re-arrange what I feel is deeply important.
It's been a tough couple years. I've often felt lost, like the work I love is undervalued at my company. Like I'm not fitting any traditional mold for an engineering career. But with the discovery of the developer advocate role I'm more thankful than ever that my company allowed me to explore and adapt for so long, and I'm finally primed for showing just how valuable I can be in this new role.