Last week I was at NDC TechTown 2022, and I decided to write down my thoughts on the talks I saw (including the two talks given at the meetup before the conference) and other related things. Note that I saw just one of the talks scheduled for Thursday due to giving two talks of my own.
There were two talks at the meetup. Robert C. Seacord gave the first one, Arne Mertz gave the second one, and to be honest, I did not like either of them. Content-wise Arne Mertz's talk was fine, but the presentation itself was boring. But to be fair, that might be because it started at 8:30, and everyone had a bunch of pizza in them by that point. On the other hand, the first talk (the one given by RCS) was kinda entertaining but lousy.
Generally, I prefer talks that give me new ideas or contexts to compose thoughts into over well-made talks that reiterate a thing I've known for many years. For this reason, I ended up liking the "Auto-testing for situational awareness" talk by James Westfall.
Technically, the talk was terrible. Bad colour choices, code listings used tiny font that was unreadable when presented. Content-wise, the parts I found interesting could fit within a well-made lightning talk. When I walked past the evaluation box, I saw that it mainly got yellow cards, and I think the talk-as-given entirely deserved it. And yet, I don't regret attending.
There were two essential core ideas to the talk. The first one was that when looking at collected metrics, you need to look not only at current (e.g. today's) values but at the results over time, as the delta between individual results carries the critical information. The second one was regularly updating your dashboards so that correlated metrics are easy to cross-reference. Doing so then speeds up investigations into suspicious results.
As an example, consider a sudden jump in the average memory usage of your machines. Is this a sign of issues with the new release? It might be. But a quick look at work batch sizes might tell you that actually, it is the batch sizes that have changed, and the memory usage change is perfectly fine.
I also attended five other talks. I wrote down some thoughts about them below, in chronological order:
- "Keynote: Abstraction Patterns" by Kate Gregory
It was fine. The talk was competently made and given, and the contents were correct. The issue I have with the keynote is that I would feel condescending if I was giving this talk to fresh grads because I expect them to already know at least 80% of the contents.
And yet, people who do consulting and thus saw more places than I do, tell me that not only are there professionals who need to be told this, there are a lot of them. At the same time, I cannot think of my employer where the team really needed this. I find these two facts hard to square...
I guess the moral of the story is to select your employers well. ¯\_(ツ)_/¯
- "Properties of Unit Tests" by Arne Mertz
It was fine. I think Arne is a boring speaker, but the contents were, again, an uncontroversial recap of good practices for unit tests. It was fun to see how Catch2 solves some issues better than the competition. The talk also gets some bonus points from me for giving me inspiration for two new lightning talks.
- "Typical C++, but why?" by Björn Fahller
This was a good talk. Or rather, a bunch of good lightning talks concatenated into a full-length talk. I liked the throughline with puzzle art, and the contents provided a small set of easy-to-apply refactorings towards using strong types to improve codebases. Even though the contents weren't new to me, I expect this to be new for more people than the keynote and would recommend it to more people.
- "Keynote - The Boeing 737 MAX: When Humans and Technology Don't Mix" by Kyle Kotowick
Fun talk. Also an excellent topic for the party.
Seriously though, the speaker was good, and since I stopped following the 737 MAX saga, it was nice to get an update on the final results. Spoilers: the CEO walked away with a ton of money.
- "Learning Rust the wrong way." by Ólafur Waage
The last talk I attended and also my favourite one. If I had to pick one talk to recommend, it would be this one. Despite the title, the talk wasn't about Rust; it was about learning, approaches to learning and what evidence for the different approaches we have.
This year I gave two talks, "5 Years Of Teaching C++: A Retrospective" (slides, video is not public yet) and "An Introduction To Floating Point Math" (slides, video is not public yet), both on Thursday. I thought the first one went better, as it had enough audience discussion to end exactly at the end of the timeslot, while the second one ended at ~40 minutes due to no audience questions.
Interestingly audience evaluation did not agree with me, with the talk about floating point getting much better results.
As always, the catering was excellent (unlimited ice cream! good food! snacks!), and the AV crew was friendly and helpful. However, NDC TechTown still does not provide the speakers with a screen mirroring the projection. This means that to check what the audience sees or to use a pointer, the speaker has to turn around.
However, this year I was pretty annoyed by the scheduling. When I submitted my talks, one thing I put into the notes was that if I were to give both, I would want to give them on different days. When the agenda was first published, I had one talk on Wednesday and one on Thursday, so that was fine.
Except... about two weeks before the conference, I was finishing my slides, went to the conference agenda, and could not find my talk on Wednesday. Both of my talks were now scheduled on Thursday, in consecutive slots. That was not a pleasant surprise.
Later the scheduling changed again, literally on the day before the conference (I got a Slack DM while on the train to Kongsberg). The floating point talk was moved to the very last timeslot at the conference, Thursday, from 15:00. Overall, this did a lot to convince me not to go again next year, so I am not sure if I will submit to the next CFP.
To make my early impressions even worse, when I arrived at the hotel, I discovered that the room I got this year was atrocious. Oh well.
I got feedback from early readers that this post won't make me any friends due to openly stating when I think a talk was bad or the speaker is boring. I can see it, but I prefer giving honest feedback rather than quietly not mentioning a talk at all.
It recapped some best practices for code review, nothing controversial. I disagreed with some parts, but the differences mainly come down to personal preferences and the style of the project, e.g. I think large-ish PRs are fine, as long as the individual commits are small and atomic. I prefer this for both internal projects and especially for OSS because for OSS splitting up useful features into progressive PRs risks ending up without useful features but with useless scaffolding code. ↩︎
NDC TechTown provides a straightforward evaluation tool for the audience. When you are leaving the room, you walk past a plastic box with a stack of green (great!), yellow (meh), and red (bad!) papers. You then toss one of the papers into the box, which the crew later counts, records, and presumably, NDC TechTown evaluates later. ↩︎
I know that I have the same problem. That does not change the fact that it is an issue. ↩︎
Actually, Hanka got them to provide her with a monitor. But only in a single room, which I luckily also was giving my talk in, and it was on the floor, which isn't a great place for it. Hopefully, they will take the hint for the following year. ↩︎
I wanted to double-check that my title slides match the title written in the agenda. ↩︎
Did you notice that I did not mention sharing the results with the speaker? For some reason, if you want to know what the results your talk got as a speaker, you have to ask for that explicitly later. ↩︎