In Spring 2018 I made the decision to go a bit Carpe Diem and submit a Call for Papers (CfP) on two of my favourite technologies, Xamarin and Cognitive Services, to ProgNet 2018 in London . This is a big .NET conference organised by Skill's Matter who's CTO is none other than the legendary Dylan Beattie. He is a well known face in the .NET speaking circuit, speaking regularly around the world and organising the London .NET User Group.
Dylan is the reason I submitted a CfP for ProgNet. He kindly put out an offer on Twitter that he would happily review and provide feedback on any talk submissions people had. I thought this offer was too good to turn down so not only did I take him up on it, I submitted to ProgNet and here we are! I never thought I would be accepted so submitting a tech talk I hadn't written yet that was longer than I had ever given was probably a bit ambitious. But it paid off!
I decided I needed a warm up act with a slightly smaller and less formal audience so I chose my local .Net user group here in Manchester, DotNetNorth. I am good friends with the organisers and know first hand what a friendly crowd you get at the meetups. So I reached out to them and requested a slot and they were happy to offer me a space for their August 2018 meeting!
Now at this stage, the talk was still just an idea in my head. I knew I wanted to do an intro to Xamarin and other cool features like Cognitive Services but that is as far as I got. For a long time I had been considering an app that made use of the FaceAPI available in Cognitive Services so this talk was a reason to get on with it.
I had about 2 months from agreeing to speak at DotNetNorth to the actual date so I made a start planning rough slides in my head and taking a look at the code samples. But I must confess things got a bit busy and I was guilty of procrastinating a lot. But once I was just a few weeks away I started to put some real work in. I not only started the main features of my samples but also found an appropriate theme for my slides (rainbow all the way!) and began to write stuff on those slides.
I would be lying if I said it was easy putting this talk together. Some parts were easier than others. But I was making a more advanced code sample that involves numerous third party plugins including Cognitive Services so there was a lot of documentation to read and code to write. As the deadline drew nearer and my lack of code experience showed, my Imposter Syndrome started to kick in but I was determined to get this done. Logically in my head I know I love Xamarin and I know plenty to cover a 45 minute talk.
But one of the big things I was reminded of while putting it all together was community. Numerous people offered guidance when I was working on this talk. Whether that was related to code or practicing the actual talk on them. Whenever I reached out to people on Twitter, I was always met with numerous people willing to help. Even the great James Montemagno himself helped as soon as I asked as I was struggling with his plugin. Our community is full of amazing people who just want to help so never forget to reach out when you need help, you will be surprised what you discover!
Overall, it probably took about 8-12hrs of work over a few days to put together the slides and the code samples and organise my thoughts in a coherent way to actually present. I was initially worried 45 minutes would be too long but once I started giving the talk to myself at home I realised 45 minute flies by because there is so much to say.
The amazing thing though is that this talk is something I have been asked to give a handful of times in the next few months at various user groups around the country so now I have a talk under my belt I can use again. It even makes me want to write another talk so I have a choice of what to present, how indulgent!
Preparing a talk takes a lot more hours than the length of the talk but once I had a decent slide deck and working code samples, I found myself feeling much calmer and really proud of myself. I can do this!
The talk at DotNetNorth went really well. Everyone was really complimentary and supportive and nothing major went wrong. Using Powerpoint in mirrored seem to cause my cursor to dissapear when I switched to a different application which was annoying but I got through the talk and even managed to code a counter app live without any issue! I definitely learned a lot about giving long tech talks and I look forward to polishing the talk even more ahead of ProgNet in September!
I do however want to take a minute to list some of the useful tidbits I have learned from doing this. If nothing else from this post sticks, try and remember these if you ever give a talk:
- Zoom is your friend - Both MacOS and Windows have zoom available as part of accessibility. It will zoom in much closer and follow the cursor which is great for people further away.
- Set the font size in your IDE of choice to something much larger if you are going to code live.
- Auto-hide the dock/toolbar and any menu bars to give maximum screen space. This includes bookmark bars in your browser.
- Close any applications you do not need open.
- Set all devices that will be shown on screen such as laptop and mobile to do-not-disturb mode.
- NEVER upload or show your API keys as they could easily be abused. Instead put them in a constants file and follow this blog post to learn how to avoid accidentally pushing it to code repository but still upload the first version so people trying your code at home know what to change.
- If you are doing an intro to Xamarin stuff, set up multi-platform deploy in your run configurations. If you create a new run configuration for the project you can target all available platforms such as iOS and Android which means when running with this configuration it deploys to both, awesome if you want to show how cross-platform it is!
- Remember to swap between mirroring the display and extending it depending on what is happening during the talk. If you do this, also make sure you set it up beforehand to be optimised for the projector on both. You don't want to waste time changing settings!
- If using a Mac, stick to Keynote as Powerpoint can often make your cursor disappear.
- Take a deep breath and most of all, have fun!!
Live coding isn't so scary when you stick to a simple example!