A First Time Speaker’s Journey from CFP to Stage

A First Time Speaker’s Journey from CFP to Stage

One Week to Decide

On October 29, I found out The Lead Developer New York had open CFPs — and the deadline was November 5.

I sent a slack message to my team saying “I’d love for us to send proposals regarding how multiplatform development, specifically kotlin multiplatform, changes your team, development, processes, lowers technical risk, schedule risk, cost, etc, etc.”

This was the first time I ever thought about responding to a CFP and didn’t know if it made sense to the company, to my schedule, or to any of my colleagues. What I did know was:

Thankfully, @namnum was super supportive, immediately responding to my slack message with “Hell yes! How can I help?” 

Since this is a “Lead Developer” conference, I roped in @samhill303, our head of engineering, to go through the process with me.

We only had a week, so we had to work fast. Here’s what we did:

  1. Brainstormed titles with very light outlines to add some context
  2. Talked through which ones resonated more with us personally, as a company, and the potential audience
  3. Stopped thinking about the ones that didn’t resonate
  4. Added more definition to the outlines that survived
  5. Talked about what makes a title and description interesting (both @kpgalligan and @namnum have read and written a lot of proposals)
  6. Turned 2 outlines each into descriptions with interesting titles
  7. Quick peer review
  8. Send 2 proposals each

Two Months to Wait

Normally, The Lead Developer organizers get back to applicants within a month, but, because of the holidays and some unforeseen scheduling changes, we had to wait until January.

I didn’t know that until they sent a note mid-december so I was looking at my email pretty often until then. Waiting is definitely not fun, but it is important that the people reading through proposals take their time to figure out if the talk will fit well with the conference goals and time-slots. I talked to @Geek_Manager afterwards about this and I was very impressed with how much effort the organizers put into choosing the talks for a successful conference.

The CFP response form also asked whether the talk could be 30 minutes or 10 minutes. Since I checked both options, I had the extra suspense of not knowing how long I would be on stage if I were accepted. Though that added to my anxiety, I was glad to have both options available.

In early January, I finally learned that I was accepted to give a 10 minute lightning talk!

Three Months to Prepare

The Long Outline

We had a lot going on at Touchlab in January so “prepare for the conference” was in the “Important but not Urgent” category. Being the first time I’ve done this, I really should have gotten started immediately, but, at the time, putting it off a little later made a lot of sense (see @allspaw).

The urgency came when I found out there was an opening for the February meetup. I got started right away (Feb 4) on an outline which turned into a MUCH longer effort than I planned so @kpgalligan filled in my slot with some KMP updates.

I promised to have things ready for the March meetup — and I did! It was difficult because I had such a long outline. The prep I put into the outline — organizing, researching, reorganizing, more researching, more reorganizing — was invaluable not only for putting together the meetup slides but for sharing knowledge with Touchlabers, and speaking more intelligently with existing clients and prospects. In fact, as a concrete benefit, I published an initial blog post for some of these which got picked up by Hacker Noon!

The Meetup Slides

Even though the outline was so long, it was incredibly useful for speeding up the slide making process. Here’s what I did:

  1. Move the outline 1:1 to slides — copy/pasting line items into slides, batching multiple lines into one slide if that seemed appropriate
  2. Replace outline in slides to more slide-friendly bullet points and move outline to speaker notes
  3. Lower the amount of text on each slide by incorporating graphical representations
  4. Replace outline in speaker notes with natural language

I went through a few iterations of graphics, speaker notes, and slide CRUD. By demoing sections of the slides internally, I could incorporate feedback and iterate towards the following goals:

  • Language sounds natural
  • Individual slides aren’t confusing given what I’m saying at that point or what I’ve said up to that point
  • Individual slides aren’t distracting
  • Organization of slides tells a story
  • The story isn’t more than 30 minutes

Not all the goals were met for the meetup but there was very good progress. Here are the Meetup slides with some transitions removed. The talk came in at about 20 minutes, there were a ton of good questions at the end, I was told the content was good, my ability to present was good, and, most importantly, I felt much more confident afterwards.

The Webinar Slides

This event was a “crazy idea” from marketing. We didn’t know if it made sense or if it would actually happen but from the blog post and the success of the meetup, we knew it could happen.

