Last weekend, I attended PyCon AU 2019. This was my second time at PyCon AU and my third time attending any tech conference... but it was also my first time speaking at one! I'm leaving this blog post here as a note to future self, but also to anybody else who is interesting in how it happened.

But first, if you want to actually watch my talk, the video is below:

My talk was recorded and published by the absolutely wonderful A/V team from Next Day Video, plus LCA volunteers. You can watch it by clicking the big 'Play' button above.

Early 2018: linux.conf.au

To be honest, it all started with the advertising for LCA 2018. I follow Asher Wolf who was (re-)tweeting a bunch of LCA-related content. I basically thought "hmm, a tech conference in Sydney, maybe I should go" and then got really drawn in when it was revealed that Jess Frazelle would be a keynote speaker.

My company, which was primarily Windows-centric and fairly insular, was starting to slowly eye open-source technology and I thought that community engagement would be beneficial. Somehow I managed to convince the CTO and CEO to send me (i.e. cover the cost and not make me take leave for it), and I learned quite a lot of stuff and made some great connections.

It was at LCA that I quickly realised two things:

  1. The community was incredibly warm and close-knit, and
  2. Speakers weren't some amazingly out-of-reach brilliant people put up on a pedestal, they were just normal people with things to share.

At LCA, I also attended E. Dunham's talk You Should Speak (below), which covered a whole heap of stuff about how to present and how the Call For Papers (CFP) process worked.

E. Dunham at #lca2018 telling people that they should speak. So, I did.

I think the most valuable insight I got out of it was that you don't have to write your (whole) talk before submitting a CFP. You can lazy-load it and write it in the time between when your talk is accepted (if it is) and when the conference starts. This also means that if you get rejected, you haven't wasted a bunch of time preparing a talk you won't be giving - at that particular conference, anyhow.

It was also at LCA that I first met Jack, who would later help me through the PyCon submission process.

Mid-2018: PyCon AU

Later that year, I saw a bunch of twitter on... well, Twitter, about a Python conference in Sydney.

To be honest, I don't specifically remember a huge amount of last year's PyCon, other than it was brilliant, informative, and even friendlier than LCA was. Once again, I got to see many people speak - some of whom I knew, some who I didn't - but they were all just normal, nice people.

Late 2018 / Early 2019: Hacking on DDL

In November of 2018, my suburb was added to the NSW Digital Drivers Licence Trial.

As I was hacking on it, and communicating my findings back to Service NSW that it was all horribly broken by design, I slowly realised that this was stuff that other people would probably also find quite interesting.

And so, I started putting notes aside to be able to present this as a talk, and keeping copies of Service NSW and RMS documentation to be able to use in a hypothetical future talk.

I was originally thinking of submitting to LCA 2020 (my Android Keystore password for the project was even "lca2020"), but after thinking it over a bit I thought PyCon might be a better place to start - and also, it was sooner, which meant I had a higher chance of being able to present it before it was long-fixed and yesterday's news.

Early 2019: PyCon AU CFP

When the CFP rolled around in April, I was absolutely astounded to see that PyCon was offering "speaker mentors" -  people who would help presenters, including those who had never done it before, prepare a submission and their talk. I reached out to one - Jack, who I had first met at LCA (above), and he helped me assemble a proposal.

Jack also suggested that I probably shouldn't focusing on all the technical bits of breaking the drivers licence system. People would probably be more interested in the general view of what it is and how it works, rather than just a talk on reverse-engineering it and how the hack worked.

Looking back on it now, that advice was key to putting my presentation together, and those parts seemed to resonate most with the audience. It was also much less likely to land me in trouble with the state government and/or police, because they would likely be quite unimpressed with me showing the world exactly how to build a fake digital licence.

(Even though during the trial period the trial licence has no legal effect as a digital licence, and there's no law against building a fake not-a-licence, I didn't want to have to argue that in front of a court.)

