Public Speaking – Vici

Now that you’ve conquered the stage, you have the jokes ready, and you’re comfortable with the speaking experience, it’s time to look at the world of conferences. I’ve been doing them for many years, and there’s a lot of good in there. There can also be a darker side to conferences. How do you get the most of them and steer away from trouble?


To get in the conference circuit, you need to submit your talk proposals. The process goes something like this. A conference has a bunch of chairs for various tracks they want to organise, and once they’re ready to fill-in their schedule, they open a call-for-paper.

The first important bit, and one I’m notoriously terrible at, is to not miss the CFP. There are however two very good resources now available to make sure you’re aware of those pesky timelines. The first one is, which references a whole bunch of CFPs. The other is the weekly CFP, a weekly email that does include those details.

Ideally, if you want to submit regularly, go check both once a week, and make your selection of which conference you want to attend. But what to submit?

Conference-Driven Creation

When I started, most of the talks I submitted were not written yet, just an idea in my mind of what the talk would be about.

Your mileage may vary, but that lead for me to many unprepared and unfinished talks. It also resulted in a huge amount of stress when, after procrastinating for too long, I was left with building a talk a few days to a few hours before my session. As I mentioned before, being composed when giving a talk is key, and running only on adrenaline and anxiety is not the best way to achieve that.

I now have a simple rule: I only submit talks for which I’ve done an outline that can stand on its own, should I fail to do any further work on it. That allows me to submit in the confidence that I won’t be stressing at all, and that any further work on slides and content is purely added bonus.

Being refused

Unfortunately, there are more speakers than slots. As I grew as a speaker, I have abandoned the generic tutorial topics that don’t relate to my experience, and I’ve focused on my areas of discovery and expertise. Unfortunately there are only a few of those, and a conference wants a varied set of topics, more popular speakers in your area will often get selected, sometimes with competing technologies to what you’re demoing.

It can be frustrating, but don’t give up. I’ve learnt that it does not take someone losing for you to win. There’s plenty of space for all of us, celebrate the talks that another speaker gave, as anything that helps grow the reach of the topic is something that will open more space for you to get the gig. If you see it as a competition, you‘re screwed, its unhealthy.

Being accepted

When you’re accepted, it’s up to you to decide if you market your talk online or not. But what is important is to have enough pointers and reference materials available for attendees to refer to after your talk. I’ve now decided that part of building a talk is also to always have a serial of blog posts that cover some of those topics. It helps attendees, and it helps those that could not attend. Writing posts from talks and talks from posts is a great way to verify if your storyline works. Everyone wins.

Note that those are my new year’s resolution, I’ll let you know in a year if that worked out :)

Travel and getting there

Conferences are not all created equal. Some, like Oredev and NDC, are beautifully organised, and you won’t have to think too much about preparing the trip. Others can be more unprepared, so it’s better to not get caught by a few things.

Don’t travel with just enough time to arrive for your talk. I once had a tube accident and broke two toes, and couldn’t get to my plane, had no battery, and through two-factor authentication had no way of contacting anyone. I did a no-show, no one knew where I was. This is in very poor form. Had I planned to travel in the early morning, or the night before, I would have had an alternative itinerary to get to my destination.

Don’t underestimate travel times, airports come in all location and shapes, be prepared. Know in advance of the trip how to get from the airport to the hotel, from the hotel to the conference, and back. If you rely on public transports, make sure you check what kind of ticket you need and what price it is, that’ll save you time and embarrassment at the airport. If you rely on taxis, learn the local requirements to not get ripped off or pay huge costs. Vilnius has notoriously dishonest taxis, you should never get one out of the station, they charge you 50 euros, when the travel is normally 10. And in Norway, as I think Glen Block once discovered, you just don’t take a cab unless you’re royalty, it’s too expensive.

Hanging out

A big part of conferences, probably the most important to me, is the socialising and networking with other speakers and with attendees.

There is a huge risk, after you’ve been hanging out in conferences for a long time, to take it as a summer camp, where you see your other speaker friends you’ve not seen for a long time, at the exclusion of anyone else. And if that’s what you want to do that is your right.