The meetup slides didn’t include the images from the blog post and our webinar was meant to be more about “How to Evaluate Mobile Multiplatform Solutions” so I worked on editing the Meetup slides to include them and also update the story for a different audience.

I followed essentially the same process as putting together the meetup slides, the big difference being Touchlab’s designers (Nelmer, Frances) gave me some help. They had only a few days to improve my slides and we were all working feverishly until 5 minutes before to integrate designs into the final version. It didn’t all get done, but they did an incredible job, and we knew this wouldn’t be the last time they could help (the real show would be Lead Dev). Next time, I’ll bring design in earlier, much earlier.

The webinar surpassed expectations! We were expecting about 50 people to show up…we had over 100 and 70% stuck around for the entire presentation!

The Lightning Outline

The meetup presentation was about 20 minutes and the webinar was about 30 minutes. I needed to take what I made and learned from both, and bring it down to 10 minutes. Making the meetup 30 minutes from the original outline was difficult enough, so I knew there’d have to be some drastic changes.

So I made a new, hyper-focused outline, the lighting outline and got to work slicing, dicing, mixing, and matching the meetup and webinar slides.

Keeping the technical model from the webinar, the 3 dimensional perspective inspired by the above-the-line/below-the-line framework, and the timeline from the meetup — even after removing all but the most currently relevant solutions (goodbye RoboVM, j2objc, etc) — it was nearly 20 minutes 😩.

The Lightning Slides

In order to make this a 10 minute lightning talk I started thinking of it as a movie trailer. If a 2 hour movie can have a 2 minute trailer, I should be able to bring this down to 10 minutes. Luckily, White October Events has a youtube channel with all of the past Lead Dev recordings. I could use previous lightning talks as inspiration.

I removed the intro to me, Touchlab, and the talk. I removed orienting the audience with what I will talk about. I removed extra details/context for various slides.

This got it down to 13 minutes…nearly there. I experimented with talking faster: down to 10 minutes! OK, but I didn’t want to rush too much. What was left was editing the speaker notes. I removed adverbs, adjectives, combined sentences then simplified them. I was ruthless in prioritizing details and removing the less important ones. Then, finally, I ran through a couple times clocking in under 11 minutes 😅 

Editing down from 30 minutes to 20 didn’t take very long. Editing down from 20 to 13 took a little bit longer. Editing down to 11 took a lot longer because there’s so much that I felt important that I didn’t want to lose and when I made the decision to lose it, I’d read through again and want to bring it back in favor of losing something else.

I knew I couldn’t make it shorter without modifying pacing so that’s what I worked on until the day of the conference. I also found out there would be a clicker and confidence monitors, so I tried to recreate that the best I could too.

One week before the conference, I was about to submit my final slides. But then Touchlab announced partnering with Square and introduced the Kotlin Xcode Plugin. These were both such important news I had to find a way to add them to the slides. I already had one slide where I described what KMP will look like for iOS in the near future so I broke it up into multiple slides to showcase the partnership, the plugin, and a few select multiplatform libraries that are pushing the ecosystem forward. My final lightning slides were finally final and I sent off the email to make it official.

10 Minutes to Speak

After all the prep — the meetup, the webinar, the seemingly endless rounds of practice while editing down to 10 minutes — I was feeling really good. I was still nervous (even writing this, thinking about “the day of” is making my heart race and my hands shake) but I knew it would work.

Thanks to the speaker’s dinner, I got to meet people I’d be sharing the stage with. Talking about stuff other than “the day of” allowed me to relax and, most importantly, understand that everyone else on the stage are also people who get nervous and have to prepare. I could think of them as friends which meant when I walked to the venue the next day, it felt like a reunion.

Because of my prep the weeks before and because of the speaker’s dinner, I was much less nervous. What I was worried about was the execution. Since I used Keynote, I expected the layout, size, animations, graphics would all be fine. But I had never used confidence monitors before and I knew from practice that it’s possible my speaker notes would be too small, I’d get lost in my notes, lose my pacing, and potentially choke (not really, because I did get lost in the Meetup and it was fine, but this was crossing my mind because anxiety is real).

