I started my career as a software developer. However, since the summer of 2017, I have been a developer advocate.

In this story, I want to tell you how I moved to this position, why I chose this path, and what I do to improve in this field.

How I became a developer advocate

Photo by Matthew Henry on Unsplash

Have you ever felt that doing the job you used to enjoy doesn’t make you feel satisfied any more? I bet many of you have. They say that for a software developer it’s okay to change jobs every 2 - 3 years.

I had been working at JetBrains as a YouTrack (browser-based bug tracker) software developer for 4 to 5 years when I realized that I wasn’t happy at work. I was tired of programming, though I thought before that it was what I wanted to do for a living.

Fortunately, I understood that my problem was just a lack of satisfaction. I didn’t feel satisfied or that I was entirely using my potential when doing numerous tasks and fixing endless bugs day after day. I didn’t see my impact on the team’s results.

At that point, I started switching to other activities, related to YouTrack. I helped to write docs and to process feedback. We decided to organize a public webinar devoted to the updated YouTrack workflow API. I took a very active part in it and even started a small community in Slack while preparing examples.

Believe me, I felt happy and content those days and was way more productive than a couple of months before. So I’m very grateful to my manager, who allowed me to quit product development and to continue these community-related activities.

Why I am a developer advocate

Photo by rawpixel on Unsplash

It took me some time to find a proper job title. The range of my activities was wide and fell into different “usual” jobs:

  • Helping our customers to make the most of our product by answering their questions - support engineer, I guess;
  • Helping other JetBrains teams to use YouTrack - internal support engineer or something like that;
  • Updating documentation - technical writer;
  • Writing blog posts about using YouTrack workflow API - technical writer again;
  • Managing the product community - community manager, probably.

I don’t remember how I found this “developer advocate” job title, but I liked it immediately, though the term is still a little bit unclear today. One may think that developer advocates do the same as technical evangelists but without religious associations. For me, these two jobs are different.

Technical evangelists work on turning everyone to their belief in the product; in other words, they engage new users in the product.

Developer advocates work with those who are already involved with the product. They help external developers use the programmable abilities of the product and advocate their needs before the team.

I’m not good at convincing people. However, I’m good at helping them.

What helps me be a better developer advocate

Over the last 1.5 years, I formulated the list of essential developer advocate skills. If you already are a developer advocate or are thinking about becoming one, you need to have them.

Knowledge of applications APIs

Photo by Chris Ried on Unsplash

You can’t do without them, as they’re your bread and butter. You need to know how to use them for sure.

Even though most people outside your team are capable of reading the documentation, what you need is the following:

  • Know how to solve particular problems with these APIs;
  • Understand the API limits;
  • Be aware of tricky parts within these APIs and how to deal with them.

What I do:

  • Use those APIs myself: I have written tons of YouTrack workflows, a couple of dashboard widgets and several scripts, using the REST API.
  • Help our users to solve their API-related issues in support.

Programming

Photo by Clément H on Unsplash

As you are a developer advocate, you need to speak one language with developers. Or, as it is in my case, many languages. Java, Kotlin, JavaScript, PHP, Ruby, Python, C# - these are some of the languages our customers use to access the YouTrack REST API.

What I do:

  • Regularly implement YouTrack extensions.
  • Try out various languages and frameworks in pet projects.
  • Recently I committed to the “100 Days of Code” challenge, which motivates me to program a little bit every day.

Writing

Photo by Daniel McCullough on Unsplash

I consider writing blog posts and tutorials to be the most reliable and convenient way to help the community. Some may prefer video content.

However, making good videos requires a lot of time and effort, plus it is very costly to update them as soon as your software interface changes.

Written content is faster to create and cheaper to maintain, meaning that you provide more information in a given amount of time.

What I do:

  • Have a blog (the one you are reading now). Apart from being the right place for practicing writing skills, it also helps me to build a personal brand.
  • Write at least one sentence every day. It may sound too little, but most of the times I write much more, and the first sentence every day is just a catalyst.
  • Use Grammarly to improve the quality of my English texts.

Public speaking

Photo by Joao Cruz on Unsplash

This subject is something I do not have much to say about at the moment. Developer advocates often participate in conferences and other events, and public speaking skills are essential for them.

As for me, right now I have a 6-month-old baby, work part-time from home and won’t be able to attend any events for another half a year at the very least. As soon as I start making talks, I will write another story about it.

In conclusion, I believe that three components make great developer advocates:

  • Brain - to be able to help use their software in the most unexpected, ways;
  • Heart - to take customer issues as their own; and
  • Courage - to advocate their needs before the team.

If you have them, then I wish you a great walk on your yellow brick road to developer advocacy!

Original photo source: “Yellow Brick Road” by Antonio Correa