I want to be available to attendees, so I make sure I’m reachable easily, for example by sitting on the tables close to food for the afternoon rather than attend talks. I also try to avoid being in the speaker room if I don’t need the quiet for preparing for a talk. It’s hard sometimes, because some speaker areas are damn comfortable, and conferences sometimes fail to provide the equivalent space in the public areas.

But that’s a personal choice. Some speakers come, give their talks, and enjoy the rest of their time with their friends, and I understand that.

Mean girls?

There are many amazing speakers out there. A small minority can be very cliquey, and it can be challenging to deal with. Many a night in strip clubs have been had, others have a thing for beer, others for whiskey. This tends to create small groups that disband from the conference with a bunch of other speakers and their admirers.

If you’re a new speaker on the scene, your first reaction may be to tag along and enjoy people’s company, even if that puts you in situations you’re not fond of, or damn right feel uncomfortable about. You don’t have to, people that care about others will alter their plans or make new plans to spend time with you. If they don’t, it’s their problem, go find someone else, there are many good people out there.

That small minority is usually made of lovely people in certain environments, and that is where you should enjoy their company. For your own protection, let them go where they want to go, don’t submit to a schedule you’re not comfortable with. When you stop, and stay behind, you may well find, as I did, a whole bunch of people that want something else too, and you’ll have a much better time.

Code of conducts

This is a sensitive subject, but one close to my heart and my experience with conferences. Some people don’t give a damn about those. They come for a talk, and everything outside of that is not their problem. On the other hand, most code of conducts are not transparent and fair processes.

Conferences, as commercial entities, have to protect themselves and their brand, and not necessarily you. Some code of conducts are a way for a conference to protect its interests in the face of inappropriate behaviour, and that is perfectly normal, to an extent.

Far and few are conferences that prevent dangerous behaviours rather than protect themselves from their effects. Even fewer have a moral contract, let alone a written one, with you as a speaker, to give you due diligence. When faced with a problem, there are few incentives for them to understand the circumstances in which a problem happened, it’s easier to apply the code of conduct blindly. Why bother asking for a drug test if a speaker has been spiked, when they can blame alcohol and throw them out quietly, just as some of the organisers get trashed at the open bar? Why respond to various reports of inappropriate sexual behaviours, or psychological bullying, when you have no one on the floor to check on people and be there for attendees and speakers that may feel distressed?

So you have to protect yourself, because some conferences won’t. And because the rule is that we don’t talk about the rule, you won’t know what conferences are damn right dangerous and which ones promote a healthier environment. Check the schedule, and read the code-of-conduct they provide before submitting.

Keep your drinks protected at all times, don’t accept drinks from strangers, keep a phone number of someone in case you face inappropriate behaviour, and try not to be alone in any group. If the conference is irresponsible enough to organise open bars with no food and no sober organiser, eat first, or don’t go, or don’t stay late. There’s always a hotel bar to go hang out in a less charged environment. And make sure that there are sober organisers at the events you attend.

Note: if you’re in the majority of entitled middle-class straight men that have never seen or heard of a problem in any conference, or worse, you consider it to be all bullshit because you do what you want and no one ever stopped you, those tips are not for you.

When is inappropriate behaviour an issue?

In one word, always. The problem is, if you’re hanging out with a group of speakers or attendees, at an event outside of the conference, and you hear comments glorifying rape or making fun of gay people, what do you do? Do you leave, do you take on the comments and get involved? Not everyone is comfortable doing so, and the experience can be distressing to many. And then people wonder why there is little diversity in IT.

Frankly, I don’t know what I think about this. Balancing the right for people to hang out separately from the conference and the right for people to hang out with others free of oppressive behaviours is a challenge, and I just don’t feel that many conferences have found the ideal way to do this.

I’ve not cristalised a good answer in my mind yet, so don’t hesitate to give your two cents in the comments section, to keep the conversation going.

The cost of conferences

There is often a lot of pressure to deliver content to a certain level of quality, because that’s what attendees expect from a conference they pay for. And if we, in turn, were being paid, it would be a job, and it would be acceptable to put those expectations on us.

