So, I get asked a lot about how I got into technical advocacy / evangelism1, so it seems like the most cost-effective way to answer this question is to write a post about it. Warning: it's a long one!
Firstly, let me caveat this (I always have caveats, don't I?) with, "this is my personal experience". There may be other ways to get into this role.
Any long-time readers of the blog (I love you guys!!) will know that I started blogging before I did any of this running-around-the-world-speaking-at-conferences lark. I started blogging for a number of reasons:
- Even "back then" (probably around 2007), it was definitely an advantage to have something external to the day job to differentiate you from other job candidates. I didn't feel comfortable with open source, Stack Overflow wasn't invented yet (and even if it had been, I'm not sure I would have felt knowledgeable enough to answer questions), and most of what I had learnt in order to level-up my skills was via blogs like Joel Spolsky's and Rands in Repose.
- I really enjoyed writing. One of the (many) things I had wanted to be "when I grew up" was a writer or a journalist. I didn't take that path because I thought if I did I would be Poor Forever. However, if I started practising my writing in a blog, I would learn to find my voice, and have something to show book publishers if I ever did get around to writing a book, like I had always wanted to do.
If you've ever started a blog, you know the problem is thinking of things to write about. I generally documented things I'd had difficulty getting working, because a) if I had trouble with the existing documentation, other people would too and b) I have a memory like a goldfish, so it would be useful for me if nothing else. But it took me years to really take the blog seriously.
At the end of 2008, I joined the London Java Community, largely because I had returned to London from a year working in New York, and a) I needed a new job (during the height of the crisis, when my recent experience was all financial markets!) and b) although I had friends in London, I needed to rebuild my social networks, and I was using meetup.com to do this. I tried lots of other meetup groups, but like many geeks, I found it hard to connect to people without the common ground of tech or code to talk about.
Eventually I ended up working for LMAX Exchange, and because we were always looking for keen, bright developers, I started getting much more involved in the LJC so that I could help us hire people I actually wanted to work with. During this time, people like Martijn, Ben, John and, of course, Barry were encouraging me, consciously or not, to do a bit of technical presenting. I saw a lot of different talks there, some from professional evangelists from vendors, but many from "ordinary" developers like me. It made me think that a) I should do this (awesome for your profile/career etc) and b) I could do this.
Of course, I saw very few women presenting (I do remember an awesome presentation from Fabiane) and also very few women members. Many members assumed I was a recruiter, even before I started trying to chat to people to, well, recruit them for LMAX. In the first 2 minutes of meeting someone, if they didn't ask me directly if I was in recruitment or HR, I would always make it clear that I was a Java developer. It was tedious but something I just got used to. Interestingly, once it was clear I was a Java person, people seemed to accept that and just treat me like any other techie.
I think this is one of the reasons I decided to start doing presentations - I could a) show my own technical credentials, so I would spend less time having these tiresome conversations (which, by the way, seems to have worked) and b) make it more normal to see women techies, hopefully minimising the number times other women faced the same assumptions (I'm not sure if this worked or not, as I only have my own experiences to look at).
But these thoughts were only floating around my mind, I didn't actually do anything. During this time, while working at LMAX, it seemed like there were lots of things I could blog about, or talk about, but I never really got round to it. Plus, I wasn't really sure what I was allowed to talk about and what I shouldn't be talking about. So apparently during these two years I only wrote a total of 6 posts, and I never did a single presentation at the LJC.
However, I really wanted to do presenting and have time/inspiration for the blog, so I chose to leave LMAX and join ThoughtWorks - they were looking for consultants and I knew this was a company that valued blogging and presenting, and I'd had some exposure to their guys through the LJC and, years before, I'd seen them speaking at QCon London, which had actually been my initial inspiration for blogging. I told LMAX that was why I was leaving, and off I went.
So it's 2011, and I've joined ThoughtWorks. I revived the blog while I was unassigned to a project, I invested that time in porting the blog to a more sensible platform, and trying to write a blog a day. Again, I picked topics I could comfortably talk about - I spoke about my experiences as a beginner trying Android for the first time (sometimes people will be arsey with beginners, but in reality many real human beings can't tell you you're wrong when you're just talking about your own experiences), and despite my original intent to blog with zero gender identity (I was genuinely afraid that if I wrote about tech subjects and I was wrong, or very junior, I would give women programmers a bad name) I decided to blog about "the women in technology subject". Again, here I went for my personal opinion/experiences, for which only mean people can criticise you (mean people are easier to ignore than correct people 🙂 )
I was also fortunate enough to meet Martin Fowler in person while he was over in London. We were talking over drinks (this is London, after all) about the women in technology thing (ThoughtWorks are really big on this subject, and determined to do something positive in this area), and I was complaining about the lack of women at a particular conference. He asked me if I had submitted a talk for the conference. Me?? Of course not! I'm not ready for that! I've got nothing to talk about. I haven't been given permission to do this, or guidance on how to do it. I haven't even presented at the user group yet. But it did make me think - I said I wanted to present, so what was stopping me? Did I need someone to guide me through it, to assign it to me as a task? It was going to be up to me to make this happen. And if Martin Fowler, who had just met me 5 minutes beforehand, thinks I'm ready to do this, then who's to tell me I'm not? What's the worst that could happen?
Of course life then got in the way - I was assigned to a couple of projects, so the blogging stopped. I was interested in attending or speaking at conferences, but wasn't going to have anything ThoughtWorksy to talk about for quite a while. And now, because I was commuting to my assigned project, I had very little time even for the LJC.
At this point, LMAX called to let me know that the talk they'd done at QCon San Francisco, "How to Do 100K TPS at Less than 1ms Latency" had been enormously popular, and they were open sourcing The Disruptor and wanted to do some evangelism around this - did I want to come back and help a) do evangelism and b) co-ordinate the company's evangelism? Yes, yes I did. So, after just 3 months, I quit TW and went back to LMAX2.
Back at LMAX, I started to take evangelism more seriously.
I tried to blog every week - I set aside Sundays for blogging (at the time I was, fortunately for my particular choices, single and not overburdened with a social life outside of the LJC). I wasn't going to sit all alone in my tiny flat, so I'd go to the pub with my shiny new Macbook Air, bought specially for blogging (thanks ThoughtWorks, you spoiled me - I needed a mac after I'd invested 3 months getting to grips with the one you gave me) and write something. It wasn't always amazing, but I'd do something. During the week, when ideas came to me, I'd make a note of the title in the blogging tool so that when Sunday came I'd pick one and go with it. Early on it was fairly easy - we'd released a white paper on the Disruptor, but I found it hard to understand what it really meant, so I spent Sundays writing shorter articles breaking down how it worked and how to use it. I needed a LOT of help from Martin Thompson and Mike Barker to understand it, but they were patient with me (plus I think they were happy that someone was writing this and it didn't have to be them). They took the heavier, more complicated subjects and I pitched my stuff at developers like myself. When I ran out of Disruptor stuff, I moved on to the topics I had in the backlog - I generally had more ideas for blogs than time to blog, so I ended up with quite a long list to pick from. The key is to make a note of it at the time you think of it, and not try and think of a topic when you sit down with time to blog.
I coordinated our events and publicised them on the new LMAX blog I'd created. Dave Farley was often presenting on something Continuous Delivery related since his book had been released, and Martin was talking about hardcore concurrency stuff.
Mike and I got even more involved in the LJC, not just to recruit people. We got involved in the JCP and OpenJDK - since LMAX was doing cutting edge technology stuff with Java, we wanted to see where the language was going and influence it too if possible.
Martijn must've got fed up my lack of drive in the presenting area, as he pretty much forced me to do my first presentation. In a nice way! But he told me I was ready, he checked my content before I did it, and I did a short talk on the JCP.
At this point, my plan was to spend this first year of presenting doing short talks at the JUG, maybe work my way up to a longer talk by the end of the year, or maybe the following year, then the year after that to submit to conferences.
Well, with amazing mentors like mine, that didn't happen. Martin Thompson was due to give a talk at JavaOne at the end of that year (still 2011), and I was lucky enough to get a ticket at the last minute (we won the Duke's Choice Award for Innovative Programming Framework, and LMAX was awesome enough to let me have the ticket to the conference to receive the award, since the evangelism efforts and blogging had had a direct influence on us winning this award). Martin asked if I wanted to co-present with him. Of course this was terrifying! I hadn't even done a full length talk at the LJC, I had barely even been to a conference, let alone presented at the largest Java conference In The World! So I said yes. These opportunities do not come up every week. It's a talk Martin had given various times before, he would be there to pick up the slack if I freaked out, and I knew this material, I'd been blogging about it and answering questions for the last 6 months.
It really was as terrifying as I thought. But. It went well. I answered difficult questions. We got great feedback.
JavaOne 2011 was an important milestone in my evangelism career. Not only did I get to put this presentation on my CV, I got to meet a lot of people in this network: Martin introduced me to a lot of high performance specialists; Martijn and Ben introduced me to people involved in the JCP, to other Java User Group leaders, and we somehow got in to the O'Reilly party - I finally got to meet a book publisher and get one step closer to my dream of writing a book. I also met the ladies behind Duchess, and they introduced me to Stephan who runs Devoxx. This turned out to be an important step in turning an idea I had for a panel into a Devoxx reality.
This is October. By the end of the year I had also presented at JAX London with Mike, and at Devoxx Belgium on a panel, largely thanks to the contacts I had made and the prestige of having a JavaOne talk under my belt. So I went from basically zero at the start of that year (my blog had been dormant for years and I had no experience presenting) to having a blog with thousands of hits a month and being an "international conference speaker". In many ways I got lucky, because the Disruptor was a really interesting, technical topic that is in an area developers feel they should understand (high performance). But I believe it was more a) determination to make this work, even if it meant using my own time to write blogs and prepare presentations and b) fantastic mentors who pushed me to do it and opened up their networks to me, that facilitated this rapid rise.
Honestly, after that things were a lot easier - I had the experience presenting at conferences, I had Martin and Martijn suggesting conferences to me (and introducing me to the right people where appropriate), which got me into the QCon/GOTO loop and into OSCON. With videos of my presentations availble, combined with the reach of my blog, I also had people approaching me to do other events, like user groups in the cities I was visiting, and conferences I had never heard of. I think it helped that I'm a woman, because conferences are always actively looking to increase their diversity (whatever it might seem like at times!), but I think that anyone could follow these sorts of steps with a similar outcome.
I'm not going to talk much about my career after that, because really that's the tipping point - after that it was more of the same, really. I will say that I left LMAX because the pressure to be a full time developer and do advocacy is hard, especially when you're no longer single and you don't have the spare time you used to have. I joined MongoDB because they were well known for understanding the technical community, and because they were looking for an evangelist who would continue to be an engineer (although not for 40 hours a week every week). I think they might have hired me without the previous experience, but the blogging and presenting experience was a big selling point for the guy who became my boss. I eventually left them for JetBrains because you learn, over time, what your sweet spots are as an advocate/educator, and what your interests are. After two years of MongoDB, I knew I really wanted to focus on Java and the JVM, and JetBrains is a much better fit for that. I'm pretty certain I would not have got this job without a) having the conference-presenting experience and therefore b) being known to the team already through the conference circuit.
Well. That was a massive post. That's why I've been putting off writing this for ages. That's just my own story, I have another post in my head about the challenges that face you on trying to sell the value of evangelism/advocacy to your organisation (and maybe some suggestions). But that's for another day.
In closing, I shall try to leave you with take-away points that I hope will be helpful if you either want to become a technical advocate, or are interested in just some aspects, like writing or presenting:
- Join a user group. I cannot, cannot stress how important the LJC was to my career. If you do nothing else, this is the one thing that can help you. You will meet people who will inspire you or give you the kick up the backside you need. Try to remember that many of these people, like me, were developers like you before they became bloggers/authors/speakers. If they can, you can. These people also have networks, and whether you like it or not, it really is not what you know but who you know (but don't let that put you off - meeting the right people can be easier than becoming some sort of super-expert!)
- Present at the user group. Preferably get them to video it - you can use this in submissions to conferences, if it's not a blind CFP they will like to see examples of your style. Having an example, even one that you think isn't awesome, is much, much better than having nothing at all. (Also, and this is not a blog post about becoming a better speaker, but do watch your own videos - it's insanely painful the first few times, but it gets easier and will help you to improve).
- Be prepared to commit your own time to this. I blogged and prepared talks at weekends, even for companies that valued evangelism. I gave up evenings to attend the user group. This will be especially important in the early days when you probably have a day job too. This investment should pay off, either your company will learn to see the value of it and give you more time (having developers attend and speak at the LJC was enormously successful for recruitment for LMAX), or you will get a job better suited to what you want to do.
- You don't have to have something awesome to talk about. I got lucky with the Disruptor, true. But our most in-demand topics at the Sevilla Java User Group are "Introduction to..." topics, especially for things that are no-longer cutting edge - not all developers were early adopters, and now they need an overview of "why NoSQL" or "what's Docker".
- You don't have to be awesome. Your blog doesn't have to be perfect English (especially if you're not a native). It just needs to clearly describe the thing you're trying to explain. You don't have to be Damian Conway(one of my favourite presenters) when you speak - in my experience, a presenter can get away with either only great content or only great delivery, you actually don't need both. I've been to conferences where presenters haven't really had either - you have to start somewhere, and audiences are surprisingly forgiving (especially at user groups).
- Find mentors. Listen to them. You might not even meet them, you can watch what they do. But I'd encourage you to find real human beings who are a step or two closer to where you want to be. Talk to them, let them know what you want. And let them bully you into doing scary things.
- Be yourself. Figure out your strengths and interests, and play to them. I was scared of being a woman developer on show, via the blog or via conferences, but it turns out to be an advantage. I was afraid that because I'm not Martin Thompson I can't possibly talk about difficult technical subjects. But I don't have to be him, I can be me - I can explain things to the level that I need to understand them, so other developers like me can catch up with me. We don't need to all be genius-level.
- Do things that scare you. The terrifying things are the things that got me the furthest.
I hope this helps someone.
1Evangelism / Technical Advocacy - I use these terms fairly interchangeably. Evangelism was the common name some years back, but many are uncomfortable with the religious overtones, so instead prefer Advocacy.
2 This is why I often talk about being at ThoughtWorks for a minute and a half - I really loved a lot of things about the company, but what I really wanted to do was offered to me in a company I already knew, where I could get going straight away without any ramp up