Julia Evans

Ideas for making better conference talks & conferences

The first programming conference I went to was DrupalCon. I met a lot of really great people and went to some of the open source sprints. It was awesome. It is an awesome conference. At the beginning, someone said to me “yeah, after you go once or twice you don’t really go to the talks any more – you won’t learn anything. Just hang out in the hallway!”

Now, I love the hallway track, but as someone who cares about giving amazing talks, this statement makes me mad. It makes me even madder because sometimes it’s true! I do go to conferences sometimes and think “wow, I didn’t learn anything from that talk, though I thought I might from the abstract! What happened?” But I also go to tons of talks that I love and really change the way I think about programming and remember even years later.

So!! How can you, as an individual conference speaker, give better talks? How can a conference organizer put together a conference with amazing talks that the attendees rave about and keep going to?

I had so much to say about this topic that I had to write a table of contents.

What’s a good talk?

To me, a good talk is one where I learn something new or come away with some change in perspective. The more I learn / the more the speaker makes me think differently about something, the better. So, to give a good talk, you need to say a new-to-your-audience thing in an understandable way.

I don’t mind too much how many times you say “um” or how nice your slides are.

★ How do you make sure your audience understands you? ★

So you’re going to talk about web security, and you’re an expert, and you’re talking to an audience of beginners. How do you make sure what you say helps them, and doesn’t totally go over their head? Here are a few ideas!

Think about your audience

This is basically the only important thing about talks but I see a surprising number of people forget it! The only thing that matters is that your audience learns something that’s useful to them. For example, you’re probably reading this because you’re interested in getting better at giving talks, and you want to see if there’s something in here that will help you :).

Kathy Sierra has several blog posts about this that I love, reminding you to ask How will my talk help the attendee kick ass?. I also love this post and this one too and her talk “Creating Passionate Users”.

Some questions to ask about your audience:

  • who are they (“web devs”)
  • what is an important question you can answer for them?
  • what would you like them to remember from your talk a year from now? This is probably only really going to be one or two things.

Here’s are the resources for an AMAZING introductory security talk by Kelsey Gilmore Innis: Security on a Shoestring. The question she poses in this talk is “You have critical data to secure. You don’t know much about security yet and have limited resources. Can you do right by your users?” Spoiler: yes! they passed a security audit!

When she says she’s going to answer this question, I’m DYING to know how they did it. I’m extremely excited to watch the video.

So, answer questions that your audience would LOVE to know the answer to! Teach them something! Make them kick ass.

Give a short talk

1 hour talks are incredibly hard to pull off. And you can easily give a 30 minute talk which only has 10-15 minutes of content in it.

At my favorite conference, !!Con, all the talks are 10 minutes. I’m biased because I helped organize it in the past, but I find the talk quality is extremely high. If you tell someone “hey, pick an extremely interesting topic and prepare 10 minutes of material on it”, they’re set up for success. You can’t put in irrelevant or boring stuff! There’s no time!!! This is a great hack to help new speakers (or anyone!) give great talks.

I think a fun way to make an awesome talk is to ask yourself “what if I only had 10 minutes? What would I cut?” Then you have to think about what the most important parts of the talk are.

Mark Dominus reminded me of one common way 10-minute talks can fail, though – if you give a 10,000 foot level overview of the topic it can end up being really boring (“here is the history of np-completeness and who defined it and 38 different np complete problems oh no I’m out of time”). If you only have 10 minutes, it’s often way better to talk about one very specific interesting thing that you know about (for instance his hilarious + very instructive talk about how planning Elmo’s World video releases is NP-complete).

Get some feedback on your talk

Once my partner said to me “oh, I didn’t realize how much work you put into your talks – on stage you look like you’re just hanging out, but actually you worry about them for weeks beforehand” and I was like “YES EXACTLY”.

I live in deathly fear of giving talks where my audience won’t learn what I want them to learn, so a few weeks beforehand I’m like OMG I NEED TO WRITE A DRAFT. OMG I NEED TO PRACTICE. Then I start harassing my partner to listen to me and tell me if I’m making sense. He is very patient.

