Advice for Technical Public Speaking: Part 1

Support this website by purchasing prints of my photographs! Check them out here.

SF Node Nov 2016
SF Node Nov 2016

Recently a few friends of mine have been asking me for speaking advice and I figured such advice would be useful for others as well. This post is going to cover a bunch of different areas on technical public speaking. Some of this advice is on the computer you’ll use to present with, some will be on the presentation deck itself, body language, crowd control, etc.

I’ve given dozens of talks throughout my career with 18 of them given in 2017 alone (I was doing a book tour that year for my third book, Advanced Microservices). I’ve been going to Meetups and conferences for several years, sometimes three a week, and I’ve certainly amassed opinions as an audience member as well.

If you have a longing to advance your career, have learned something really cool that you want to share with the world, or simply have a mean boss who’s making you give a talk, then this is the post for you.

Finding an Occasion

Before considering the talk itself you’ll need to first find a place to give the talk! Feel free to skip this section if you’ve already found a venue.


Speaking in your employers office is a great way to share relevant knowledge with your coworkers. It’s also a great way to get a smaller sample audience before attempting to speak at a Meetup or a Conference. You can usually let your boss know that there’s a topic you want to speak about in the company and they’ll pull some strings to make it happen. Some companies, like my previous employer OpenTable, has recurring lunch meetings where people give presentations. Another employer of mine, Quicken Loans, would host a recurring Toastmasters event. Ask around, and someone will point you in the right direction.

Meetup has taken the tech world by storm. There seems to be a Meetup for every popular technology and hobby one can imagine. For example, I frequent the SF Node, SF Redis, and the SF Microservices meetups. But of course, SF is a big city with a lot of computer programmers living in it, so there are a lot of highly specific meetups.

In smaller cities you’ll find more technology-generic meetups, such as the Ann Arbor New Tech meetup. Meetup pages usually have a link to a Google form, a GitHub issue, or an email address where you can propose to give a talk.


The best tool I’ve used for finding conferences to speak at is a site called PaperCall is a database of conferences looking for speakers. It also lets you create talks and then submit those talks to multiple conferences. This is nice because you don’t have to reformat the same talk for each different conference.

Unfortunately, most conference don’t use PaperCall (and I’ve only actually spoken at one event via this service). So you might have to take the old-fashioned approach: find relevant conferences using a search engine. Basically just search for a technology you’re interested in presenting, along with the word “conference”, and you should find a few places. Once you browse to their website you can usually find a “CFP” (Call for Papers or Call for Presenters) or a “Speakers” section of the site.

Note: You should never, ever, pay to speak at an event! This includes paying for a ticket for admission. Conferences make a profit from selling tickets, and people attend conferences to learn from the speakers, so don’t pay to speak. If you find a place which charges then it’s probably a scam. Some conferences, but not all, will reimburse travel and lodging costs. Once you’re famous you can even charge to speak, though I’ve never attempted this myself (It’s probably more likely to happen if you’re giving a keynote).

Choosing a Topic

There are two approaches to coming up with a topic to speak about. You can either plan on going to a particular event and then design the perfect talk for it, or you can think of something you’re knowledgeable and passionate about and design a talk around that without a specific event in mind. Both approaches are fine and I’ve done both. Keep in mind though that a talk designed for an event might be so specific that it wouldn’t make sense to use elsewhere.

Speaking of which, it’s completely fine to give the same talk at multiple events. Can you imagine if Britney Spears wrote a new song for every stadium she performed at? That would be insane! When giving the same talk multiple times just be careful that you don’t get overlap with the same audience members. For example, my talk on Async/Await that I gave in Argentina had a small chance of being seen by the same people when I gave it four months later at ForwardJS in San Francisco. Unfortunately, it had a very high chance of being seen again when I gave the talk three weeks later at SF Node, and I should have avoided giving it.

