Year 2019 in review - getting started with speaking at a tech conference

[ reflection  ]

A reflection post on my first year of speaking, and how I became a tech conference speaker

At the start of 2019, I set a goal to speak at a tech event. By the end of 2019, I’ve spoken at 2 meetups and 2 conferences. Here’s my journey from wide-eyed event attendee to tech conference speaker, and lessons learnt along the way.

Recap of Year 2019: Speaking

In year 2019, I have given a total of 4 talks:

Speaking at Tech Events: Why?

I’ve attended tech events and conferences since 2018, and I’ve learnt a lot from attending the sessions. As I sat among the audience watching in awe at the speakers and panelists on stage delivering their talks and speeches with confidence and style, I thought:

What would it take for me to be up on this stage as a speaker?

I’m more of an introvert in nature, and extensive networking during tech events can get very draining for me even though I do love interacting with new people. Having to find various means to start a conversation only to have it fall flat on people also adds on a lot of pressure on me, and consecutive occurrences do drain me severely of energy such that I need to take breaks from attending tech events. Moreover, I tend to get really nervous when speaking in front of an audience - unlike music performance whereby it is natural not to maintain eye contact with the audience while getting your whole self (body + mind) immersed in the music, public speaking requires a lot more attention on eye contact and body language.

In short, I’m not a natural when it comes to speaking in front of an audience. Still, I want to speak at tech events for the following reasons:

  1. Build my personal brand and raise my profile in the local tech community
  2. Gain experience in public speaking
  3. Pay it forward to the local tech community

Getting Started

In end January, I attended a panel discussion on “Getting Started with Public Speaking” by Women Who Code Singapore. It was at this event where I met three of the panelists who would turn out to be pivotal in my speaking journey - Renu Yadav (Women Who Code Singapore), Chen Hui Jing (organizer of SingaporeCSS) and Michael Cheng (JuniorDevSG, EngineersSG).

As it turns out, Hui Jing also organizes Global CFP Diversity Day in Singapore and was promoting the event (as well as her meetup SingaporeCSS, which always needs speakers). I originally intended to attend another tech event on the same day, but woke up late and decided at the last minute to attend Global CFP Diversity Day - just to see what it was about.

During the Global CFP Diversity Day workshop, we need to write a speaker profile and work through a whole list of questions on crafting a CFP submission. Uh okay, what can a data engineer who is barely 5 months into the role write or speak about that would impress the CFP panel? Wait what, I have to tell Hui Jing about myself?

(insert more neverending questions that sprouted after Global CFP Diversity Day)

As it turns out, role-related pains/complaints/angst can be a great source of inspiration for talk proposals.

Source of Inspirations for Talk Proposals

The talks I have proposed to meetups and conferences so far are mainly derived from pains/complaints/angst that I faced while working on data analytics projects - both at work and while working on side projects during my free time. I tend to joke with fellow developers I met during tech events that I write talk proposals and give talks to “make up for the time spent on wrangling with all those dev issues and angsting/bitching about it” and to “make full use of the opportunity to speak to air my grievances while building my personal brand”.

For example, my talk on How to Make Your Data Processing Faster started out as a by-product from the Shopee Data Science Challenge which two of my colleagues and I participated in. As it was our first data science challenge, we faced loads of challenges processing our images and using them as our model inputs. To milk the most out of the “suffering” and precious time lost in trying to process the images, I wrote a Medium post about it and used whatever I wrote as a CFP idea with the intention to submit to multiple conferences. It turned out that data processing is a common bottleneck and a major pain point among data and software engineers, and I was overwhelmed yet honoured by how positive the reception was when I started speaking about parallel processing in data science.

In short, if you face a challenge/problem/issue at work and managed to solve it after expanding loads of time and effort, why not milk your pain’s worth by giving a talk and sharing your experiences with fellow developers so that they could learn from your experiences? After all, we can learn from each other’s experiences with a technology or a problem to solve, and that is independent of the number of years of experiences in the industry given how fast technology is changing.

My First Time Speaking at a Tech Event

Where: Python User Group Singapore Meetup

When: 27 August 2019

Talk: Parallel Processing in Python

For my first-ever public tech talk, I was initially thinking of starting small by speaking at relatively more “beginner-friendly” meetups such as JuniorDevSG Code and Tell. While I submitted my first CFP to a conference, I was prepared to submit CFPs to multiple conferences and meetups until I receive a talk acceptance.

Surprisingly, my first CFP submission on How to Make Your Data Processing Faster was accepted by end June before I had a meetup talk scheduled. I needed to practice my conference talk at a meetup where I could get relevant feedback fast, and I was informed by Ka Ho that there would be a long waiting list for speaker slots at JuniorDevSG Code and Tell. Due to the urgency of the situation, I booked a speaking slot with Martin for the Python User Group Singapore August 2019 meetup to practice a key portion of my conference talk. I was informed that the meetup would be held at the new Zendesk office at Marina One and the typical turnout would be around 50-60 people. The day before I was due to speak, the RSVPs at went up to 200 people. Realising that I would have to deliver my first-ever meetup talk in front of more than 100 people even if 50% of the RSPVs dropped out, I took time off work to refine and practice my talk thoroughly.

On the day itself, the actual turnout was over 100 people - way more than I expected, especially since I have been relatively low-key about the talk, even removing any references to my gender in the speaker profile. There were technical issues, my “tech-y” jokes and Spark references kinda fell flat on the audience, and there was a slight overrun. Surprisingly, more than half the audience were still seated despite the slight overrun. I thought I kinda messed up my talk, so I was pleasantly surprised when a few people in the audience approached me off-stage (even though it was already pretty late) to thank me and give positive feedback for the talk.

