Public Speaking as a Developer
As a follow up to my post from March on blogging as a developer, I wanted to give my tips for doing public speaking events as a developer. A little over a year ago, I submitted my first call for papers (aka conference application) to the Code(Her) conference in DC where I live. It was accepted, and I gave my first conference talk last August. Around the same time, I moved from a traditional software engineering job to teaching at General Assembly's bootcamp. From that point on, I've given over 20 talks at conferences and meetups over the past year. All that being said, I wanted to give my tips -- from the application process through giving the actual talk.
These reasons are going to look really similar to my reasons for blogging!
- Reinforce your knowledge on topics. The best way to really learn something in depth is to teach it to somebody else!
- Demonstrate your knowledge. You can show to the world that you really know a topic inside and out!
- Build a community and meet other people who have similar interests to your own.
- Challenge yourself and keep yourself accountable.
- Help people who are learning the topic you are speaking about!
In addition, most conferences give speakers free admission or even travel assistance, which makes going to conferences a lot easier financially.
Picking a Topic
The first thing that you have to do in order to give a talk is to think through what you want to give that talk about. I would pick something that you can tell a good story about, that you are passionate about, and that you feel comfortable talking about for an hour or so. You do not need to be an expert in the topic, in fact talking about your learning process or hearing about something from a newbie's perspective can sometimes lead to the best talks. Also, your talk doesn't need to be crazy technical -- some of my favorite talks barely even talk about code! I usually convert my blog posts into talks because I am already part of the way there!
Some of the talks that I have given are:
- Learning CSS Through Creating Art
- Web Ready Augmented Reality
- Web Development for Data Scientists
- Intro to Web Frameworks
- Building a Progressive Web Application with Gatsby
- Web-Ready Data Visualizations in Python with Bokeh
- Programming 001
- Building Art with Code
- Teaching Code
I tend to lean towards giving workshops and more code-heavy talks since I teach code full time, so that feels the most natural for me.
The Call for Papers Process
The first step in giving most talks is the call for papers process, where you apply to give your talk. Different conferences have different requirements for the CFP, but normally there are two main parts: a short abstract that summarizes your talk that the conference will use to market it if it is accepted. Then, there is a longer description of your talk where you can provide an outline of what you will talk about and why.
Be succinct and catchy in your abstract -- think of this as your sales pitch and your summary for your talk. These normally have a character limit, so you really have to think about each word and pitch your talk as well as possible here!
My 300 character limited abstract for my "Web Ready Augmented Reality" talk is as follows:
There are a lot of directions that you can take your full description in; however, the formula I normally go with is as follows:
- The Learning Objectives for the Talk. I normally give three to four bullet points on what I want attendees to learn during my talks.
- A description of the talk and the technologies used in it. I write a few paragraphs about why I want to give the talk, the context for it, why it will fit in well at the conference, and the "stack" used in the talk if relevant.
- An agenda for the talk. I give a rough breakdown of what the time breakdown will be for the talk. Ex. 5-minute intro, 10 minutes of demos, 10 minutes live code, 15 minutes Q&A etc.
- What attendees will leave with. I try to think about why people should come to my talk, and what they will get from my talk. I love giving workshops, so in that case, the answer is normally demos and their own mini-projects. For shorter talks, this can be a renewed enthusiasm for a technology or a new knowledge about a library.
- Links to existing materials. Again, I normally base my talks on my blog posts, so I will attach those. If I've given the talk before, I will also attach the slides that I used.
The next step is to find a conference you want to talk at. There are a couple resources that I use to find these. The first is PaperCall which lists open CFPs that you can submit to via their site. I also follow Mozilla Tech CFPs and CallbackWomen on Twitter to hear about local events. There are websites that I see from time to time listing upcoming conferencesFinally, I am a member of the Slack groups for my local tech community and see a lot of CFPs and people asking for meetup speakers there.
Once you submit to conferences, don't feel discouraged if you don't get accepted to everyone! Different conferences are looking for different things, and they have different audiences. In addition, there may be other people submitting similar proposals, so they can only pick one talk on a topic! I have gotten a lot of rejections and a lot of acceptances! I will also say in my experience it is harder to get beginner centric talks accepted because there are usually fewer new developers at tech conferences! You can submit more than one talk to a conference too, which I also normally do!
It won't happen again until February, but I attended Global Diversity CFP day this year, which was awesome! Put it on your calendar!
Developing your Talk
Now comes the hard part -- developing and practicing your talk. Each talk will take different steps to develop depending on the content, of course! I tend to start out with a markdown document and just outline my thoughts. I do the research that I need to do on technical topics -- I read articles, watch other conference talks, look through my own code and other people's. I put all the helpful links in one place so that I can come back to them afterward, and I write down any notes that I have as well.
Then, I add some structure to the talk -- I start to develop a timeline of what I want to talk about and when.
Usually, the best talks tell some sort of story and give a lesson to your audience. I love this talk by Saron Yitbarek about how to structure your tech talk.
After that, I write my slides. I have custom CSS for impress.js that I use for each presentation. I have a few web components I also use to make the slides act the way that I want them to. Getting it set up initially is kind of tough, but I personally think its worth it in the long run to have a setup that I really like.
I tend to use few words on my slides, and I like using a lot of images on them as well. Many people are visual learners, so having diagrams can really make concepts more clear. I link to the finished version of any code demos that I plan to use during the talk. I also usually have a lot of links to more resources so that
Here is an example of one of my slide decks!
I tend to put my Twitter handle on the first slide so that people can tag me in things as I go, some people even put their handle on every slide! I also have all my links on the last slide so that people can get in touch with me if they want after.
I recommend practicing a lot -- you will probably be less nervous day of if you are prepared, and the timings and transitions will be smoother. If you are doing live coding, make sure you know the code in and out!
Make sure you pay attention to the length of your talk! Some conferences do 30-minute slots, others 45, some even hour and fifteen-minute slots! Check ahead of time to make sure that your talk has the appropriate amount of content for the time slot that you have.
The Day of your Talk
So, I'm not going to sugar coat this, you will almost definitely be nervous on the day of your talk, especially right before. It happens! I still get nervous and I do this all the time! My biggest tip here is to listen to peppy music that you really like right before you speak-- I listen to Britney Spears and Beyonce before every talk and love it. I wear clothes that I'm comfortable in, that usually make a statement -- that's just another thing that makes me feel more confident in front of a crowd.
Another tip is to pretend to be as confident and peppy as possible, even if you don't feel that way -- people usually can't tell the difference. Finally, I usually go over my slides a few times the day of the talk so that I really remember everything that I'm supposed to say.
Your talk is a performance -- you are in stage or in front of a room of people, so being engaging is important. I talk with my hands, sound super excited, and always talk about how much I love writing code. It makes my audience more excited as well, and they keep paying attention to my talk. In the same vein, you want to be understandable, so speak clearly, project, and don't rush.
I make my slides available to the audience before all of my talks so they can follow along. I will use BigTextBox on the projector to show the link to the slides, and I will put the link in the conference Slack group and with the conference hashtag on Twitter. I send them out ahead of time so that people can follow along on their own computers if they want -- they can read the text more easily, play with demos, and see my code samples. I also keep the links to my slides up after so people can come back to the resources I have linked.
Some piece of technology will almost definitely fail during the conference, so be prepared. You may barely have internet, your microphone may misfire, a demo may break, or your projector may be awful. It happens! Don't worry too much about it, it happens and people understand! Earlier this year, I ended up projecting some of my demos over my phone because the internet wasn't working at the conference center! I would also recommend bringing your own adapters just in case the conference staff doesn't have the one for your laptop on hand. I personally don't use clickers to move from slide to slide, I just use my keyboard, but a lot of people really like them!
If you want to watch one of my talks, I did my CSS art talk for dev.to a few weeks ago which was super fun!
Take advantage of the opportunity -- conferences are great places to meet new people and learn new things. Do your best, but don't worry about perfection!