Noel and I recently spoke at the Northeast Scala Symposium 2020 (a.k.a. NEScala) and Scala Love conferences. What was unusual for us, as both speakers and attendees, was that both these conferences were online-only!

I’d like to share our thoughts on what worked and didn’t, and what didn’t seem to change at all in this new remote world.

March: Northeast Scala Symposium 2020

The Northeast Scala Symposium 2020 was to be hosted in New York City from March 12-14, and consists of three days of single-track conferences: the Typelevel Summit, the main NESCala conference, and finally the NEScala unconference. In addition, Inner Product was a Gold Sponsor, our first time sponsoring a conference. Why do I say “was to be hosted”? Two days before the conference was set to begin the organizers made the decision that the conference had to convert to online-only, as the coronavirus had started to explode in the United States. I can’t imagine the stress the organizers felt.

At first, I was upset, since I was scheduled to fly from Seattle to New York the next day and now had to cancel my flight and hotel. But in hindsight, their decision was wise.

Thursday’s track, the Typelevel Summit, came quickly, and the organizers had a plan. Luckily for me I could immediately be a canary, as I had the first talk! (You Didn’t Know It, but You Really Want to Learn Sequent Calculus: video, slides)

The talks proceded in Zoom, with questions arriving for speakers via the Zoom Q&A panel, Zoom chat itself, and sometimes in the conference Slack channels. As a sponsor, I especially liked the custom background image supplied by NEScala that speakers were encouraged to display:


Speaker view with sponsors background during NEScala. Image stolen from Ryan Williams's NEScala post-mortem.

Ryan Williams’ post-mortem goes into great detail about running the conference. I encourage anyone interested in more effective conferences to take a look.

On a sad note, I didn’t attend the Unconference on day 3. I was too tired!

Of the many talks, these stood out for me:

  • implicit def bias = stereotypes |+| prejudices, Jeferson David Ossa (video, slides)
    • An important break-down of our conscious and unconscious biases, and what we can do about it.
  • 1000+ Compile-time Errors Later and Running Smoothly in Prod, Kevin Meredith (video, slides)
    • A quick ten-minute summary of an upgrade gone right, benefitting from the solid foundations of static typing and great Typelevel libraries.
  • Streams: Your New Favorite Primitive, Ryan Peters (slides)
    • A superb introduction to streams from a first-time speaker.
  • Comonads and the Game of Life, Rebecca Mark (slides)
    • Poetics! Automatons! Comonads! This talk has everything, including hidden jokes in the diagrams. A must see!
  • Bringing Scala to a Diverse Group of Students, Elissavet Velli, Noel Welsh, and Yifan Xing
    • A three-person panel about Elissavet’s and Yifan’s path into Scala, with moderation and thoughts by Noel. Real talk, no platitudes. Repeated at Scala Love a month later!
  • Understanding Scala’s Type System, Bill Venners (slides)
    • Great explanations and diagrams.
  • Scala eDSLs for Domain-Specific Business Logic, Eleftherios “Lef” Ioannidis (slides)
    • The first talk I’ve seen that was live-coding in a notebook!

April: Scala Love

For me, Scala Love appeared out of nowhere. I saw the CFP (Call For Proposals) a while ago, then promptly forgot about it until the selected speakers started being announced. What a line up! Everybody was speaking, from Martin Odersky, to Scala old-timers, to Scala newcomers, to first-time speakers. It had two main tracks, and then added an extra track, curated and staffed by JetBrains. In a facinating innovation that I hadn’t seen before, it was a mixed time zone conference to accomodate speaker locality (9am-11pm CEST / 12am-2pm PDT). And it was free!

With all these positive attributes, it wasn’t a surprise that so many people attended. During Martin’s keynote that came in the middle of the event–afternoon for CEST, early morning for PDT–there were around 550 people watching the Twitch feed! Most talks had over 100 people, which is a lot compared to most in-person conferences!

Some of my favorite talks from Scala Love:

  • A Scala 3 Update, Martin Odersky
    • Finally convinced me of the goodness of Scala 3. Also, he admitted before the talk he didn’t get to see the other talks because he was busy finishing his slides! He’s just like us!

As a Speaker

As a speaker it’s very difficult to gauge the audience’s reactions when you can’t see or hear them (laugh at your jokes). Speakers need lots of feedback to give engaging and meaningful talks, and most speakers didn’t check in with their audience very often, or at all. We need to explore how to get this signal back to the speakers: encourage more activity in chat, run periodic structured queries to the audience, mass video broadcasting so everyone can see everyone else, and so on.

At the same time, attendees at an in-person conference have no, or vastly reduced, distractions compared to an online conference. Most online attendees were at home or work, which means you don’t get their full attention as there is an expectation they will do parts of their usual work or home routine. To balance this I think it might be better for online conferences to run shorter days—say 3 hours instead of a whole day—as it is much easier to block out the time for a shorter period.

Both conferences had per-track moderators that helped speakers set up and get comfortable, and then gave introductions and helped moderate questions during and after the talk. As a speaker, these helpers felt more involved than in-person conferences, probably because they had so much more to deal with: screen-sharing, multiple chat systems, and so on. They did great.

As an Attendee

As an attendee, the first issue that came up for me after hearing a talk was, “how do I clap?”, to let them know I appreciated their talk. I think everyone immediately had similar thoughts. As an audience we didn’t have many options available, so we started putting clapping emoji (👏) into the chat rooms. I think it worked well, and it was exciting to see the chat start scrolling quickly with clapping everywhere:

example chat with applause during NEScala
Example chat with applause during NEScala. Image stolen from Ryan Williams's NEScala post-mortem.

Secondly, in a “normal” conference setting there is time, and most importantly, space, between talks for people to meet and talk. Conferences had breakout rooms, but I think we, as the attendees, didn’t know how to use them. Maybe we need more structure imposed on us, since we don’t have the physical cues available, with facilitators to keep the conversations flowing?

Last, a bit of a minor benefit of being online: I liked that the attendees could closely experience the pre-talk setup time between the organizers and speakers, instead of merely becoming introduced to the speaker when their talk began. It humanizes the difficult tasks of a conference, and helps the audience connect with the people making it happen.

Summary

Online-only conferences will be the new normal, and they can be as good, or even better in some regards, than the traditional in-person form. For example, in a world where speakers don’t have to travel, conferences have access to so many more wonderful and talented people. And conferences can be much larger for the same reason, no one has to travel in order to attend.

I didn’t mention it earlier, but the organizers, moderators and helpers for both NEScala and Scala Love were fantastic! Everyone was very responsive across all the various pieces of software we were using. After the conference, I was happy to see many thank-you’s to them on social media.

Let us know what you think about our new world!

Appendix: Conference Details to Compare and Contrast

NEScala:

  • CFP: community-curated (attendees voted on the submitted talks)
  • Duration: 3 days
  • Tracks: 1
  • Cost: $120
  • Video: Zoom
  • Chat: Slack, Zoom

Scala Love:

  • CFP: organizer-curated
  • Duration: 1 day (14 hours!)
  • Tracks: 2 + 1 (extra track managed by JetBrains)
  • Cost: $0
  • Video: Zoom (registered attendees), Twitch (public)
  • Chat: Slack, Zoom, Twitch