There are different formats of talks you can give and the subject you choose will need to fit the format. A Panel is when one person asks a question and a group of people discuss their opinions. These are usually pretty generic, such as “Node.js Security”, and don’t get too technical. A Workshop is when a person gives an interactive talk and the audience, aka “students”, interact. The humble Presentation is the most generic of talks where one presents to the audience, usually with time for Q&A at the end (though this is usually up to the speaker; some speakers like questions in the middle). A Keynote is a special kind of presentation, usually during a single-track time slot early on at a conference, so all conference attendees will see the talk. These are usually not too technical and don’t involve Q&A.

Know your Audience

If you’re going to speak at a Meetup then you should really try to attend a session before giving a talk. This will let you know the general technical skill level of the audience, what sort of questions they ask, the overall pacing, etc.

If you’re going to speak at a conference then try to find a few recordings of past talks given at the conference. Of course, conferences usually happen once a year, so the feedback cycle of first attending then giving a talk isn’t usually feasible.

When I’m giving a talk I like to first ask the audience a few questions about the topic to gauge their familiarity. For example, when I speak about the new Async and Await syntax in JavaScript, I’ll first ask if members of the audience use Promises (a building block of Async and Await) in production. If only a few members raise their hands then I’ll spend more time explaining promises when I get to that point.

If you’re giving a talk at a conference be sure to check out the schedule. Keep an eye out for any other talks covering similar content, especially if your talk comes after someone else’s. If it’s a single track conference then you’ll want to remove, or at least de-emphasis, content which overlaps a previous talk, as everyone who is seeing your talk also saw the other one. Also, whenever possible, make references to the previous talk. This helps keep the overall conference more cohesive and shows that you’re interested in the conference.

I once gave a talk at Waffle JS, a very casual and usually not-too-technical meetup in San Francisco. My talk was on pretty advanced concepts about the JavaScript event loop. The talk wasn’t too advanced for the individual audience members, in fact, some of the most advanced JavaScript programmers I know attend. However, it was definitely far too content heavy for a room full of people drinking beers and eating waffles to digest! This was a classic case of me not properly adapting a talk for a particular audience.

Deck Design

When designing your deck it’s important to use very high contrasting colors. Also don’t design the deck in a way that subtle color changes are required to understand the content (or, really, any color changes, for accessibility purposes). Basically, assume the projector you’re using has a broken tint setting and very poor contrast. The Waffle JS venue, for example, has two displays. The main projector is incapable of displaying the correct colors and has very bad contrast. Many presenters begin presenting, look to the screen, and say “oh no, the colors are all messed up!” The other screen is an LCD TV which someone hit with a football.

Also try to avoid Emoji, especially if there’s a chance that you may be presenting with a different laptop or if you plan on updating your OS between the time you write the presentation and when you present. Emoji render very differently in each OS, can change when updates occur, and with some fonts the emoji appear as single-color glyphs (e.g. they’re just a font character).

Avoid links to websites or embedded video. Your presentation should be able to work entirely offline. The WiFi provided at many events are often of bad quality, especially when hundreds of audience members are streaming cat videos. Even if you load a website or video first and keep it in another tab a disaster could occur like accidentally refreshing the page. Also, anytime you leave the focus of your presentation deck, something bad could happen, such as the presentation software crashing. Fumbling with the PowerPoint UI and trying to click the fullscreen button is also quite distracting.

When designing your deck, consider what your Call to Action (CTA) is. For example, do you want to get more Twitter followers? If so, keep your Twitter handle visible in the corner of every screen in your presentation. Audience members are frequently taking pictures of talks, quoting the speaker, and posting them and tagging the event. If your twitter handle is visible in the pictures then the odds of someone tagging you and following you are much higher.

If you have a more complex CTA, like selling a book or linking to your company website, then put that CTA on both the intro slide and the outro slide. Those two slides will be visible for the longest. For example, between events at a conference, there are usually several minutes of downtime at the start of a talk for people to switch rooms. If someone arrives early and your intro slide has a CTA, then they can check it out. During Q&A, or if an emcee gives you an outro, you’re most likely going to show your final outro slide during this time. This is also more time for your CTA to be visible.

Thomas Hunter II Avatar

Thomas has contributed to dozens of enterprise Node.js services and has worked for a company dedicated to securing Node.js. He has spoken at several conferences on Node.js and JavaScript and is an O'Reilly published author.