How SF Python hosted a remote meetup during the times of COVID-19

Daniel Pyrathon
8 min readMar 23, 2020


The SF Python meetup hosted a fully-remote Presentation Night on March 11th (of course, due to COVID-19). We want to document our experience here. Running an online meetup presents a new set of challenges, but it can provide more inclusion and stimulate more conversations (during Q&A, announcements). We recommend other organizers to consider this online format to keep their meetups running so that they can provide a space of routine and safety to their community during these uncertain times.

What is SF Python

SF Python is a community-driven meetup that I’ve had the honor to co-organize alongside some other volunteers. The meetup was originally founded by Grace Law in 2008, and now, with the help of Simeon Franklin, myself and a few others, spans more than 13,000 members. SF Python runs 2 events every month: Presentation Night and Project Night.

On Presentation Night, we ask leaders of our industry to come and give tech talks. Our speakers are PSF members, core developers of open-source projects, students, and local software engineers alike. Our meetups are usually hosted on the 2nd Wed of each month at Yelp, in downtown SF. Our attendees come to our meetup for multiple reasons: learning how to program, finding jobs, hiring talents, networking, and to simply mingle with the community. As organizers, we do this because, there is power in human connections, and we love to provide an outlet for engineers in the SF Bay Area to network and improve their skills. SF Python has become a big family for us all.

The challenges of going fully remote

Due to the increased risk of spreading COVID-19 in our community, we decided to host SF Python’s Presentation Night on March 11th on Zoom. None of the organizers had experience with hosting a remote meetup, and we had to essentially promote a completely new medium to our audience as well as our speakers. We would also have to adapt our in-person format to an online format. We would also have to completely rethink things like announcements, Q&A, and many of the organic interactions of the community (clapping, cheering).

A quick overview of our offline format

Our venue opens up at 6:00 pm for registered guests who want to come and network (and have pizza and beer!). A line usually forms 15 minutes before the venue opens. The main event starts at 7:00 pm and goes up until 9:00 pm. We usually begin with sponsor acknowledgments, followed by 5-minute lightning talks, 10–15-minute talks, and finally a 25-minute talk. Between each talk, we provide a space for announcements, which allow our community members to request technical help, pitch a job opportunity, look for employment or ask for the community’s advice. Most talks also have a 5-minute Q&A session which allows our community to ask questions to the speaker. Once the talks are over, we usually have 30 minutes left for our community to mingle, network, and interact with our speakers.

Transitioning to an online format

We chose Zoom to host our meetup. It is reliable and many developers are already familiar with this platform. Since we usually have over 150 guests at our live-events, we purchased Zoom’s Pro plan with a “webinar” add-on package. It sets us back $140/month but it allows us to have a good interactive experience for 500 participants. We created a new Webinar for March 11th, and we provided the public join link to the community, we then created specific “panelist” links for all speakers. These links authenticate the speaker as a “panelist”, which allows them to present their screen and talk to all participants. We asked speakers to log in early (at 6:30 pm) so that we could familiarize them with Zoom and the various commands.

Overall, there were a few important features of Zoom that we found extremely useful:

  • The “raise hand” feature was used for announcements in our case. We did announcements in between talks and unmuted the audience that had raised their hand, giving them audio and video capabilities for the duration of their announcement.
  • The “Q&A” feature allowed attendees to ask speakers and moderators questions through a chatbox. After each talk ended, our co-host would select questions in this chatbox and ask the questions on behalf of the attendees. We recommend having one volunteer dedicated to moderating the Q&A. In our example, Connor did a good job curating the question list and summarizing common questions from the group.
Our speaker, Syeda, talking about Black!
Our speaker, Syeda, talking about Black and flake8!

Lessons learned and unique challenges

Set-up time for organizers to learn the controls of the system and talk through how you want to run the event

We got together the night before to test things out and we are so glad we did, but we could have allowed us a bit more time. Some things to think about:

  • Set speakers up as panelists
  • Set up multiple co-hosts
  • Have a slide before the start of the event — people start showing up 10 minutes
  • Do you want to have some music before the event? What kind?
  • How do you want attendees to communicate with you and with each other, how should you greet them when they arrive?