Some conferences have the nerves of not even allowing you in the conference when you’re a speaker, and offer you a rebate on a ticket. Some conferences don’t cover anything, some will cover your hotel but not your travel, some cover everything.

That said, you’re still out of your pocket if you do it without the backing of a business. And this can be a bit problematic, for attendees expect more than we can give them.

That’s where my distaste for leaderboards come from. If you use the rating to put speakers versus one another, you validate and promote the celebrity culture that favours unduly people with corporate backing.

So here is what I apply. If it’s a non-profit, I’ll cover the costs myself, unless something is already part of the sponsorship the conference has. If it’s for profit, I’ll go if all costs are covered, unless I have another reason to be in the location where your conference is. Everything else, I just don’t submit.

Conferences that do not cover any cost will by nature have less diversity in their speaker rota. It’s hard to find enough local speakers to fill all the tracks, and when you don’t cover costs, you privilege people that have a commercial interest in the game.

We should remember that some speakers do this for the pleasure of sharing knowledge. Don’t expect the same polished delivery from someone without backing that pays with his time to come, as you would from someone selling attendees their latest company’s product.


Conferences are amazing. There are lots of them. Chose, make the most of them, go meet amazing people, and stay away from trouble. That’s what I wished I had learnt earlier.


Rebuilding – Comments

With all my prose migrated, it was only fair to try and migrate yours!

When migrated over to wordpress, I moved over to disqus. One less thing to do, and anything reducing spam was a good thing.

Adding disqus to the new site

As the Minimal Mistakes theme comes with disqus support, it’s only a matter of editing your config.yml to use your disqus shortname (which, for some unexplained reason, on my blog, was called codebetterblog, which is going to be very confusing I’m sure).

  disqus-shortname: codebetterblog

Migrating the wordpress entries

The next step is to tell disqus that I moved the entries from the codebetter blog to their new URIs. For this we need a mapping between old and new, in CSV no-less, because there is no way I’d do that manually.

Remember how in the previous part I used the tools to migrate the entries to jekyll? One cool side-effect of using those scripts is an extra header added just for WordPress blog. For example, the header for my perenial post on Vertical Slice Technologies contains this jekyll front matter.

comments: true
date: 2013-07-11 08:54:32+00:00
layout: post
slug: unit-testing-is-out-vertical-slice-testing-is-in
title: Unit testing is out, Vertical Slice Testing is in
wordpress_id: 169

When I migrated, I elected to keep the new blog entires in the /year/month/slug/ format, which codebetter was already using, so to generate the csv, I put the following code in a file in my site and left jekyll to do the hard work.

{%for post in site.posts %}{% if post.wordpress_id %}{{post.url | remove: "/blog/" }},{{post.url}}{%endif%}

Upload to disqus, and we’re done. I’ve also enabled the option in disqus to only allow comments from, to make sure no one accidently revived the old post comments.


Rebuilding – Serials

You may have noticed a list of other blog entries in this serial just above (provided I don’t update the design again).

One thing I wanted to do was to automatically group posts together that are part of one story arc. I call those serials.

To do that, each of the posts in a serial have an additional instruction in the front-matter metadata.

title: Rebuilding – Supporting Serials
serial: rebuilding-serialseb-com

One of the powerful features of Liquid Templates is its capacity to use extended metadata you define in each post, and make it available at templating time.

For the list of entries in the serial, i created a new include file in _includes/serial/toc.html, that creates the master list of all posts part of a serial.

First, it’s included in the template for a blog post, somewhere in _layouts/post.html.

{%include serial/toc.html post=page %}

Here, i assign the post variable to the page object, so I can reuse the same TOC be it that I’m in a page or enumerating over posts.

{%if %}

{% assign postsInSerial = site.posts | where: "serial", | reverse %}
Part of a serial:
{% for post in postsInSerial %}
{%assign cutoffTitle = post.title %}
    {%if post.url ==}<b>{{cutoffTitle}}{%endif%}</b>
    {%if post.url !=}<a href="{{post.url}}">{{cutoffTitle}}</a>{%endif%}

Filters like sort, reverse and where are used to filter out from the post collections, but they only work if you assign the filtered list to a new variable. If you try it in the for it just doesn’t work. That’s 12 hours lost right there!