In 2019, I had a very busy conference year. I had just become self-employed, which meant I did not have to ask anyone’s permission anymore to go to a C++ conference. And because conferences are fun, I decided to go to all of them. Well, not all of them, but I ended up speaking at quite a few that year: CppOnSea (Folkestone), ACCU (Bristol), using std::cpp (Madrid), 4Developers (Warsaw), C++Now (Aspen), CoreC++ (Tel Aviv), C++Russia (both of them – Moscow & St. Petersburg), CppCon (Denver), ACCU Autumn (Belfast), MeetingC++ (Berlin), and finally CoreHard (Minsk). The latter one was particularly memorable because it was the first time a C++ conference invited me to deliver the opening keynote (and it was an amazing experience – thank you!).
All of these events were amazing in their own way, but I think I overdid it a little bit. So for 2020, I decided to do fewer conferences and try to get some actual work done. I succeeded, but not in the way I expected – as the Covid-19 pandemic hit the C++ community, all events that would normally be in my calendar got cancelled or postponed.
In February 2020, at the C++ committee meeting in Prague, we finished C++20. The international travel bans and conference cancellations started just a few weeks after that. So these days I hear from many fellow committee members how disappointed they are that we finished C++20 but they didn’t get to tell anyone about it afterwards – or at least, not in front of a live audience. I consider myself very fortunate: I am one of probably very few people who managed to sneak in such a C++20 talk just after Prague – and just before Covid-19 hit us. It was the opening talk for C++ Siberia 2020, and since it was such an amazing event and such a memorable trip overall (and my last trip before I started self-isolating), I decided to write up a trip report here.
Russia boasts the C++ Russia conference, taking place twice a year, Moscow in spring and St. Petersburg in autumn. It’s big, international, awesome, and extremely well-organised, having been run by the amazing team at JUG Ru for the last few years. Less well known is the fact that the founder of C++ Russia, Sergey Platonov, has been running another successful conference for five continuous years: C++ Siberia. Unlike its bigger cousin, there are no commercial event companies like JUG Ru involved. Instead, it is completely community-driven, non-profit, local, comparatively small, raw and authentic. And so when Sergey suggested that I could come to Novosibirsk and speak there, promising a lot of fun, I just couldn’t resist.
When I arrived in Novosibirsk, I found the city to be covered in one metre of snow. This was wonderful – having lived in the UK for the past five years, where winter isn’t really a thing, this was just what I needed. Getting around the city was a bit adventurous – they carve little steps into the snow so you can climb up onto the sidewalk after crossing the street, and the traffic lights are halfway buried underneath the snow that you are walking on, with just the top half sticking out. I’m originally from St. Petersburg, and we never get these amounts of snow there.
The hotel they put me in was pretty good – definitely on par with the usual European conference hotel experience, and ahead of several places I’ve experienced in the US.
The actual conference venue was a short five-minute walk away and quite unique. It was basically one huge space, with a sort of cosy urban hipster vibe that I really enjoyed. The space was divided into three areas: one with seats forming an amphiteatre (this was where the talks were being held); a bar area that was serving good local craft beer and decent coffee; and a lounge/socialising area featuring a foosball table as well as an armwrestling table.
Throughout the venue there were comfortable little corners with sofas and tables, great to have a conversation with fellow attendees or perhaps to get some work done on your laptop while simultaneously watching the current talk on a screen above you. I definitely enjoyed both the space itself and the warm and friendly interactions I had there with the people attending the conference.
I had the honour of giving the opening talk of the conference. I decided not to re-use another conference talk, but to prepare a new presentation exclusively for C++ Siberia. Since I would not submit this talk anywhere else anyway, I also decided to give it in Russian. In the past, the opening talk at C++ Siberia had been held in English on occasion – by some well-known people like Eric Niebler and Ivan Čukić. But the attendees are all locals, and the rest of the programme is held completely in Russian, so I decided I might as well make my talk as accessible as possible.
Since the conference took place just after the Prague meeting, and we had just finished C++20, I ended up with a talk titled “How C++20 changes the way we write code”. I hope it turned out alright! The video is available here. Feel free to check it out if you want to know what I sound like when I speak about C++ in my native tongue.
I really enjoyed the rest of the programme. The PVS-Studio folks were, as always, demonstrating different interesting types of bugs that their static analyser had found in real-world projects, and how to fix them effectively (immediately relevant for the practicing engineer); I learned a lot from Ruslan Manaev about how to approach reflection in C++; and concluding the conference, Pavel Novikov gave a great treatment of my favourite topic – initialisation. There were many other talks that I do not mention explicitly, but the overall quality of the programme was high, and there were many useful things to take away.
On the first evening, one speaker had to cancel their talk at short notice. No problem! Sergey pulled off a spontaneous ad-hoc lightning talk session instead, and got everyone to contribute, which was a lot of fun. I played my part by delivering a completely unprepared Russian-language rendition of my CppCon C++ Easter Eggs lightning talk. Thankfully, it was decided that the lightning talks will not be recorded on video.
The hospitality of the Russian people is the stuff of legends, and C++ Siberia didn’t disappoint. We had a great social programme. The conference dinners were great – Siberian Pelmeni are the best, and the smoked bear meat wasn’t bad, either. There was a trip to the local craft beer place (it had a great selection on tap, but unlike a pub in England they then pour your beer of choice into a 2 litre plastic bottle for you to take home). But the ultimate experience was an evening in a proper Russian Banya.
The concept is basically to grab a small group of friends and rent a hut in the countryside for a whole evening which contains a banya – a Russian type of very hot steam sauna. After making the fire and getting the banya going, you alternate between lounging about in the main room, eating and drinking, then going inside the actual banya, sweating, hitting each other with bunches of dried birch branches as a type of “massage”, and then afterwards jumping butt-naked into a pile of snow. It sounds weird but is actually a lot of fun. By Western standards, the whole thing might not be considered the most inclusive activity – banya is usually segregated by gender, although exceptions are not unheard of – but it is a cornerstone of Russian culture, and in case you’re up for it, it is a great way to make new friends and have an amazing time.
I had so much fun in Novosibirsk that I ended up staying a day longer than planned. Ignat, a fellow C++ developer I met at the conference, was very generous and offered me a city tour on the day after the conference concluded (thanks again!). This was super interesting – the best way of discovering a new place is to stick with the locals and listening to their stories! In terms of sightseeing, there’s not much going on in Novosibirsk, apart from a large WWII memorial and a museum. But what I really enjoyed most was just walking around and absorbing the vibe, which is completely unlike Moscow or St. Petersburg or in fact any other Russian city I’ve visited before. My favourite place was the bank of the mighty Ob River. People were outdoors enjoying themselves, building snowmen, and celebrating Maslenitsa. It was a beautiful day. Little did I know that I wouldn’t spend another day outdoors like this for a very long time.
To conclude, I have to say that the Siberian C++ community is truly awesome. They have earned a special place in my heart and on my conference calendar. Thank you so much for this event, and for treating me the way you have! I am really looking forward to C++ Siberia 2021, and even if you don’t speak any Russian at all, I encourage you to come along for the ride. You will have a lot of fun, meet a lot of amazing friendly C++ developers you would have never met otherwise, and experience an authentic side of Russia which is completely unlike anything else you’ve seen before, even if you have already travelled to Moscow or St. Petersburg.