Get speakers buy-in

Do not assume all of them want to present via Zoom, some speakers may need additional approvals if the captured footage will be featured elsewhere (on YouTube, Facebook live, etc).

Get speakers to show up on time to test AV before the event

Don’t just test the transitions and screen sharing capabilities, have them present a section so you have ample time to test the voice quality. Our microphone testing wasn’t extensive enough and there enough static noises that made it difficult to comprehend a technical presentation. We recommend asking the speakers to log in 30–45m early, in order to fully test that everything is working correctly.

Have multiple co-host monitor Code of Conduct

The great thing about having a zoom meetup is that people that can’t normally attend show up because there isn’t a geographic barrier. We learned via people’s chat introduction that we have people from LA, Colorado, Spain, Italy as well. However, at the same time, written communications can often be misinterpreted and internet trolls are real. Think about how you’d want to communicate and enforce the code of conduct to make everyone feel welcome and safe.

Think about ways to engage the community

Since we didn’t have a venue for our guests to socialize before the event, we recommend allocating at least 10 minutes before the talks start and encourage people to say hello to each other.

Over-communicate how you’d want attendees to interact with you, with the speakers, and with each other via chat

This is super important, especially if you allow the audience to speak or you’d risk people making announcements during speaker Q&A session, or you’d miss great questions to speakers because the audience asks the questions via chat instead of Q&A. We’ve communicated multiple times via different ways on how we want interactions to happen and notice that the most effective way is to repeat the desired interactions multiple times via the chat feature. But there are limitations to the chat feature as well, with 140+ people in the chat room, it’s a bit hard to follow. We ended up spinning up a slack channel during the meeting as suggested by an attendee, however, only some of the attendees switched to slack. Between twitter, zoom’s chat, zoom’s Q&A, and slack we ended up having way too many channels to monitor. So think through how you’d like the audience to interact, specify communication channels and over-communicate it.

Be ready to improvise

  • What if a speaker didn’t show up to do the AV test as planned?
  • What if the screen freezes during the presentation?
  • What if the host loses connection during the meeting?


Dear meetup organizers, if you can, please continue your meetup online! During this difficult period, it’s really important to give our communities some routine, something that they can rely on. Our communities can help connect people together especially in this season of uncertainties.

While there are a few challenges that require making a few adjustments, online meetups can bring a completely new perspective. We witnessed a few surprising differences compared to our offline format: our speakers received twice as many questions on the Q&A session, most likely because this online format reduces the pressure of asking questions in real-life. We also noticed community members like helping each other in the in-meeting chat.

Overall I’m really happy we continue to provide meetup content for our community. While I love seeing everyone in-person, this is a good time to re-evaluate some of the assumptions we have made up to today. If anyone needs assistance transitioning to a remote meetup, I will be more than happy to help!

Kim, a SWE from San Jose, is reaching out to the community to look for a job


Unfortunately, Zoom does not save metrics about the webinar, so I am jotting down what I remember. On March 11th, our Zoom webinar had:

  • 5 speakers
  • a total of 155 consecutive attendees (less than in-person meetup)
  • 1 Q&A moderator
  • 1 in-meeting chat moderator
  • 1 MC
  • ~16 Q&A questions answered across all talks (more than in-person meetup)
  • ~4 announcements (less than in-person meetup)

A huge thank you

I always sing my praises of Grace Law, because she is our supreme leader and the meetup could never exist without her. All the work that she does behind the scenes is remarkable, and she makes our job as volunteers as easy as possible. Another person that has been an amazing community member and has made this meetup possible is Connor Cantrell, he is the person that suggested using Zoom Webinar, and he is the person that effectively shaped our online format. He was also extraordinary in moderating the Q&A and the announcement sections. The meetup went extremely smoothly thanks to him!
Finally, thanks to Tim Bonnemann (from IBM) for encouraging me to do this blog post, I really appreciate the support he gives to our meetup!

Update: Thank you, Grace, for reviewing and providing edits on this blog post!

“See you” on April 8th!

Your learning will not be stopped by COVID-19, The Show Will Go On. Our next fully-remote meetup will be on April 8th. I hope to see you there!