So exactly 12 months ago I landed a job as a Developer Advocate at AWS. A job title, that when I left school with a rudimentary knowledge of Java v1 didn't exist. Now this isn't unusual in the technology industry today, where new job roles and titles are popping up almost daily. The role of Developer Advocate(DA), is becoming more and more popular, so I want to share my experiences and the advice that I would give to anyone who wants to be a DA or indeed wants to work at AWS. As inevitably most of this blog is also about working at AWS, as well as, being in Developer Relations as a Developer Advocate.
My career has been primarily in technology as a software developer/engineer who is at their happiest in front of a screen building software. After 15 or so years of this I decided to try something different and joined AWS as a Solutions Architect (SA). Luckily enough a role came up in the most remote and beautiful of cities, Perth Western Australia where I live (see top of post for a pic). Three years into AWS I managed to land a role as a DA, due mostly to dumb luck and an understanding hiring manager.
This role I have found at times to be very challenging, however I have enjoyed it immensely. Mostly due to the fact that I am able to influence and help developers on a far greater scale than I could have previously hoped for as a software engineer. So here are the things I have learned and techniques I have adopted to help me be a better Developer Advocate at AWS, but still stay true to my software engineering roots. As being a DA does mean that you work in marketing, a fact that on first glance would seem a bit strange.
AWS is a large company and ships lots of code in the form of services and features to the platform. To be effective as a DA you need to be known within the organisation as a thought leader and someone who can deliver great content on a service or feature. This requires Internal Advocacy. At the same time you also are employed to advocate on behalf of developers who are using AWS services and features to build cool products. This requires External Advocacy.
Its easy to over index on one over the other, the most effective DA's always find the perfect balance of the two. They are well known by teams within AWS but also by the external developers they advocate on behalf of. They have built this balance up over time, and have spent many hours building the relationships required to be successful, there is no short cut. Put simply, you cant advocate for developers unless you intimately know / can influence the services they are building with, so take the time to find that balance.
Writing things down is important, inside AWS writing takes on a whole new level of importance. Being a developer advocate inside AWS, good writing skills are essential. You are always writing; blogs, code, internal documents etc. The skill I would like to highlight, is the art of taking actionable notes. Notes that not only make sense as you write them, but also will make sense to future self and can be turned into actions.
Take this scenario - you are thinking about your next great piece of content. An idea comes to you while walking for your morning coffee, you sketch out the idea in you head, it sounds awesome !!. You get home and start to write the idea down, only to find you have forgotten half the content you thought of on your walk, you end up not doing the content. DO NOT LET THIS HAPPEN!* Always have a way of writing your ideas down. Even if they simply act as a catalyst for other ideas, don't waste them - take your phone out WRITE IT DOWN, but always take the time to write a coherent structured sentence. A sentence that you in four weeks time can read and take action from.
Thoughts and ideas are good, writing them down is a great step but actions and results are better. You can have 10 great ideas but unless they lead into 10 pieces of great content (blogs, streams, videos) they are meaningless. You need to execute on an idea - make it a reality, as that reality is what you will be ultimately judged on.
Now there is no way you have time to execute 10 ideas - in fact you will be lucky to execute on a very small number. This is due many things, life, distractions, life and even distractions ;) - so make prioritising what you are going to execute on a constant. Ask yourself, is this the right thing to be concentrating on right now? Will this have a better impact on the thing that is next on my list? Will it be worth the x number of days of focus to create it? There is no worse feeling than spending a week creating a blog post that no-one reads or gets little impact. This skill of prioritising and re-prioritising is also a non negotiable when working inside AWS, as work is always infinite, you need to keep prioritising!
The modern DA needs to produce content in a number of formats. No longer is it a case of showing up at a conference or meetup - speaking and conveying a message to a group who are physically in the same room as you. Now it is a case of preparing and talking to a camera and conveying your message to a group of people you cant see, who might be on the other side of the globe. You could be streaming a live coding session or recording a video showing how to build x - but you need to be as engaging as if you where on stage in front of your audience.
In this arena production quality and setup is important, very important. You need to cut through and engage people, your session needs to stand out and engage people quickly, so make sure you learn how to build up a YouTube or Twitch channel. Read about how others are doing it, find out what camera, mic, editing software is being used. Learn from others like: (in no particular order)
Now recording is not something I had much experience with at all, and building a good set up is not easy, you constantly underestimate the time involved. But that time needs to be invested so that the content you have does not get lost in the ever increasing amount of digital content available.
That all being said, remember, good content is everything Being a good producer just makes your content more accessible to a wider audience and makes it more likely that people will actually find and watch it.
I live on the GMT +8 timezone and work for a US based company that for the most part operates 12 hours behind me. There are always meetings on at any time of the day or night. Do not feel obliged to turn up, give yourself a break from the 24 hour development cycle. Set your own time and set your own time boundaries, you are the best qualified to know when these are. Yes there will be times when you need to present at midnight to a group 8 hours time difference away. Make this an exception, if you do not, you will not last, you will burnout and miss the opportunities that you are presented with, due simply to being over tired. Learn the 'art of saying no'
Be your true self, by that I mean, if you are a software developer, build content that is focused on code. If you love architectural principals, build content that is focused on architectural patterns and practices. I find the best content is that which you, the creator, would like to watch. So try and keep coding, and always be your authentic self with your audience.
If you don't enjoy what you are doing, it comes through in the final product, so play to your strengths. If you find yourself writing an article or recording a video and your heart is not in it, because you find the content boring and uninspiring, then STOP, DON'T GO ANY FURTHER. I have made this mistake many times, and what ultimately results is content that you are not proud of and ultimately you end up dumping anyway. Save yourself some time and anguish :)
Don't be afraid to take someone else's idea and content and put your own perspective on it, make it your own. At first I was guilty of trying to think of unique content for everything, this quickly doesn't scale as how many truly unique things are left to do? Instead, I was given great advice "its OK to reuse" and recycle - but put your own perspective and take on things".
You may see an excellent you tube series that you think would make a great blog series or is missing an important addition. There are a few caveats of course - don't copy and plagiarize, instead, add something to existing content and always acknowledge the "shoulders of giants" you are standing on.
How can you ever hope to improve if you DONT ask for feedback? the short answer is - you can't.
Working at AWS is a unique and humbling experience in and of itself. The culture , peculiarities and people, all make it different every single day. Working as a Developer Advocate within the organisation, gives you the reach and the ability to really influence and affect change in the software solutions that developers are creating today. Its a real privilege to help developers around the world, and in a very small way, build the software solutions of the future.
Thanks for reading, as as always feedback always welcome - see Tip 10