No talk recordings here; frankly speaking, I don’t even dare to watch my own recording on my phone in full. Speaking in front of more than 100 people for a meetup is already quite a feat, and I’m glad I survived better than I thought I could despite having a nervous start.

My First Time Speaking at a Conference

Where: Women Who Code CONNECT Asia 2019

When: 31 August 2019

Talk: How to Make Your Data Processing Faster: Parallel Processing and JIT in Data Science

This is the first conference that took a chance on me to deliver a full-length talk at the conference stage. I enjoyed the speakers’ dinner, got to meet international speakers such as the really awesome Jiaqi Liu, Millie Chan and Kat Liu, and watched Hui Jing put up a highly-entertaining talk on Creating Art with CSS despite being massively jetlagged from her conference travels.

I had a practice talk on the Parallel Processing portion at the Python User Group Singapore August 2019 meetup. Based on the questions and feedback collated from the audience, I made some improvements to the slides and even sought the help of the Javascript/Node.JS folks on Twitter for some ideas on how to explain async to the general audience. Having the experience of speaking on stage behind a podium in front of more than 100 people + doing the open pose as suggested by the WWCode Taipei folks did help significantly with the nerves before the talk too.

Feedback from the audience was pretty good. Quite a number of people in the audience approached me off-stage, throughout the conference (including lunchtime) and/or on LinkedIn to thank me for the talk and give positive feedback on how much they learnt from the talk. I’ve also received a couple of mentions on Twitter which were really nice. Having someone come up to you and say “hey I attended your talk and it was really interesting” makes all the preparation work for the conference talk worth it.

My First Time Speaking at a Conference outside of Singapore

Where: Open UP Global Summit 2019

Talk: Making Open Weather Data More Accessible: Extracting Seasonal Insights from Singapore Weather Station Data

This is the first time I travelled out of Singapore to speak at a conference, and my first time delivering a talk with a demo segment. In the spirit of #opendata, the core objective of the talk is to show how we could make open weather data more accessible to anyone - developers and non-developers included, hence the title.

A large reason why I got the chance to speak at Open UP Global Summit was because the main organizer was in attendance at Women Who Code CONNECT Asia and enjoyed my talk. I feel incredibly honoured to be trusted with the conference stage, and blessed to be given the opportunity to travel to Taipei and deliver a full-length talk based on my weather station data API scraping project.

I refactored the code for my weather station data API scraping project (which was a product of a random weekend coding exploration) and prepared the Jupyter notebook for the time series visualizations in advance. As it was my first time delivering the talk in a demo-driven format, I prepared the presentation slides first and rehearsed the non-demo parts incessantly while conceiving of possible plan Bs in case the API scraping demo does not run smoothly. As my speaking slot was on 1st December and I wanted to analyse weather data up to end November, I ran both the API scraping and time series visualization notebook to obtain the latest data and visualizations, and tested both demo segments until 3am to ensure that I could showcase the demo with the latest weather readings on stage.

On the day of the talk itself, Murphy’s Law of Demos struck with a Wifi connection that kept dropping every 10 minutes (because I was using the venue wifi had to keep re-doing the login regularly) and issues with my Jupyter server. I made a snap decision to truncate my demo, explain a bit about the scraping code and showcase an offline Jupyter notebook of the time series visualization with all the codes executed beforehand.

Once again, Murphy’s Law of Demos struck. While attempting to showcase the offline Jupyter notebook on Visual Studio Code, the scrolling turned wonky and I had difficulties scrolling to the visualization that I wanted to show the audience! I had not thought of a plan B for that situation, and with only 3 minutes left, I wrestled with the scrolling and finally managed to showcase the time series box-and-whisker plots for the scraped weather data at the last minute. Not too sure if the audience picked up that I was kinda “panicking” with my demo, though at least two of the speakers couldn’t tell that it was only my first year of speaking or conducting a demo on stage.

Another blunder I made on hindsight was that I did not show my last slide with my social media and GitHub repo before ending my talk, so that was a lost opportunity for self-promotion.

After the talk, I was feeling fairly negative about what happened to the demo segments on stage and felt that I messed up big time, especially since the audience didn’t seem too responsive to my attempts in engaging them through questions. The feeling of “I think I messed up big time” intensified when not many people tweeted about my talk (except for my fellow speaker and tech community Korean sister Sujin Lee who delivered a highly informative talk on data-driven design for visualization) or approached me off-stage throughout the conference, but I was assured by the organizers and a few of my fellow speakers not to worry too much and that I did pretty well for my talk.

I still felt that I could have done much better for this talk especially in the demo segments, but it was a great international speaking experience nevertheless. I also learnt to be less harsh on myself when things do not go according to plan on stage, as it is likely that the audience may not even notice your mistakes or stumbles if you keep your composure and continue with your performance.


Fate seems to work in mysterious ways, and this time it seems to go full circle.

Remember that I said I was initially thinking of starting small by speaking at JuniorDevSG Code and Tell?

After my first conference talk at Women Who Code CONNECT Asia and during my speaking break, I was approached by Michael Cheng to give a talk at JuniorDevSG Code and Tell which would be held on 14 January 2020. It looks like my first talk at JuniorDevSG Code and Tell will indeed be my first talk - for the year 2020.

And this time, I would like to deliver a better performance for my Singapore Weather Station talk.

Written on December 31, 2019