How I was preparing for my talk at Flutter Vikings in August 2022, with a few possibly reusable tips

Hey! 👋 I’m Anna (Domashych) Leushchenko 👩‍💻💙📱🇺🇦, the speaker at the upcoming Flutter Vikings conference, which is going to take place on Aug 31 — Sep 1 in Oslo, Norway, and online. The online stream is free, so if you are interested in growing your Flutter expertise but are hesitant about the price of in-person attendance or are terrified by the possibility of talking to people, here is the link to grab your free ticket.

Giving a talk, especially at a conference of such a scale as Flutter Vikings, is a big deal. It is the biggest Flutter conference in Europe, with expected online attendance by thousands of people. Despite my broad technical expertise, as I am not a professional speaker, nor do I have any special training in psychology or eloquence, preparing and giving a talk in front of such an audience is a challenging matter. So I thought I’d share what it takes me to prepare a quality technical talk, what my struggles are, and the tricks that I use to make this stressful process a pleasant journey. Hopefully, it is helpful and inspirational.

I know for many, looking for a topic to speak about is the most challenging and painful process. I feel you, I’ve been there as well. However, preparing for the conference does not stop there; it’s rather a start. It can take months of creative agony, redoing things as the vision changes, and making updates due to the fast-paced environment. Sometimes, when I receive a “Congrats, your talk has been accepted” message, the first thought is: “Oh my! Why couldn’t I just pass by this opportunity?!”.

Passion

Why do I do this to myself?

It’s clear that preparing and giving a talk at a conference is a stressful and challenging experience. And speakers must have strong reasons for willing to go through this process.

Hopefully, by the time you see the “congrats, your talk has been accepted” message in your inbox, you have already clarified your “why”. It’s important you do, because that is the thing that will motivate and fulfill you throughout this journey.

Preparing technical content to speak about at a conference or to write about in a blog for me pays off with professional growth, hard and soft skills improvement, and also community recognition. Let’s be honest, the last one is pretty attractive to gain.

I also want to see more quality Flutter projects out there. Quite often, when reviewing a long-living Flutter project, I found a codebase with, to say it nicely, “interesting” custom-made decisions, which become hard to maintain with the project growth. So I want to reach out to more developers and spread the knowledge about good practices based on the experience.

Preparation time

How long does it take me to prepare for the conference talk?

When I was only starting this activity, my first talk took about two months to prepare. It was a live coding session on the topic of code generation. In fact, I was using the API from the same authors I will use this time. It was showing the list of the upcoming space mission launches. Now that I have gained experience in this field, it takes about 3–4 weeks to prepare. That’s why I am usually very surprised when contacted about speaking opportunities days away: how on Earth am I supposed to accept the invitation if it takes me weeks to prepare for a quality talk?

But even before the count-down starts, there is an ongoing process of forming a talk vision. Is it going to be live coding? Am I going to have slides? What will be the tone and the key message of my talk? What data I will use? I typically already have at least a slight idea about each of these when I start actually doing things.

One lesson I learned over time:

When it comes to preparing for the conference talk, time flies faster than you would expect. I am not saying, “the earlier you start, the better”, nope. You should be mindful about the time you give yourself to prepare and not leave it to the last moment.

Ask necessary questions to yourself and let them sink in your brain. They need to be processed in the background of your mind for some time.

The same, by the way, applies to the struggle of finding a good topic for the talk. It seems like a very difficult task initially, but when you constantly ask yourself questions like “what can I share, that would be interesting for a wide audience?” your brain is processing them in the background, and answers will start popping up over time.

This time I started preparing about mid-July because I actually have 1.5 talks to deliver: one by myself and one with my beloved husband, Oleksandr Leushchenko.

Motivation

How do I get to enjoy the preparation process?

You may think, “I’ll start preparing these weekends”. But when the time comes, you may not be in the mood, you need to rest from the week of hard work, and you have more seductive things to do. I feel this too. That’s where your “why” comes along. We are not robots, and decisions about what to do next are largely based on the emotions this activity promises. It’s not “sexy” for our brain to work on the presentation. Unless it’s full of memes, of course.

To keep being inspired by the upcoming public speaking experience throughout the preparation process, in your mind, “paint” the activities you need to do with the “colors” of emotions you will feel right after you give that talk. It will keep your motivation charged.

What will you feel right after you give the talk? Will you be proud? Will you have a sense of accomplishment? Recognition? Conscientiously connect these feelings with the steps you need to take to get there. Once you do, you won’t be even waiting for weekends to arrive to make small increments in your preparation progress.