here is a recipe I use for getting feedback:

  1. write a talk (or part of a talk)
  2. tell it to a person who is part of my target audience. ask them what they learned, and what didn’t make sense to them
  3. if they can’t come up with anything they learned, I need to work harder.

Sometimes my feedback-ees are nice and they are like “yeah it was cool but i didn’t learn anything” and I’m like NO IT IS NOT COOL IF YOU DO NOT LEARN ANYTHING. Then sometimes they tell me things they would like to have learned and things they didn’t feel they needed and it’s the best.

One thing that’s great about this is that even if you get just one person to listen to your talk and tell you honestly what they thought, it can make a big difference! Often I do a practice version and it’s like “yeah julia that part made no sense to me.” Then I can make it better!

Talk about something you didn’t build

Talks about how interesting & useful your company or product is are hard. This is just because people won’t really care about your thing as much as you do most of the time.

I’ve only seen a few really good examples of this. For instance, Paul Hildebrant gave a wonderful talk at PyCon last year about how Disney uses Python. It was 100% about how amazing Disney is and how cool it is to be at Disney, and it was also super interesting to see how they use Python. He had unusual examples, great visuals, and was a great presenter. A+ would listen to Disney propaganda again.

I gave a talk about some open source software I built once and honestly? It wasn’t a great talk. I had to explain why the thing I built was useful, instead of being able to focus on what would help the audience. Talking about someone else’s work is kinda magical because instead of discussing the small subset of software I’ve built, I get to pick from ALL THE SOFTWARE IN THE UNIVERSE. Amazing!

Also, when you talk about something you didn’t build, you’re automatically a lot more credible! For any piece of software I’m more likely to believe a glowing review from someone who is not its author.

★ How do you push your audience’s knowledge? ★

This is where it gets super exciting. If you can make sure your talk is understandable, then this is a superpower you can use to EXPLAIN AWESOME STUFF TO YOUR AUDIENCE THAT THEY DIDN’T KNOW.

Aim your talk at beginners

One pretty straightforward way to push your audience’s knowledge is to find an audience of people who don’t know a lot about your topic yet.

At conferences like PyCon, more than half of the attendees have never been to PyCon before. There are lots of talks which pick a subject a ton of people are interested in (how to build a web scraper! how to refactor Python code! what’s HTTP?) and give a great introduction to the topic without assuming a ton of background. A+ great contribution to the community.

But, you can’t build a conference only out of beginner-level material! So next, we’re going to talk about building awesome non-beginner talks.

Make your talk work for both experts and beginners

Or, “Give a hard talk.”

Okay, but once we stop being beginners, we don’t need to stop needing to learn! We need to write talks for people who already know a thing or two about your topic, but want to know much more.

One of my favorite speakers is aphyr, who gives great distributed systems talks. When I started watching his talks (like Jepsen II: Linearizable Boogaloo), I knew approximately nothing about distributed systems, and I definitely didn’t understand most of what he said. But I could start picking out ideas like “ok he cares a lot about network partitions” and “huh this CAP theorem seems really important”. And now I know more and I can read through his analysis of Chronos and understand most of it.

It’s super important to be able to watch talks that are somewhat above your current level – they tell you what other concepts exist, and what people with more expertise think is important. So, give talks aimed at a more advanced audience! Please! But where you can, give a shout out to the more novice members of your audience so that they can understand what kinds of things are ahead of them.

I’d personally love to see conferences fish for more talks on advanced topics, to maintain the interest of people in their communities.

Here’s a few other examples:

Jessica Kerr spoke at Strange Loop 2 years ago on Concurrency options on the JVM. I didn’t understand most of this talk the first time I watched it! But I remembered it, and when I came back 2 years later after understanding some of the basics of JVM concurrency, it helped me out quite a bit.

