The First Virtual .NET Oxford meetup

This week we had our very first attempt at a virtual .NET Oxford event! And it seemed to go pretty well! We were joined by Mark Rendle to talk all about Roslyn! We also had a 10-minute lightning talk by Megan who works at our sponsor company, Corriculo Recruitment talking about the state of the the job market due to COVID-19.

So I thought I'd write this blog post to talk about it, as well as the decisions made and the reasons behind those decisions.


One of the key things that was very important to me, was that it felt like a physical meetup, and not a one-way stream, or everyone individually watching a YouTube video. For me, the whole point of a user-group is the social interaction with like-minded people. Also, getting to meet and chat the speaker in person (even if it is via a video-conferencing medium).

So because of this, here are a few decisions I made...

Not live-streaming to YouTube

A few user-groups I've seen have used Zoom and set it up to live-stream to YouTube. I can understand the appeal of this, potentially opening it up to more people. However, for me, if someone wants to attend the event, I want them to attend and actually be there. Joining via Zoom feels much more like people are attending rather than invisibly watching in secret via YouTube.

It was recorded anyway, and I edited it and published it to YouTube. So anyone that couldn't make it live in Zoom, will still be able to watch the content.

Another issue I see with live streams to YouTube, is you get all the chat at the start before the meetup officially begins. Because I edited the recording, I was able to get rid of everything but the main talks, add transitions, etc. I even considered overlaying the messages from the group chat window onto the video at the times they were made - but didn't get the time to do that.

Nagging everyone to turn on webcams

I also tried to persuade everyone to turn on their webcams - both in my group emails about the event, and also the intro-talk. And I was very impressed with the number of people that did! In a physical meetup, everyone can see everyone else - no-one is invisible. The speaker can engage with their audience. And the audience engage with the speaker, and get involved. Whilst the audience can still get involved via typing in the chat window or via audio - it's much better with both webcams and mics turned on, feeling far more 'in person'.

And the speaker even tweeted afterwards saying how much of a difference this made...

Zoom as the platform of choice

There were a few platforms I could have gone with - Zoom, Microsoft Teams, Twitch, etc.

I haven't used Twitch, but from what I gather, it's more for one-way live streaming. The audience can participate via a chat window - but not to the extend that I wanted with webcams and gallery views. If I've got this wrong, please let me know!

Another option was Microsoft Teams. I really like Teams within a work environment. It also has something new called Teams Live Events, and you can find a good video from James Montemagno demoing this. So Teams would have been my second choice. I haven't played with the Teams Live yet - and I'm not sure whether you get the same level of audience participation as with Zoom, or if it's more like Twitch - it's certainly on my list of things to look more into!

I've seen Teams used for bigger events like the MVP Summit, which very quickly switched from a physical event to an online event due to COVID-19. This didn't use the Teams Live functionality, and definitely felt very collaborative, and it was really impressive the speed that Microsoft turned everything around and made this big event virtual. I did see lots of MVPs having issues getting access though - which is something I was concerned about - I didn't want to have to do IT support trying to work out why people couldn't access the meetup. I believe Teams Live shouldn't have this issue as you can view anonymously. So basically, this might work well, but I need to do more investigations and play around with it.

I'd already used Zoom for meetings, and knew it would work well. There's also functionally in there that I wanted to try out that Teams doesn't have - for example, Breakout Rooms (see below).

Note that I wrote the above before we had had the meetup. And after having the event, I can say that Zoom worked perfectly! We'll probably stick with Zoom for the near future, as we have no reason to change. To move to something else, would be changing platform for the sake of changing.

Also, whilst the default max attendee limit is 100, our sponsors, Corriculo Recruitment are paying for a Pro licence with an additional guests add-on, allowing up to 500 participants.

The only small issue I had with Zoom is the inability to 'react' to group messages. Ie. like, thumbsup, etc. This would be a really useful addition.


There were a few options for recording - Zoom local recording, Zoom cloud recording, or streaming to another platform like YouTube. As mentioned above, I didn't want to live stream, but I assume I could have streamed privately to YouTube. I ended up just going with the Zoom cloud recording, hoping that it didn't go over the 1GB limit. The final video ended up being 1.7GB, but luckily Zoom didn't stop recording, or even stop me from downloading it. I just got an email saying that I'd exceeded my limit. Next time, I might look into streaming privately to YouTube.

After the event, I then downloaded the mp4 from Zoom, and edited it in Camtasia. I removed the chat before the event started, but decided to keep the chat during the break and afterwards, as there was some really good conversation in there!

Camtasia also has a nice feature when publishing to YouTube to automatically generate a table of contents based on markers. So whilst the same video includes my intro talk, Mark's talk, Megan's lightning talk, and the chat during the break and after the event - there's a nice clickable table of contents in the YouTube description to jump to each section.

Prize Draw app

When .NET Oxford first started over 3 years ago, I wrote a WPF prize-draw app which connected to the API to pull down RSVPs to draw from. I've recently added Zoom integration to this (see my blog post with details). Given that my integration involves writing webhook events to Azure Table Storage - I thought after the event, that it might be interesting to dump out a chart of the number of people in the meeting throughout the course of the event. So I wrote a small bit of code in LINQPad to generate a chart...


On the night, the prize-draw app worked perfectly. Although, I need to add a black-list, as a couple of staff from our sponsors were drawn, so we had to redraw! As I write this, another meetup (.NET South West) will be trialling my prize draw app tonight using the Zoom integration. Looking forward to seeing how it goes at another user-group!

Breakout Rooms

During the break, we trialled using Zoom's Breakout rooms functionality. This allows the host to create X number of rooms, and have Zoom automatically divide everyone into those rooms. Joining is optional for the participant - they can stay in the main room if they choose (or go back and forth between the main room and their breakout room). This is great because in a room of 100+ people, there'll probably only be a handful of people getting involved in the conversation. Having smaller rooms of 5-10 people more simulates a physical event where everyone "breaks out" into smaller groups to mingle.

We got good feedback about this - however interestingly, I created a Zoom poll at the end to see what everyone wanted to do for the "virtual pub" afterwards...


So out of the 13 people who said they were staying, only 2 wanted to use breakout rooms. Bear in mind that at the time, no-one knew that only 13 people were hanging around, so breakout rooms probably wouldn't have made sense anyway. But this poll might have looked very different if it had been asked about the break, rather than the after-event chat. I think I might send out a Survey Monkey poll asking for feedback on both this, and the event in general.

Zoom Invite Link and

One final point to mention for those that are doing similar, is once the event starts, attendees can no longer RSVP on Meetup. Which means that they won't be able to see the Meetup online Zoom invite URL! We experienced this first-hand with none other than the speaker himself! Oops! I hadn't twigged that he might not have RSVPed, and wouldn't have the invite link. Luckily, in the chat beforehand, someone pointed out that he had asked on Twitter for it - so I quickly DMed him the invite link. So it's worth making sure that even with all the other things you have to think about when kicking off your very first virtual meetup - ensure the speaker knows the address of the venue!


So, in summary - it worked really well! Everyone seemed to have a great time, and we got really good feedback! We even got feedback from a couple of people who live abroad, saying that they hope we keep up a virtual presence in some form after the lock-down ends, so they can continue participating!