That morning, I saw other speakers running over their talks one last time, I saw them chatting about nothing in particular, and I saw them go to the stage before the audience arrived to become familiar with the setup. So I asked to pull up my slides, I stood on the stage, and flipped through the first few to test the speaker notes. They looked great.

I spent the rest of the time before my talk watching those before me, getting into the feel of the conference, getting wowed at the presentations (while not feeling bad about mine).

And then it was time to mic up. I talked to @lara_hogan, @Geek_Manager, and @samhill303 before the lights dimmed. Then started feeling my hands shake again, but I wasn’t first on stage, so I did some breathing and thinking (sorry @iamagiantnerd for not giving you my full attention).

And then I was on the stage shaking @lara_hogan’s hand. And then I started to talk. And then I noticed I didn’t have the clicker. And then I saw the countdown clock. And then I heard the audience laugh. And then I saw some people look interested. And then I was done.

Closing Thoughts

Speaking in front of so many engineering leaders was amazing and I spent the rest of the day winding down talking to other speakers, audience members, sponsors, and even some potential business partners.

When the recording came online, I was expecting the worst. But other than looking down at my notes a bit too much, I’m actually really proud of how it turned out. Once again, @whiteoctevents did an amazing job with everything.

I know for sure that I have grown in so many ways from this experience and I plan to speak again. The personal benefits of going through this entire journey are immense and I highly recommend giving it a try. I hope writing down my journey helps you on your journey.

August meetup: Realm, and Smoke & Mirrors in Android

August meetup: Realm, and Smoke & Mirrors in Android

For August, we returned to the lovely, very cushiony auditorium of our August sponsor, The American Express Company. It’s a bit of a walk over to the west side, but that didn’t stop the 116+ members who came out. (Did it help that the World Trade Center is a lured PokemonGo stop??)

Kevin started the night off with news about livestreaming at Droidcon NYC, sponsored and made by possible by JW Player. Grab a conference ticket before it’s too late – we’re serious!

Across the street from AMEX headquarters. Across the street from AMEX headquarters.

Donn Felker took the stage first with a talk on Realm. He successfully squeezed 50+ slides into his informative 20-minute talk, quickly running through the benefits and features of the mobile object database. His awesome deck can be found here. Check it out for sample code and links to useful resources.

Our first speaker, Donn Felker. Our first speaker, Donn Felker.

Israel! Israel!

Our second speaker, Israel Camacho, received a warm welcome from the group. He recently moved to New York from California, and we’re thrilled to have him join our Android community! Kevin also surprised him with a birthday cupcake as he turned one year older the day before. Israel walked the group through neat UI tricks in Google Photos, such as transitions and image loading. Check out his slides here and his sample repo here. After the meetup, we watched the Olympics at Lilly O’Brien’s (Israel got his birthday drink!) and cheered as Phelps and Ledecky both took gold for USA.

We hope to see everyone at our “The Road to Droidcon” meetup at Squarespace – final date TBD, but it’ll be the week before Droidcon 9/29-9/30 🙂 See you then!

Summer bash at Button’s rooftop

Summer bash at Button’s rooftop

A few hours before our meetup’s summer rooftop bash, it started pouring torrentially. We were worried – meetup members even commented on our page and asked, “Sooo about that rooftop…” Luckily, the Android gods smiled down on us and cleared the skies just in time for our July meetup at Button. Our members were treated to sliders, copious amounts of wine and beer, and pizza from the awesome Button team. We also had Android tech talks from Uber, Instagram and LinkNYC.

Meetup organizer and touchlab President Kevin Galligan greeted the group with his usual finesse and started the night with chuckles: “It’s a bit crowded in this room so nobody move. We won’t sweat this way.”

Kevin captivates the crowd with his welcome. Kevin captivates the crowd with his welcome. Kevin and Sveinung with Button give the host welcome. Scroll to the bottom if you Kevin and Sveinung with Button give the host welcome. Scroll to the bottom if you’d like to enter their contest, you could win an Amazon Echo!

Jeff Hu with the Uber Android team was our first speaker. He introduced Uber’s internal Octopus automated test framework and dove into details of UberRUSH’s unique end-to-end testing. His pro tip for the group: “‘Make Magic’, one of the Uber culture values. Uber is built on the magic of pressing a button and having a car appear. As a mobile engineer, let’s develop forward-thinking ideas, and produce high quality work that raises the bar. #alwaysbetesting.” Thank you Jeff for speaking, even with the 9pm flight he had to catch right after!