To be honest, once I submitted my proposal, I was absolutely terrified. There were only three possible outcomes for the whole process:

  1. I don't submit. I have no chance of presenting, and will likely just end up disappointed with myself, wondering what could have been.
  2. I submit and get rejected. I'm either not good enough, or picked the wrong audience for my content. Either way, I can still attend the conference and enjoy everyone else's talks.
  3. I submit and get accepted. The papers committee like my proposal and think that what I have to say is valuable. This is reassuring, but really scary.

Spoiler alert, I submitted and was accepted. Reading the tweets like this from the official PyCon Australia account only made me more and more nervous:

The PyCon Australia team conveying on Twitter that selecting talks was a challenge because there were so many good ones. Somehow, that included my one.

So, now that I was accepted, I had to actually build my talk.

Mid-2019: Assembling my talk

This bit was incredibly difficult.

I truly understand now what writers mean when they talk about doing anything to avoid writing - washing dishes, laundry, whatever. It took all the self-control I could muster to work on my talk and not clean my bedroom, throw out old clothes, or literally anything else on my to-do list.

It was also quite difficult to actually organize my thoughts into a story, into something that flowed, instead of jumping around all over the place. Hacking a government app and reprogramming it was child's play compared to getting my brain to output knowledge into a format that could be easily understood by other humans.

My first draft was about 4 minutes of content, all over the place, and just didn't flow well. It was only about one section of five that I had to cover in order to say what I wanted to say and deliver on the promises of the talk abstract that I had submitted.

I had to speak for 30, and so far I had 4 that was very not good. Uh-oh.

I threw it all out and started again with a second draft. I had this great idea that someone would introduce me by reading my bio from the PyCon AU website, as they did for every talk last year, and then I could start by going "... or am I? Dun dun duuuun" and start by discussing the need to know who people are and what information is trustworthy and authoritative. Thank goodness that I didn't end up using that, because in the end the track organizer skipped the introduction. 😅

This time I actually had a list of bullet points that would make for good talk material, but they still weren't in an order that actually flowed and made sense. It was still higgledy-piggledy.

For the third draft, I had this great idea that basically came to me in a dream. I am very obviously Jewish, and I have often heard that you should open a speech with either a joke or a story, to warm up the crowd. I figured I could combine all three of these, and start with a particular old Jewish folk tale that ends with a joke. It could also serve as an introduction into the "but am I" twist, which I desperately wanted to keep. I managed to make it about halfway through the talk in terms of expanding bullet points into full-blown content, and I had something kind of resembling a talk, but the entire "Identity and Authentication" section, the first main section of content, just didn't flow right.

So once again, I started over. And for the fourth draft, I made a commitment to at least write something for every bullet point and have a complete, if imperfect speech. This was really my first full draft, with something concrete to say for each point that I wanted to make. I read it out loud. It flowed. I read it out loud again with a stopwatch, and put markers at each section. It was about 30 minutes long, and each section was roughly how long I wanted it to be.

After four drafts, I finally had the beginnings of my talk.

It was at this point that I started to put slides together. That's right - for four drafts I had words, but no slides. Now I started adding images, assembling title slides, taking screenshots of the app, tearing my draft down into bite-sized points for the Presenter Notes view, and of course, adding transition animations.

And then came rehearsing. I must have rehearsed the full talk at least four times by myself before using my parents as an audience, then a couple of my work colleagues, then my parents again, and then rehearsing by myself a few more times. By the time I got onstage at PyCon, I must have gone through the whole thing about 8-10 times start-to-end, plus a few more times for individual sections.

The hardest thing I had to do during that time was cut things out, and make sure my points got across. Every time I presented there was at least one or two points that the audience didn't quite understand and I had to figure out how to simplify it and make myself clearer, without spending significantly more time on that point.

August 2019: PyCon AU

Oh geez.

My talk was scheduled for the first day of the conference. It was the second talk of the day. I would be speaking in the biggest room that PyCon had to offer, which meant the biggest track audience the organizers expected.

I was terrified.

