We wanted to share our experience with people on how we turned the Layer 8 Conference to a virtual, online experience this year. First, the “we” is the organizers, Lea Snyder and Patrick Laverty. We could not have done this without the help of our awesome volunteers. The content committee who spent many hours choosing the speakers to the behind-the-scenes monitors keeping the tracks running. So a huge thank you to all of them!
We also need to thank Jason Blanchard at Black Hills Information Security. Jason has been extremely generous with his time and experience with running a virtual conference. BHIS even made a video about their experience, and Jason explained most of it here: https://www.youtube.com/watch?v=IvwM8qUrmPo The short answer of how we did it is “Do what Black Hills did.” But let’s get into more details.
Once we made the decision to go virtual, we knew that we needed platforms, so we created the Layer 8 Conference Discord server and spoke with streaming video distribution companies. We settled on GoToWebinar from LogMeIn in part because that’s what BHIS used, but also because they were offering licenses for free to non-profit organizations. Layer 8 is a 501c3 non-profit, so we qualified. Thank you LogMeIn!
We used seven streams for the conference, which probably sounds like a lot, because you didn’t see them all. We had:
-Green Room 1
-Green Room 2
-Mental Health Hackers Village
All running concurrently.
That leaves us with five. One of the organizers, Patrick, ran all five from his home office. Here’s what it looked like at one point, during the conference:
That’s five computers, one for each track, plus an extra monitor to watch the Discord channels. It definitely has an “Eye in the Sky” feel to it. It allows for watching for any issues happening in any track like a presenter going over time, a presenter not showing up, or having the terrible luck of their electricity go out literally one minute before their presentation. (This actually happened.)
For preparation, we did a pre-conference “Sound Check” with each of the speakers. This occurred during the four weeks before the conference. Each check only took 3-5 minutes as this gave the speaker a chance to see the GTW environment, see how to turn on camera, microphone, and slides in presentation mode, as well as properly set permissions as needed, in a no-stress environment.
Let’s also discuss some other configurations and issues that arose. If you know of another way to handle the issue that is better than what we did, we’d love to hear it!
Each of the five tracks had its own account in GoToWebinar and each were scheduled to run from 9 am to 7 pm. Four people, Patrick, Lea and two volunteers, were given “Organizer” access to the tracks. The plan was for Patrick to start up the three speaking tracks and for Lea or one of the volunteers to start up their Green Room tracks at 9 am. The speaking tracks started up fine but when one of the volunteers who was an Organizer tried to start up a Green Room track, GTW would only let Patrick do it. Uh oh. That’s an uh oh because each computer can only be logged in to a single GTW stream at a time. That means for Patrick to start all five streams, five computers were needed. Fortunately, a couple older laptops were taken out of storage and the Green Rooms were then started up. If there’s a better way to do this, we’d love to hear it. (Update: One suggestion has been to do this in the cloud. Create a machine for each of the streams in a cloud service provider.)
Oh, so what was the “Green Room” for? Normally, a Green Room is where speakers can relax during the conference, have some quiet space where they can get ready for their talk, go over slides and test the audio-visual equipment. For our Green Room, it was a place where the checks could be done again with one of our conference volunteers to ensure the speaker’s microphone, camera and slides were ready to go. We asked each speaker to get to their Green Room thirty minutes prior to their presentation time. Once their Green Room check was done, they left the Green Room and headed to their track with the “Panelist” permission level. They were also asked to turn their camera and microphone off upon joining their track. We had two Green Rooms because we had three tracks and some presentations had two speakers. We thought doing more than two checks in thirty minutes might have been too much for one Green Room, so we had two.
Each of the three tracks also had a room monitor volunteer. This monitor was responsible for ensuring the presenter had everything needed to get started, to do the introductions, switch them from “Panelist” to “Presenter” when it was their turn, keeping them on time and also helping to handle questions. Each of these were done extremely well.
We had a generous number of volunteers, so we asked them to each put in a 3 1/2 hour shift, from 10 am to 1:30 pm or 1:30 to 5 pm.
We also had a private Discord channel that all volunteers monitored for any issues and could communicate with each other. For example, if a speaker was not in the Green Room twenty minutes before the presentation, the Green Room monitor would ask Patrick or Lea to help find the speaker. If the speaker was not in their track fifteen minutes before their assigned time, the room monitor would check with the Green Room for whether the speaker was there. This also helped with any questions that any single volunteer didn’t know the answer to.
We also had a private Speakers discord channel where they could interact and talk over their presentations or anything else about the conference.
The closest thing we had to a “major” issue, wasn’t even really that major. The way we set up the Discord server was to make all conference channels private and give access to anyone who had the “Attendee” role. There were 457 people who needed to be given this role, so we certainly could not do that manually. We handled it with a Discord bot, or more specifically MEE6. This bot has multiple “helper functions” that it can do from giving new accounts a welcome message, to assigning a role and to custom commands that could display the track URLs and schedule. We sent a Discord invite to all 457 people in advance of the conference, and we set up this bot to give every new user the Attendee role as soon as they joined. This way, anyone who used the Discord invitation would be automatically assigned the Attendee role. They would immediately see the private conference channels, which is where the links to the talks were distributed. However, an hour before the conference kicked off, the MEE6 service went down. Not just ours, but the entire service. This meant that people joining our Discord server could not get immediate access, and were stuck in limbo. MEE6 was intended to be the gatekeeper to the conference and then an hour before, it was as if our bot just called in sick. Lea and Patrick scrambled and started adding the Attendee role to every new user manually, as quickly as possible. Lea even continued to do this as Patrick kicked off the conference’s opening announcements shortly after 10 am. Fortunately, the MEE6 bot had a change of heart and showed up to work during the opening announcements and people were then able to get in again. This single point of failure is definitely one to think about for the future.
Speaking of a single point of failure, there was also the aforementioned issue where one speaker had a power outage at home literally one minute before his assigned speaking slot time. It didn’t return for a few hours. We felt horrible for him. But this got us thinking, what if that happened at Patrick’s house where all five tracks were running? There were additional people with “Organizer” access logged in to the tracks, but would they continue to run? We’ve since learned that as long as there is a user with the Organizer access in a channel, the stream will continue to run. If there is only one Organizer and that person is disconnected, then there would be an issue. So be sure you always have more than one Organizer in each stream.
Everything else about the day went flawlessly. Attendees were able to move around in Discord through the various channels for each of the tracks, plus channels for “Where are you” and “Pets of Layer 8” as well as channels for TrustedSec and Rapid7, partners who attended the conference. We also had channels set up for the Mental Health Hackers Village and the Lockpick Village, where they ran their own schedule of presentations. We had channels for job searches and a place for the speakers to upload their slides for attendees to access.
One additional benefit to GoToWebinar is that it has the ability to automatically record the presentations if the speaker allows it. This step is normally handled at an in-person conference with a team of video recording specialists with cameras and multiple microphones. This is one area that is much easier with the online conference.
All in all, it was a great experience and we definitely feel we should keep the online aspect of the conference even after we can go back to meeting in person once again.
If you have any questions, please send them to firstname.lastname@example.org or find us on Twitter at @Layer8Conf