Jeff Hu, Uber Jeff Hu, Uber

Blake Arnold and Justin Taylor took the floor after and walked us through the LinkNYC project. They described the history of the wifi kiosks and how Android played a critical part in development. They also gave a special shout out to our very own Izzy Oji of touchlab, for her part in the project since the very beginning. For Android beginners, Blake and Justin advised, “Get a solid foundation in computer science, whether from formal schooling or on your own. Make a couple applications in your spare time, open source them, and be open to learning other platforms like web dev. That’ll get your foot in the door at most companies. The rest can be learned on the job.”

Izzy (touchlab), Blake and Justin (Intersection) Izzy (touchlab), Blake and Justin (Intersection)

Kang Zhang with Instagram finished off the night with a talk on Android Client Architecture. He shared the team kept the app’s performance reliable and lean as their client infrastructure evolved over the past few years. Kang’s #1 tip for our group? “Do simple thing first.” He pointed us to “Instagram + Android: Four Years Later” if you’d like to read more about Instagram’s recent mobile development.

Kang Zhang, Instagram Kang Zhang, Instagram

Our July meetup was a huge success – thanks to Button for generously providing booze and food. From our host: “Reminder to submit your Button for your Android app by 7/21 to enter to win an Amazon Echo for the best Button implementation! Email screenshots or an APK, even if it’s a test build, to android@usebutton.com to apply! Button makes it easier for app developers to monetize by helping users discover their next action. By connecting the apps where users spend time, with the apps they spend money, Button provides a monetization strategy where everyone wins.”

Thanks to everyone who made it out, and to the Button team (Stephanie, Sophia, Kevin & Sveinung) for coordinating.
See you at our August 9th meetup with Israel Comacho and Donn Felker at AMEX!

June Meetup: Kotlin 101, Immutables Library, & Backend Driven Native UIs

June Meetup: Kotlin 101, Immutables Library, & Backend Driven Native UIs

June was an exciting month for us! Our June meetup hit a record number of attendees, and our meetup has over 3,500+ members now. Thanks to everyone who came out and those who continue to support this community every month. Our June meetup talks were comprised of very targeted presentations. We hope everyone left with new tidbits of knowledge as we code onwards.

Daniel Nizri of Yodle gave the first talk on Kotlin 101 features and why it matters for Android. Daniel said, “I would highly recommend the Kotlin Koans to anyone who wants to get started with the language. It’s a great online tutorial where you can write small amounts of Kotlin code to solve problems and get familiar with the language syntax and features.”

To try Kotlin out yourself, he suggested, “… you can enable Kotlin in your existing Android project in a few minutes by following the instructions here – and then use the Java to Kotlin converter to see how your Activities, Fragments, etc. can be written in Kotlin.” Check out Daniel’s slides here and his Kotlin demo here.

Our second talk was about the Immutables Library, given by Brian Plummer from The New York Times. He showed how the open source library uses annotation processing to provide builders for your objects to make them immutable, and how easy it was to setup an immutable data model for your application. His #1 tip?  “Start small, see how you like. Convert one object at a time. This is not a library that you have to change everything all at once.” For more info, see Brian’s slides and his tiny sample app.

Diego Capelo from Spotify closed out the night with a talk on Backend Driven Native UIs, a talk that many were curious about. Diego summarized his talk into one simple sentence: “”It’s all about separation of concerns”. You can see his presentation here.

May Meetup: Android on the Desktop (yes, he went there) + Mutative Design Updates

May Meetup: Android on the Desktop (yes, he went there) + Mutative Design Updates

We wouldn’t be a very good Android meetup if we didn’t invite Mark Murphy of Commonsware to speak. Mark is known for answering tons of questions and helping the Android community on StackOverflow. He’s also an incredible public speaker, cracking jokes and interjecting sarcastic remarks into his presentations. We were lucky to have him at our May meetup, hosted and sponsored by American Express.