Years ago, when I first got my Opal card for public transport, I noticed that it said "ADULT" in the corner, and I thought "well that's it, I guess I'm an adult now." That's the same way I felt about telling the conference registration staff that I was a speaker, and getting a little red "Speaker" ribbon to stick onto my badge.

This was real. I guess I'm a speaker now.

I had a lot of support and reassurance from just about everyone I spoke to, but nonetheless I sat through the first talk of the morning fairly intimidated by the lineup. The first speaker was clearly experienced. He had a massive prop. He had a great sense of humour. The speaker following me was fairly well-known, and I'd seen him popping up on Twitter a lot. How would the audience take to me?

Towards the end of the morning break which preceded my talk, I made my way up to stage. I talked with the track organizers, went over the basic arrangements, and worked with the A/V team to get mic'ed up and plug in my laptop.

I was also having slight trouble with my Asthma, so I took some Ventolin... which has a side-effect of increasing your heart rate. Combined with my nerves, I was visibly shaking. I could not keep my arm still no matter how hard I tried.

And then, it was time. The audience filled in from morning break. One of the organizers "introduced" me, and then it was all eyes on me.

All eyes on me.

Yikes.

Since the organizers didn't give me a standard introduction, I had to start by ad-libbing a not-an-intro, and then went into my opening. I was still very nervous, but all of practice started kicking in, and I got through my opening story/joke combo. The audience laughed. They got the joke. The room was immediately full of energy, and I managed to continue my way through the rest of the talk, including serious stuff, a few jokes, and then the organizers closing off my session so the next speaker could talk.

I was so relieved. I had done the thing. I could relax now. What I was definitely unprepared for though was the feedback.

I had people coming up to me afterwards who not only liked my talk, but they liked it so much they felt that they had to come and tell me! I had a couple people ask me to submit my talks to other conferences and meetups. Some people couldn't believe this was my first conference talk, they said it was too good. The Papers Chair herself told me she had heard a lot of positive things and would have to watch the recording later. I had people complimenting me when I was trying to find a seat in another talk, or just walking in the hallways between rooms.

Somehow the video recording has been making it's way around the local community, and even a week later, I've been getting congratulations and feedback from (definitely non-PyCon) friends, family, and other people in the local Synagogue.

I was utterly blown away, and am still somewhat in shock.

Reflection

They say that there are always three versions of every talk:

  1. The version you plan on giving
  2. The version you actually deliver
  3. The version you should have done

I definitely went through (1) and (2) with minor differences. If I had to do it all again - which a lot of people seem to want me to - I would probably either tweak some of the timing and talk slower, or ask for a longer time slot and put back a bunch of the stuff that I had to cut out.

Another thing I would do is reach out to the conference or track organizers ahead of time and get their copy of the intro slide for my talk and use that in mine. There's this moment at the start that I'm not quite happy with where the A/V team cut from the organizers computer to mine, and you can clearly see the system swap from the conference-branded speaker slide to my individual, different one. I would love it if that moment was not there, and it seamlessly cut from their slide to my first real slide. I would probably need to make a tiny tweak so that myself and A/V can tell which computer is hooked up to the projectors at that time, but the audience shouldn't know a thing.

I'd also probably do a proper intro, a slide with contact details, and subtle not-in-your-face details throughout like a twitter handle or URL on each slide. I omitted all of that because I was worried that this talk could possibly blow up and land all over the news, but fortunately that hasn't happened.

One thing that this whole experience has definitely shown me, though, is how much I have grown in the last decade.

Almost 10 years ago, I started my course at university with a mandatory subject Communication for the IT Professional. At the time, I was quite disappointed because I wanted to learn programming and networking and all sorts of technical goodness, but I had to start off with writing reports and putting slides together and standing in front of the class talking to them. I was incredibly shy and just wanted to focus on deeply technical stuff.

Looking back on that time, I was a very different person than I am now. There is no way that that Yaakov could have gotten up in front of 100-200 people plus video cameras and explained concepts in a clear, concise, and straightforward manner.

One way or another, this is definitely a milestone in my life and career, and hopefully one that I will cherish going forwards.