Though, I must warn you here not to overdo this. When preparing for my first talk at Flutter Vikings Trash talk: WHENs and HOWs of Dart VM’s GC, I felt so excited about speaking on such advanced stuff I was really overwhelmed. Not to mention the mental load of exploring the actual topic of the talk. So I had to do the opposite exercise and consciously “detach” emotions from the process to be able to focus.

I also make myself pleasant gifts as a reward for a well-done job after the event is over. Something that I don’t necessarily need but that I will enjoy. It’s important to keep that connection to positive emotions. My last gift to myself was a lovely fashionable hand-made bag you’ll see me wearing at the conference. This time it’ll probably be the ticket for the Web Summit in Lisbon.

Starting point

Where do I usually start?

There are different things one can start with. My husband, for example, an experienced speaker, will create a mind-map with the talk structure. Someone may start with picking a fancy template for their slides. I guess it depends on what excites the speaker the most. That’s why I always start with the code.

Code is at the heart of most of my talks. So having this part done first helps clarify the talk structure and topic sequence. But honestly, I just love coding.

Remember about emotions driving our decisions, right? There must be something you love about your topic, your area of expertise, or the overall public speaking experience. Otherwise, why would you be doing it?

Start with the pleasant thing first. It’ll energize you for further journey. It’s basically free “drugs” for your brain.

This time was no exception for me. I started by creating a mobile application. Slides followed.

Storytelling

How do I keep the audience's attention?

They say we all are storytellers, and do it naturally since childhood. However, to be honest, this is the part I am still trying to figure out myself.

Great stories have a clear structure: beginning, middle, and end, with a narrow focus on the central message. It starts with an inciting incident, leads into rising action, builds to a climax, and ultimately settles into a satisfying resolution.

When giving a talk at a technical conference, because most of the times I have an application supporting my talk, I share a one code story: what it was initially, what challenges it faced, how it improved along the way, and how it ended up looking. Maybe not the most engaging one, but it has a clear structure, relationships between cause and effect, and brings the satisfaction of improvements in the end. While developing the demo, I just take notes about my steps and why they are required — and get the story's frame.

Secondary topic

How not to get bored?

I tend to pick practical technical topics where I can share my experience in implementing projects effectively and elegantly. Naturally, at the end of my coding journey, a real mobile application is created. It is, of course, possible to create an “example application” that uses an “example API” and displays an “example UI” with “example data”. But would it be really interesting for the audience? It’s obvious that applications have to have some purpose, and it is much more engaging to create a product that actually does something.

In addition to the primary topic of your talk, have a complementary entertaining non-tech topic that will keep the audience engaged. It can be something inspiring like space flight or scientific news, or something very practical like a to-do list or a game.

When creating my “example applications”, I often look for inspiration in this collective list of free APIs. I used Marvel Comics API to obtain a list of Marvel comics for my talk about Basic and advanced networking in Dart and Flutter, and Launch Library API by The Space Devs for a list of the upcoming space mission launches for Code less, deliver more, both found in that list. For Yet another localization approach in Flutter talk, I have used the schedule of the conference itself.

For the talk at the Flutter Vikings conference, I also used the free APIs list and found another API by The Space Devs — Spaceflight News API, which provides a list of spaceflight-related news. They will be my secondary topic this time.

Live coding

How do I code without actually coding?

Watching someone coding can be interesting but can also be boring. Nowadays, we are used to getting information instantly, irritated by the slightest lag in the internet connection or the slow thought process of the opponent.

Imagine the speaker needs to support their idea with the code example, which is not prepared in advance. They start typing, for sure, including some predictable boilerplate code, making typos, and overall focusing on the text and not talking much. There is a high chance part of the audience immediately loses attention and starts checking their phones. There are certain formats of workshops or coding sessions where this is appropriate. However, there can be a better use of the 30–40 minutes reserved for the conference talk.

Prepare the code as text on slides or as screenshots, make commits or set up code snippets in the IDE. Do anything but make the audience wait while you type in the code live. Otherwise, you risk losing their attention.

My usual approach is to prepare about ten commits that show the project evolvement, where each commit contains one logical code improvement. During the talk, I check out each commit, walk the audience through each change, and explain what was done and why.

This, of course, requires some effort to prepare. It’s not a rare case that I notice an uncommitted change that should have been included two commits ago. Frankly speaking, I have quite mastered the art of editing commits history since I started speaking at tech conferences.

A nice side-effect of this approach is that, as a result, I have a public GitHub repository that can be referenced on its own, and also submitted to Google Dev Library.

Details level

When do I stop improving things?

