JSFoo: round the year submissions
Submit talks on JavaScript and full stack engineering round the year
anna herlihy
Live demos are tech talks’ flakier, meaner older sibling. Yet it is undeniably the most compelling way to illustrate your message in minimum time.
I’m going to talk about my process for building a fortress around the code that I am demoing. If I’m going to get up in front of an audience I want to know that I am in complete control of my fate. We don’t always get to jump in the shallow end first, and as a relative beginner to public speaking I have found it crucial to carve out a comfortable space for myself to grow.
I’m going to talk about a keynote demo I did in front of over a thousand people. I will do the demo, then together we will go through everything that could possibly go wrong, from shaky conference wifi to unpredictable caching. I will also discuss contingency plans and what to do when things actually do go wrong. Beyond demoing, this is a extremely valuable skill for engineers that can be applied to writing excellent tests and designing robust systems.
Introduction
A few weeks after joining my current team, I was asked to give a short live-demo during the keynote of my company’s annual European conference, MongoDB Europe.
Why are live demos awesome?
I’m going to talk about why I “faked” my demo. I put fake in quotation marks because I’m not adding imaginary features to my product, what I’m doing is systematically going through my demo and removing even the most remote chance of things going wrong. A better word would be “mocked”.
The Demo
I start with the real demo, using all live everything. Clearly that must work first.
To give you an idea of what I’m talking about, I’m going to do the exact demo for you: Abridged Compass tour (4 minutes)
So there you go. Kind of painless right? WRONG! What you’re looking at is roughly two weeks worth of work. I could do this exact same demo with real data, in real time, and it would look exactly the same. But I would be sweating profusely, convinced I forgot to start the server or drop my database, and completely miserable.
The Life-Proofing Process
Let’s start with the charts.
Next up is the index build. I had to make sure that I had a large enough database that doing a search without an index would visibly slow things down. Caching can also complicate things. How to make our index build look consistently longer, but not too long?
The last thing I’m going to talk about is finding my outlier.
Conclusion
As a relatively beginner speaker I can’t say enough for carving out a comfortable space for yourself to grow as a programmer and a speaker. We don’t always get to jump in the shallow end first and I’m a huge proponent of fighting for the right to feel comfortable, no matter where you are or what you are doing.
There is a distinction between being misleading and ensuring that you have the space to show off the features that you are talking about.
Yes, giving talks is terrifying and there are tons of thing you can’t control. However, going through your demo and letting your mind run free with just how terrible things can get is:
Thank you!
This talk is for anyone, from complete beginners to experienced public speakers who feel their palms getting sweaty at the thought of doing a live demo. There is no technical knowledge assumed, just an interest in giving or hearing talks that involve real code being run. Attendees will leave with the feeling that they too can write and give a live demo that is completely bulletproof. I hope this talk will encourage people, regardless of experience, to fight to create environments where they can be successful.
Anna Herlihy is a software engineer working for MongoDB in Stockholm. She is a contributor to MongoDB, PyMongo, Monary, and a few other MongoDB Drivers but is working now on Compass, the GUI for MongoDB. She enjoys hiking, road biking, climbing, and is most happy when she can do her work outdoors.
{{ gettext('Login to leave a comment') }}
{{ gettext('Post a comment…') }}{{ errorMsg }}
{{ gettext('No comments posted yet') }}