Speaking week - mission accomplished

I challenged myself some time ago and decided that October 2014 will be the month when instead of just attending meetups and conferences I will become a speaker in as many events as possible. As a result this week I have been speaking at .NET Developer Days in Wrocław as well as Mobilization in Łódź. Those were my first ever conference speaking gigs. If I add that before those two events I also did a dry run of each talk (yeah, those were 2 totally different talks - F# and Ionic Framework), you will understand that the week has been totally bonkers for me.
It started on Monday when I invited all my teammates to a conference room in the morning where I delivered the beta version of my F# talk. They kindly agreed and were also full of constructive feedback afterwards (as usual). Their remarks were invaluable when I was refining the talk later that week, right before I was presenting it in Wrocław. Guys, huge thanks to all of you - senssei, mihcall, Biegal, Maciej and rafek. ScareCrew FTW!
Then came Tuesday, when I hosted a Brown Bag session at work in order to test drive my Ionic Framework presentation which I was preparing for Mobilization. A Brown Bag session is a talk that is delivered during lunch time, so that people can praticipate in it instead of going for a meal. To make sure they don't starve ABB (personalized by Iza - our awesome Office Manager) is kind enough to buy some really good food to accompany the session. This time the goodies were ordered from Kolory Wina and they were d-e-l-c-i-o-u-s! But I digress, let's get back to the point...
About 15 people came to listen about Ionic Framework. The talk went so-so. It took too much time. I was not prepared to show the code in any particular order resulting in a chaotic delivery. Thankfully my colleagues were quick to point out all those shortcomings to me and suggest improvements, most of which I took full advantage of at Mobilization. I was really stressed before this talk, probably beacause I knew I was not as well prepared as I could have been. Fortunately, the overall reception among my audience was positive, so it gave me a big boost for the latter part of the week. And I needed it, too. After all, I was about to make a debut as a conference speaker.
On Wednesday morning (well before 6AM - it's great that getting up early is becoming my habit) I drove to Stadium Wrocław for the first .NET developer day. I had deliberately asked the organizers to schedule my talk for the second day of the conference, so that I could familiarize myself with the venue and get a feel for the atmosphere during the first day. I attended a few sessions that day and the best one came last in the agenda - EdgeJS with rafek. I am sure he will be presenting it many more times at different occasions, so be sure to join if you have a chance!
After the sessions were over for the day the organizers invited us to an afterparty. I took this opportunity to talk with a few people, including Michał from Credit Suisse, who uses F# every day for modelling financial data and doing lots of other cool things. Getting to know the real-life scenarios where F# can be useful gave me a boost of confidence and prepped me for the inevitable questions during my session next day. I decided to leave the party early and headed back to the hotel in order to catch some high quality sleep before the big day.
On Thursday I got up quite early in order to refine my slides and code samples I had prepared for the talk. This is when all the feedback from my Monday's test run came in very handy. Around noon I have travelled back to the stadium and went straight to the speakers room, where I spent most of the time before my talk waiting, getting stressed, looking at my slides and code.
Finally, the time has come. On Thursday, 16th of October 2014 at precisely 3:55PM I took the conference mic in my hand for the first time ever. I was very stressed, but only for the first two minutes or so. Then I just went with the flow. This time I was prepared much better. I was on time and on topic. There were a few questions during the talk, so it was nice to know that even after 2 long days of conferencing what I had to say was interesting enough for some people to keep them awake. When leaving the room, attendees had a chance to evaluate my session by giving it a green, yellow or red card. I don't know yet what the results were. I am still waiting for the organizers to get back to me on that...
With the first gig done I was eagerly awaiting Mobilization. I stayed up quite late on Friday evening refining the code of my sample mobile app and triple-checking that all the demos are working. On Saturday morning I arrived at the venue at T-1 hour to check that my code is visible from every spot in the conference room and test the wearable microphone, which was a novelty for me. Thanks to all this prep I was ready to roll when my talk started at 9:10AM. At first I had to talk a bit about ABB, as we were the sponsors of the event and I had some swag to give away. With that out of the way I laid my Ionic enthusiasm on the crowd and it was well received. There were a lot of questions during the talk, so it seemed that people were really interested. A few participants approached me afterwards to discuss some technical aspects in more detail which was pretty awesome. During the talk I also noticed that more and more folks were coming to the room and at some point it was packed full. I estimate that the total head count on the audience was about 100. Not too shabby...

Now, the most important part - what did I learn from all this? First of all, it was worth adopting the point of view of Enrico Campidoglio, who explained to me during the DevDay afterparty that the audience is my friend and they want my talk to be good and interesting. With that in mind it is much easier to face them and develop a good relationship with the attendees during the presentation.
Secondly, it is very important to make sure you have all the technical aspects of your talk covered. It may sound trivial and obvious, but it is really easy to focus on the content of your speech and forget to make sure that:

  • everybody in the audience can see the code you're presenting (taking into account not only the font size, but also the color scheme of your text editor - it's best to set the text to black on white background),
  • not only the main code editor window is legible but also all other windows you're using (command line, logs, call stack, debugger, etc...),
  • there is no embarrassing stuff on your desktop or in your browser,
  • you are prepared for a flaky internet connection, or even complete lack thereof (always have an offline version ready if it is technically possible),
  • the type of microphone you will use at the venue will let you deliver your talk as planned (for example you might have too keep the mic in one hand and then live-coding will be difficult),
  • you've got some water to drink once your throat gets dry mid-talk (it's best to have it poured into a glass beforehand, so that you don't have to open the bottle every time you need a sip),
  • you have prepared a plan of your talk and you have it at hand during the talk (helpful when you are sidetracked, for example by a question from the audience),
  • you repeat each question from the audience so that it is included in the recording of the session (otherwise the people watching the video won't hear the question, just your response to it).

Armed with this knowledge I will find it much easier to prepare for upcoming public speaking occasions, first of which will take place on the 28th of October 2014 at a meet.js meetup in Łódź. See you there!