When my work is about to be reviewed by hundreds of developers, of course, I want it to be perfect. DRY, SOLID, clean, and healthy. However, what makes the task difficult is to still keep it simple — KISS. Even if the talk topic is advanced, I try to make it accessible to people with a wide range of experiences by simplifying things.

For tech solutions that are not directly related to the topic of your talk, prefer those that are easier to understand rather than those emphasizing your professionalism. The wisdom is to solve complex problems with simple solutions, not vice versa.

For example, the code sample dedicated to localizing Flutter applications unavoidably needs a state management solution. However, it may still be good without a package-by-feature approach. Even though I use it in every production application, it adds an extra level of complexity, unneeded for a conference code sample.

Unexpected discoveries

Why do I love sharing knowledge even more?

When preparing a tech blog post or a conference talk, you will unavoidably dive into the topic. Probably, even slightly deeper than needed, and become a true expert in the subject to be able to answer audience questions. What I love the most about this experience is that sometimes this leads to unexpected discoveries or opportunities.

When preparing a talk, you oftentimes look at usual things from a different angle, and are more careful and observant with the tools and approaches you use. This can pay off with useful discoveries and unexpected opportunities.

This time I got a great chance for an OSS contribution. It was about that time when I was splitting the project into separate commits. When it came to using the auto_route package for implementing navigation, I noticed a strange generator behavior I did not face previously. A brief investigation of the problem showed that some functionality of the analyzer package got deprecated and immediately broken with the latest release. To unblock my further development, I created a quick fix and opened a PR to the auto_route_library, which is now merged. Thanks to that, I now got my avatar among the auto_route_library contributors. Very excited about this!

Speaker’s personality

What I am going to wear?

Yes, you read it correctly.

The way speaker looks affects perception of the information they deliver. The more we like the speaker, the more we trust them, and thus more likely to believe what they say. We can have mixed feelings about this, but it’s smarter to leverage this reality.

Of course, it’s not only about the garments. Your personality can be shown in different ways. What matters is that speakers get a chance to connect with the audience on an emotional level.

If you give a talk online, it’s also worth thinking about your environment and especially your background. It’s so easy to show bits of your personality when you are filming at home. Playing the guitar? Cool — place it on the floor behind you or hang it on the wall. Reading lots of books? There must be a stuffed bookshelf in your house. Painting? Collecting mini figures? Showing off will actually benefit your speaker brand.

The definition of “attractive” and “trustworthy” differs from person to person, nation to nation. Thus there is no particular advice I can share here, apart from giving your look an extra thought.

Known unknowns

What can go wrong?

Of course, it is impossible to foresee all the unwanted circumstances that may happen before or during your talk. However, it’s not the reason to ignore this exercise completely.

My checklist to go through before the talk is:

  • Internet connection. For an online event, be ready to switch to mobile internet or even do so in advance. For an in-person event, maybe cache required data beforehand. For this talk, I have a mocked set of data from the API at hand to switch to quickly via Dio interceptor.
  • Connectors and adapters. For an in-person event, have a pair of different adapters for your laptop to plug in conference equipment.
  • Hardware problem. Have your work synchronized across devices, so it’s easy to switch to a different setup quickly.
  • Electricity. Use fully charged mobile devices and laptops.

Afterword

What have I not mentioned?

There are many more things to talk about, like fear of public speaking, last-minute activities, or behavior on stage, and this post is already quite big. Read more about these topics in a Page to stage series by Oleksandr Leushchenko. This time I focused on the preparation process only, sharing my personal experience. My goal here was to show that:

Public speaking is not just for the elected ones, and there is nothing you cannot do to shine on stage. Good luck!

See you at the Flutter Vikings conference!

War in Ukraine

Why would I even mention it?

Well, why is this thing even happening?

I am from Ukraine. And I live in Ukraine right now. Every day is like September 11th because of russia’s unjustified aggression on the sovereign territory of Ukraine for six months now. Which means constant distraction, anxiety, and fear for my life and my loved ones.

Did I consider declining my attendance at the conference because of that? Hell no! If we stop being who we were and doing what we did, they win. No way this happens!

Did this affect my preparation for the conference? Hell yeah! I had to redo almost everything I did, fixing errors I would not think I could ever do. This was a good marker of how tired and lost I actually am because of the war in my homeland.

Help us win this war. Stand with Ukraine!

Follow Flutter Community on Twitter: https://www.twitter.com/FlutterComm

--

--

Anna Leushchenko 👩‍💻💙📱🇺🇦
Flutter Community

Google Developer Expert in Dart and Flutter | Author, speaker at tech events, mentor, OSS contributor | Passionate mobile apps creator