At first glance, technical conferences may seem like a waste of time and money. Why spend hundreds of dollars to fly somewhere to hear the same talks that can be later found on YouTube, or read about same topics that can be found on countless blogs? If you’ve been to any good conferences, however, you’ll know that it’s about more than just the talks themselves. Where else can you:
- Talk with the people who write the software you use every day?
- Discuss the war stories behind the blog posts, and hear about the realities of how the work actually got done behind the scenes?
- Have those random hallway conversations that introduces you to new technologies or processes that could revolutionize your entire way of working?
- Make connections with other developers and invite them back to speak at your office?
Conferences are about more than just the talks. They’re about the ability to learn and make connections with fellow developers who are in the same trenches facing the same problems.
During my time at Hootsuite, I have had the privilege of both attending and speaking at conferences, in addition to being an active participant in the Tech Meetups in Vancouver. The number of connections and conversations I have had over the years have been invaluable for my own career development, including my experiences at technical conferences.
Three reasons why you should send your developers to conferences:
1. War Stories (aka “Talks relevant to your day-to-day”)
Have you battle-tested a piece of technology only to be challenged by its ability to scale? Have you had to produce something that had requirements to be resilient and reliable? Chances are, someone else has also had to overcome these same problems you have been tasked to solve. This is one of many key teachings at a tech conference: learning what others have done and applying (or maybe not applying) it to your day-to-day work.
This is the situation I found myself in this year working with Microservices and Distributed systems at Hootsuite. For the past two years, we have been extracting parts of our PHP monolith architecture into a number of smaller microservices written in Scala. Given the scale of our application, being able to handle high load with redundancy is core to the success of the evolution of our Architecture. Earlier this year, I attended the GOTO conference in Chicago. Hearing war stories about the really hard problems in the world of Distributed Systems was what resonated with me the most.
There were a number of sessions relevant to these topics, but two stood out as my favorites: Kyle Kingsbury’s keynote, “Jepsen IV: Hope Springs Eternal”, an entertaining talk as part of a continuation in his series of analyzing various distributed database systems and putting them through a number of different tests (bonus feature: hand-drawn slides, every single one!), and Caitie McCaffrey’s talk on the Saga Pattern, applying transactional roll-backs to a system she had worked on during her stint at Microsoft when she worked on the game Halo. Being able to load test and deal with fault tolerance are core to any distributed system, and it was enlightening to hear about these battle-tested technologies and experiences. Her talk motivated me to introduce the paper to our team’s reading group (a monthly event on our Platform team where we read and discuss technical papers to gain a breadth understanding of different ideologies). When approached, both speakers were open to the idea of visiting Vancouver and speaking to the tech community here in the near future.
There’s so much value of sharing war stories that don’t necessarily have to paint the rosiest picture: “You always look to where you want to go, not where you’ve been. Your own talk might not seem as sexy as the talk you want to attend. This doesn’t exclude the fact that people a step behind you will find value in your insights.” That quote is from Mark Eijersmans, my colleague working in DevOps, whose experiences at Ricon and MesosCon motivated him to share his own war story at DevOpsDays on our use of DevOps at Hootsuite.
2. Hallway Conversations
Hallway conversations are sometimes more interesting and helpful than the conference sessions themselves. Why? Perspective. We often work with the same group of like-minded people – and that’s both a blessing and a curse. A blessing because we become efficient; a curse because we start to solve problems in the same way. Conversations that give us a different perspective helps to us avoid underestimating the problem and/or over-engineering the solution. As Mark says, “Conferences (and meet-ups) are where I talk the most with other people on subjects I am passionate about. It’s a great check-in for the human insight, and value judgement facet of engineering.”
As a result of conversations I had with folks in the community, we ended up leveraging Kafka for our Event Bus architecture, which has subsequently become a core component of our backend system.
Physically being at a conference gives you these conversation opportunities – something you don’t get by watching a recording of the sessions from home. Edd Steel, my colleague at Hootsuite, talks about his conference experiences at Ricon and Scala Days: “Ricon exposed me to some incredible stuff I might not have sought out on my own.” At Scala Days, he had the opportunity to talk to contributors and original creators of Scala, “How else do you get the chance to chat with the author of the book you’re reading, instructor of the MOOC you just took, creators of the test framework, concurrency framework, database, IDE, and language you are using?”
3. Learn how to Grow Yourself
Whether it’s through war stories or hallway conversations, technical conferences give you an idea about what it’s like to work in another company. In addition to the technical knowledge you gain, you become familiar with the culture of other companies, and you learn to appreciate what it is that you enjoy about your job and your own company culture.
In attending conferences, I’ve come to realize what I value most in a working environment: the freedom and openness of others to share ideas in order to make sound and smart technical decisions at a place where people continually strive to make things better. Working for an organization that is open to change is not something to be taken for granted, and it’s one of the most important aspects of what I value in a job.
This blog post could not have made possible without the editing prowess of @kimli, @noelpullen and @lkysow, the invaluable feedback from @eddsteel, @markeijsermans, @theasta, and other fellow colleagues at Hootsuite who took the time to share their tech conference experiences.
About the Author
Cheryl Li works as a Senior Software Developer on the Platform team at Hootsuite, and is passionate about Scala, Akka, DevOps, and systems of the Distributed nature. Follow Cheryl on Twitter @cherylsyli