Introducing the One-ference: how one Hotjar developer made his own personalized conference
Conferences are great. You get to meet people, learn stuff, not be at work for the day. Joyful.
But let’s be honest: most conferences you go to end up with the two best talks scheduled to clash, then three hours of killing time until the next good one.
Wouldn’t it be nice if you could pick and choose which talks happen, and when?
You could mix talks, round-tables, and plenaries from multiple events to create a conference perfectly crafted to your interests.
Well, now that conferences are all online, you can.
And that’s exactly what one intrepid Hotjarian did. His name’s Piotr, he’s a Staff Software Engineer, and he made his very own Dev Conference-for-One (we’re calling it a One-ference). In this article, Piotr tells us how he did it, what he learned, and his personal highlights. He covers:
- The good things about creating your own conference
- The bad things about creating your own conference
- 3 tips for making a conference-for-one
- 5 recommended talks for devs
Now, take it away, Piotr…
Organizing your own personal conference
For obvious reasons, it was difficult to attend a real conference in 2020.
Most of the conferences I would have wanted to go to all became virtual, but they were either at times that didn’t work for me, or they just didn’t seem interesting enough to attend the whole event.
Additionally, after a full day of work, it’s difficult to spend the full evening in a virtual conference.
So after talking to my Team Lead we decided to try something new: I would prepare a playlist of videos from various conferences, then watch them over two days. I would take the days off, just as I would have if I had gone to a real conference. In other words: fully disconnected from day-to-day work.
Let's start with the good:
The good things about creating your own conference
Go at your own pace
You can speed videos up, or even skip them entirely if they turn out to be of low quality. But be wary of this—you might end up skipping them too often, just because you can. For some people, this part might work better when you're under the constraints of a conference schedule.
Choose your own adventure
You can juggle topics as much and as often as you want. With great freedom comes great responsibility, though: it’s best to know what you want to learn and arrange the playlist around a couple of main topics.
Learn from the experience of others
My intuition was that the more times a video had been watched and the more likes it had, the more likely it was to be good. It sounds obvious, but I wanted to verify it in practice and it did turn out to be true. The opposite was also true (although there are some exceptions), but it didn’t mean the video wasn’t worth watching. I just didn’t feel guilty when skipping it
The bad things about creating your own conference
It’s easy to overload yourself
My playlist had 47 videos at 30-40 minutes each. Obviously, this was too much. I ended up watching 26 talks, which I believe is still too many for only two days. I initially planned my conference for three days, then removed some of the videos to fit within two, but didn’t cut aggressively enough, which made me feel a bit guilty for not getting through them all. Plus, when you add in references from videos that you would like to look at, it’s easy to get completely overwhelmed.
There’s no social part of the conference at all
I’m rather an introvert so never manage to talk to more than 1-2 people during an in-person conference, but having people around me keeps me focused and organized throughout the day(s).
Inconsistent AV quality
Not everyone’s audio setup was good enough for playback. Some videos were choppy, and sometimes the audio quality was so bad it wasn’t a pleasure to listen to the talk at all. But that wasn’t something I could do anything about.
3 tips for making a conference-for-one
- Don’t be too ambitious about how much you’re going to get through. Just because you missed a real conference (or two), doesn’t mean you have to catch up with everything.
- Choose a couple of topics and stick to them. For example, I wanted to learn about some real-world usages of CRDTs and Kafka. This makes it easier to create a playlist. Otherwise, I would have ended up with hundreds of videos on my list.
- Don’t multitask while watching the talks, and remember to take breaks. Take a look at a normal conference’s schedule and plan something similar. (Mini croissants and stale coffee are optional.)
5 recommended talks for devs
- “Stop Rate Limiting! Capacity Management Done Right”: this talk explains why simple rate-limiting with constant limits doesn’t scale. It includes a lot of demos showing how to do this correctly and dynamically with AIMD (additive increase/multiplicative decrease), which is the same algorithm used by TCP congestion control.
- “Consistency without consensus in production systems”: this gives an interesting introduction to CRDTs (Conflict-free Replicated Data Type), used here by Soundcloud, and done using Redis underneath with some Golang wrappers.
- “CRDTs and the Quest for Distributed Consistency”: this is a slightly more scientific take on CRDTs, but still an introductory talk. I found Martin Kleppman a great speaker and bought his book on Designing Intensive Applications. I’m still reading it, but so far it’s a great compilation of both theory and practice. It introduces the major problems that have to be solved in big/distributed systems (transactions, consensus, etc) and then shows how they can be solved with the available software.
- “Is Kafka a database?”: another talk by Martin Kleppman, this one tries to answer the question, can Kafka guarantee ACID? There’s an accompanying article “Achieving Consistency Where Distributed Transactions Have Failed” which shows how one could achieve consistency with a log abstraction, like the one implemented by Kafka.
- “Event Sourcing and Stream Processing at Scale”: Martin Kleppman again, who says, “If an idea is good, different communities will independently come up with it, but give it different names. For example, the ideas of Event Sourcing and CQRS emerged from the DDD community, while similar ideas appeared under the title of Stream Processing in internet companies such as LinkedIn, Twitter, and Google.”
- “Transactions: myths, surprises and opportunities”: the biggest chunk of this talk is about transactions in the RDBMS world. Do you know the difference between Serializable, Repeatable Reads, Read Committed transaction isolation, and can you give an example of a data issue in, say 30 seconds? (If you can't, don’t worry, you’re not the only one.) The talk also touches on transactions in distributed systems. To quote Martin Kleppman (again), “Every sufficiently large deployment of microservices contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of transactions”
- “A Tale of Two Asyncs: Open Source Language Design in Rust and Node.js”: in a nutshell, why node.js and rust became the languages they are. This is a very good, light talk.
- “Extending the Error Budget Model to Security and Feature Freshness”: SLOs for keeping the software fresh enough
- “What Breaks Our Systems: A Taxonomy of Black Swans”: this talk shares interesting details about some really bad incidents
And if you like those, feel free to check out my full playlist.
Go forth and One-ference!
After I shared my story with Hotjar colleagues, we decided to customize a small conference for a small group of us next time—two or three people will arrange the playlist, then all who would find the topics interesting could join, watch, and discuss the talks together. I’m looking forward to trying this idea soon!
Want more tips for navigating the remote world?
Here are our top tips for leading a (newly) remote engineering team.