Table of Contents
TLDR; For future reference I will put my way of interviewing candidates online. And, you may have guessed it, this is for sure not the best or only way to run interviews, but it helps me to get a picture of a candidate. Maybe those questions help you as well when asking interview questions or answering them.
The interview context
Before you can judge if those questions make sense or not, some context is required. You’re running interviews differently, depending on your own position. If you’re the team lead, you will ask different questions than figuring out if someone has the required technical knowledge for a job.
The questions within this post are usually considered for checking if a candidate has the technical abilities to fulfill the job of a developer advocate - without doing the nasty and useless whiteboard dance.
That said, keep in mind that developer relations jobs are wildly different among companies and very hard to compare. Some companies are small, so they are more heavy on the community management part (getting folks together, organizing, sponsoring and running events), and less on the technical community content part (content creation, helping users directly). Some developer relations part are heavily focused on the sales pipeline - there are a lot of tools coming up at the moment trying to link all the different communication channels together to create a single entity, so this seems to be the next thing in the devrel hype cycle…
I have yet to see two companies, where the developer relations/community role was the same or even just similar.
What an interview should not be
You may have read this a hundred times, but an interview is not a whiteboard exercise. I’ve run pretty much all of my interviews remote. I participated in interviews, where the candidate was asked to write pseudo code in a google doc - many moons ago. I’m also not a big fan of those interview exercises (hackerrank etc), even though it may a little better than google docs pseudocode. I’ve never tried to go through a GitHub repo that the candidate owns, and I don’t know if that is a good idea or not yet.
Let’s get to know the job and the candidate.
The intro
First and foremost, give each one the ability to introduce themselves, so you know whom you are talking to.
For context, these are my questions for a technical interview, usually rather late in the interview process, so that I do not have to explain how we work as a team. I usually do a quick introduction into that, just to make sure, that everyone is on the same page. This covers how the community team works as a team, and how the different roles within the team look like in order to give an overview of inter team cooperation across geo regions, but also between other teams (explaining the organizational structure helps a bit here).
One of the parts that I tend to stress at the beginning is, that every advocate usually has a different focus. Some love going to conferences, some love to produce video and live streaming content. Others love answering on Twitter or Stack Overflow or prefer our own discuss forum - or are really proficient writing very good blog posts.
While content production is one part, the other important part are being up-to-date with the products of the company (and to some degree tech in general, as advocates are often talking to users at their integration border of different technologies). For some it’s good enough to follow the release blog posts and latest developments and features, others dive deep into a certain part of the product. To me, it’s important to really use the product you are talking about in production. It’s one of the reasons why I always have some side application running. For example the ElasticCC application in my case, running on k8s, is written in Java and is a heavy APM user, which forces me to keep up to date and know what is happening in the Elastic Observability product.
Another trick to keep up to date with the own product is to have internal tooling use it. We are having a lot of internal Kibana dashboards, that are fed with data from a third party system. This way also ensure that we update those clusters and see if the update process is working as expected.
One last part to stay up to date is to actively improve products, i.e. by writing patches, filing issues, improve the documentation or integrating with other products - i.e. I have done some patches for Testcontainers to ease the use of Elasticsearch. Again, that does not mean you have to do that, but I possibly helps to get more experienced with your own products and how they are used in the wider ecosystem.
I usually summarize all of the above as gathering and channeling feedback. From the inside of the company to the outside and absolutely vice versa as well. The result of that feedback can be a google doc or a patch…
Keep (I have the feeling I keep repeating myself a little) in mind that there is no formal definition of an advocacy job, so it may be a lot different in other companies. Skipping this will probably lead to misunderstandings pretty early regardless of the job description.
Ok, this intro should be enough, let’s dive into the questions already!
Give me the questions!
Ok, that was a trick. I don’t really have a bag of questions that I can check off and then calculate the score, how well a candidate does. I do however have open ending questions, that can be answered within a single sentence or you can create a full talk out of it.
What is your technology background? Any specific programming language?
Some of this can be inferred from the CV, sometimes not, but when people speak they may highlight things differently, than what I interpreted from the CV, so that is usually a good start. If there is a mention of a specific programming language, my next question is usually
Did you take a look at the Elasticsearch client in language X?
Gives me a quick indication if there is any stack experience or if the candidate peeked at this during the interview process. Experience prior to joining is optional, but of course a always a plus.
Tell me about your most complex project issue in production and how you figured it out?
One of those fully open ended questions and aimed at trying to get to know the technical abilities a little more. Answer here vary wildly from a single sentence of how production was rolled and wiped out instead of integration environments up to debugging a memory leak in a node.js. Always great to listen to such stories.
Are you running any applications in production? How do you monitor those apps?
A little geared to the Observability use-case, but also very open ended.
This can just be about accessing log files in a microservice architecture
without prod access, or gathering metrics and building alerts on top of it
or instrumenting applications with APM and distributed tracing. I also don’t
expect any I did x/y/z at my previous job
answers, but really, how an
application could be monitored and what is important.
What’s your favourite technology to combine with the Elastic Stack (outside of the stack)?
Another question to gather some experience, giving an indication of ramp up and also allows me to get to know the existing experience a little better and where the applicant is coming from. If there is no Elastic Stack experience, you can just change the context a little to ask about favourite technology from the last years and why.
Where’s your interest in technical content creation?
Enough tech questions, time to talk about tasks as an advocate. This is merely to figure out if the expectations match with the actual job.
Anything in particular you already have in mind to tackle?
If there is something, that the candidate is super keen to work on, I really want to know about it.
Any things that we have not mentioned that you interested in, where you’re think we might be lacking?
Based on my description of the job or the job ad a good candidate might already have seen missing parts and that’s a good thing to remember yourself as an interviewer, that the view of your world is not really complete and you may be missing out on things.
In your day to day work, what are things you enjoy and not enjoy?
Similar to the question about what is to tackle, there may be things that the candidate does not like (‘discussing’ on Twitter it is for me, or travelling the whole week is not an option), and that is just important to know to make sure we don’t burn out a possible candidate or cause unhappiness in the future.
What do you hope to learn by joining our team? Ideal future career?
I know this question sounds a lot like Where do you see yourself in five years?
, but I really do not care about that (and I usually say the exact
same thing when asking this question). It’s rare that careers at a
single company span those five years, so it does not make a ton of sense to
even talk and fantasize about it. I’m really more interested in the path the
candidate wants to take, for example specializing for a certain product or
also asking about the ability to switch jobs within the company after a few
years. Others talk about tech they want to learn like programming languages
or communities they want to join by talking about the company products.
Time for the last pivot of questions, how to stay up-to-date in the tech world.
How do you keep up with technology trends in tech? What was the last tech book that you read (or academic paper etc)?
I’m always curious on this one. It’s hard to stay up-to-date, and after all
these years I’m considering I don't
a valid answer here. Most trends come
and go, so folks who jump into every trend are probably as weird as folks
who ignore everything. On top of that everyone of us can only devote a
certain amount of time to such topics (i.e. when you have kids or have to
take care of a relative).
Same with academic papers, I have some colleagues who read a paper once and can churn out the proper code, I cannot do that. Every now and then I try to read one, but it’s not my means of keeping up-to-date. I rarely read tech books and don’t have any other channels except Twitter to stay up-to-date with tech. Did I fail my own question here? I’d say no 🙂
Who will be the next big competitor for us?
This is an interesting one, because it shows, if the candidate took a look at the ecosystem. Again fully open ended, as there are usually very obvious answers of direct big and well known competitors and less obvious ones like small emerging companies or projects.
What are the next big technology trends?
I usually explain that this should be considered a long term question with a scope of years or decades, so not the next big JS frontend library. The most obvious answers here are AI/ML or quantum computing, but I have gotten a fair share of different answers here. Sometimes folks are mentioning a couple of products that are on the rise like Kafka or K8s, or went with whole categories. Both is interesting and I usually try to get more information about why they think this is the case.
Overtime: Non-tech questions
If we went fast, or the discussion is a lot of fun, I usually have a few extra questions, that are just important for developer relations and community work.
How do you evaluate how to sponsor an event?
This is a classic to me. Even if this would usually not fall under the daily work of an advocate, I think it is absolutely important to understand what a candidate takes into account for sponsoring an event. This might be budget, leads scanned, users talked to, pricing, offer of a paid talking slot, total attendees, previous visits to that conference, commercial/community focus of the event. There are many variables around that.
KPI/Metrics
The holy grail for community/developer relations work. How to track and measure success and failure. What metrics are useful, how can you track them when you do community work for a free product, etc. This can easily turn into a thiry minute monologue, but again gives a grasp around things.
Overtime tech question: Implement an URL router
This still stems from my time when interviewing for software engineering positions. I started asking this question way more than ten years ago and I like it because it is also open ended.
You could start with an map, mapping endpoints to handlers, then take HTTP
verbs into account, or parameters like /app/{organization}/event
.
How could you speed up the lookup of the URL (automatons, radix trees)? How could you reduce object allocation etc. You can go full developer mode or just explain a few concepts of speeding things up or go with a map - I don’t care, as long you don’t tell me, such a requirement is not needed, because all the web applications already ship with it.
To be fair, in recent advocate interviews I never had the time to ask this, because…
Interviews are a two way street
… you should never forget that interviews are going two ways. You should have plenty of time to let the candidate ask questions to give an overview of how this job looks like at your company. I’ve never had a candidate that did not have any further question despite having already at least two other interviews before me. Again, the role of advocates are the variable, that not asking questions might mean missing out a lot on how the team works.
But I could game this!
For sure you could! An interview is never guarantee for a perfect fit for the job. The question is usually what you would gain from that, except that potentially everyone will be unhappy until you switched jobs again.
You could also train for these questions when you talk to me and see if that is worth it…
There is so much more to ask, why don’t you ask THIS?
Well, there is only a limited amount of time, and many questions are probably answered as a by-product. Some more things that are interesting:
- Favourite product from a developer experience
- DX measurements
- What do you think about API/SDKs for product X?
- How to be authentic in developer relations?
- Do you need to segment within your own community? If so, why?
- Show me a sample talk or presentation and let’s go through it? Where do you think are the weaknesses or strength of that particular presentation?
- How to grow an (small/big/non-existent) ecosystem?
- Where should a devrel/community team be within the organizational structure?
- How do you measure the success of a conference booth or meetup/conf talk?
If you google for developer relations interview
you’ll find endless
different opinions. Ignore most and pick what is important for your company
in the current situation - companies grow and change as well, so
revisiting things is well spent time.
Summary
As with many roles (like writing code) there is no definite formula to use and decide if a candidate has the right amount of skills. There is usually some base knowledge you have to bring into an advocate job, but many more things can be build while doing this job. A big one for me was the ability to edit & cut videos and make them look waaaaay nicer. Also my written skills dramatically improved.
Figuring out internal processes and contact persons is probably one of the most important but hidden skills, that are not part of the job ad, but incredibly important. That internal network will help a lot, especially when trying to help with product improvements.
The above is especially true with internal transfers - I switched teams from Elasticsearch to the community team within Elastic.
A huge plus is a solid base understanding of software architecture and running applications in production, so that candidates understand the pain points of users. Being proficient in a programming language is another huge plus, but not a must to me. Learning to code plus learning the products/technology of a company is possible, but requires a major amount of working when starting the advocate job.
With that said, happy hiring! :-)
Final remarks
If you made it down here, wooow! Thanks for sticking with me. You can follow or ping me on twitter, GitHub or reach me via Email (just to tell me, you read this whole thing :-).
If there is anything to correct, drop me a note, and I am happy to do so and append to this post!
Same applies for questions. If you have question, go ahead and ask!
If you want me to speak about this, drop me an email!