This talk Data Center Computers: Modern Challenges in CPU Design is the 1-hour talk I love the most. He basically explains why he thinks server CPUs should be designed differently. You need to know about CPU caches and think about clock cycles. It’s really well presented and I loved watching it.

Dan Luu is going to be giving a talk at the next Strange Loop answering “How do you query 10PB of data in a fraction of a second?”. This is a difficult question involving distributed systems and details about the hardware they use. Web-scale search is hard! But I think this talk could be accessible to a ton of people on different levels, even while talking about how to advance the state of the art.

One thing I try to do when writing talks like this is to ask – “ok what if a freshman CS student was watching this talk? Would they understand anything”. And then usually I find things that they could understand by just tweaking the presentation a bit, without explaining every single concept from the ground up.

These talks I’m describing are dense talks that discuss hard material. I think sometimes conference organizers can shy away from these talks because, if executed badly, they can leave the whole audience lost. It’s riskier to try to explain how a huge distributed systems project works to a general audience than it is to, say, explain web scraping! But there’s a proportional reward! If you accept truly difficult talks by speakers who can make the content accessible to enough people, then I think you can end up with a conference that people love going to every year.

★ Ideas for conference organizers ★

So! You’re a conference organizer, and you’re looking for ideas for how to make the talks at your conference even more amazing?! I HAVE IDEAS. Some of them I’ve even tried!

To build the best conferences, you need to, at your core, make sure that your presenters can explain stuff in a way that’s understandable. This is hard because your presenters are probably mostly nerds like me with limited public speaking experience.

Some ideas for how to do this:

Have a track of lightning talks (5-10 minutes) for small cool ideas presenters have! Let presenters submit in advance and pick the most interesting-sounding ones! Many people can take a cool idea and 10 minutes and produce a great talk.

Require experience. This is cool because you can tell if the person already knows how to talk in an engaging way and teach something interesting. But if you’re trying to accept talks from first-time speakers (who can do great), this doesn’t totally work.

Pair up speakers and give them the chance (optionally!) to give their talks to each other 2 weeks before the conference. I think some people want to give great talks, but maybe always don’t manage to find someone to practice on. I just made this idea up but I want to try it out soon.

Write down fantastic talk ideas on your website. I could probably write abstracts for 15 talks I’d love to see. Probably you could too! But I do not have time to write 15 talks, obviously! So save your awesome potential speakers some time – tell them “hey we’d love a well-done talk explaining the Java garbage collection model and a few strategies for optimizing GC!” Maybe someone will come along and say “oh I know how to do that!!”. Or, better, “I have a better idea!”

Email people and tell them what you want them to talk about. People are terrible at figuring out what cool stuff they know. Awful. I often tell someone “hey you know this thing that is awesome” and they’re like “wait really? doesn’t everyone know that? are you sure???” Tell them you want to know what they love about embedded programming, and maybe they’ll tell you about this wonderful taking apart toys series.

Seek out people from other communities!!! Running a Python conference? Why just talk about Python? Invite someone who writes 0 Python but does a lot of devops work and can teach you how how to operate your Python code! Someone who writes embedded code for spacecraft to bring in new ideas about what well-tested code really could mean!

Borrow from academia. Academia isn’t known for always having the clearest presentations. The opposite, sometimes! But one thing I love about academic conferences is how focused they are on creating new things. And actually public speaking is a big part of their job! Maybe invite an academic and get them to talk about some research they love, that you think might be useful to your attendees!

In general, I don’t see a lot of institutional support for speakers by conferences. Basically you submit a talk, they accept it if they think it sounds cool, you show up, and you give the talk. This is definitely because it’s a huge amount of work, and conference organizers have basically no extra time anyway. But I think some speakers would like a little more help, and I’d like to figure out ways that help that are not too much work. If you have more ideas (or more resources you love on how to give better talks!!), I’d love to hear them.

Thanks to Lindsey Kuper, Mark Dominus, Kamal Marhubi, Dan Luu, John Hergenroeder, Diego Berrocal, and Waldemar Quevado for commenting on this

Learning to like design documents A useful new strace feature