After warning the group of profanity ahead, Mark spoke about Android on the desktop, offering his pre I/O predictions for Chrome OS and how it may potentially merge with Android. He showed previous predictions from news reports (mostly denied/ignored by Google) and why it’s very possible now with Android N. He concluded by urging us to pick up appropriate hardware, and to “plan for delivering a first-class desktop experience.” Check out his slides here.

Our lead designer Liam Spradlin also gave a talk, presenting his updates on mutative design. He walked us through using a mutative interface, showing how buttons, contrast and brightness can gradually adjust after learning the behaviors of different users. There was a barrage of questions for Liam after from curious developers. If you’d like to learn more about Project Phoebe, you can read about it here and find the open source repo here.

Liam on mutative design. Liam on mutative design.

Overall, it was a great night with stimulating talks that left our group wondering about the next big thing at I/O in a few days. Many thanks to Mark for trekking in, to Mark and Liam for speaking, and to David and Anat over at American Express for coordinating with us each month!

See you in June at Spotify.

The view from AMEX The view from AMEX’s 26th floor auditorium.

April’s Meetupception

April’s Meetupception

We’d be pretty bad human beings if we didn’t host a meetup at Meetup, the team bringing people together for just about anything since 2002. Kevin’s been organizing our Android meetup since 2011, and since then it’s grown to over 3,400 members with consistent showings of 80-100+ devs every month! We’re loving our community and are so grateful. For April, our group converged at Meetup’s event lounge, surrounded by vibrant wall art and a giant brain floating above our heads.

Kevin Galligan, our beloved meetup organizer and touchlab President, welcomed the group with his unique sense of humor (is there a synonym for charmingly awkward?). He gave a recap of Droidcon San Francisco (it went well!) and announced our May meetup, featuring a pre-IO talk from Mark Murphy of Commonsware and updates on mutative design from Liam Spradlin.

With chilled drinks and hefty pizza slices in hand, our members tuned into our talks from Edison Wang (MoLabs), Matthew Lim (Spotify), Jeff Lee (Insensi) and Larry Ng (Meetup). Rashad Cureton and Michael Kwon, graduates of General Assembly’s three-month long Android Immersive course, also demo’ed their final projects.

Our first speakers, Matthew and Jeff, walked through PaperCraft, a space shooter game designed for the Android Wear watch. Matt and Jeff covered game loops and animations, but primarily focused on using the Canvas API. Check out Matt’s repo and his slide deck here.

Photo courtesy of Lauren Murphy @laurennor Photo courtesy of Lauren Murphy @laurennor

Rashad and Michael demo’ed their final project apps right after. Rashad showed how his DATENYC app helps users browse date ideas, filter by specific days/times, and go through venue reviews. The group was also impressed by Michael’s music player, the Kwon Player, especially when the music kicked back into the action right after a phone call ended.

Michael’s top three tips for aspiring Android devs? “One: keep coding… you have to keep practicing to maintain it. Two: be open to criticism. It’s easy to get protective of your first app or first block of well-functioning code, but there’s no such thing as perfect code and you should always be on the lookout for ways to improve.” He also added, “Three: ask for help. It’s so easy to get tunnel vision but someone… has already encountered that same problem and is more than willing to help.”

You may know Edison from his previous talks at Droidcon NYC and SF. At the meetup, he spoke about async tasks, advising our group to “use an async library that makes you not think about app lifecycle, any of them.” Check out his slide deck here.

Last but not least, Larry talked about managing data synchronization and explained how the Meetup team used RxJava to rebuild their new app. For RxJava beginners, Larry suggests, “After going through the tutorials and intros that are out there, definitely familiarize yourself with the [operators](http://reactivex.io/documentation/operators.html) and [subjects](http://reactivex.io/documentation/subject.html) that are available. Each one *will* be useful to you at some point. Knowing they exist will provide you with plenty of “lightbulb moments” as you’ll find yourself saying “Oh, I can just use {operator} to solve this!” If you’re experienced with RxJava, Larry’s demo source is available at https://github.com/meetup/DataSyncDemo.

Thanks to Mike and Michelle for coordinating, and to Meetup for hosting (and also making this entire group possible). We hope everyone learned something new from our knowledgeable speakers. See you in May!

Photo courtesy of Amha Mogus @amha. Photo courtesy of Amha Mogus @amha.