With the current scale of a game like League of Legends, it can be hard to remember the humble beginnings: a small group of developers too busy shipping a game and putting out fires to think about fine tuning systems, pipelines, and processes. And while we’ve changed a lot, our priorities remain the same: we’ll always put player experience before tech and process. Sometimes that leads to tech debt, and as we grow, it's important that we look for ways to improve the quality of our work as well as the way we work. Not every step forward has to be revolutionary.
In my last article, we discussed a problem with titles: they poorly describe the many ways an engineer can develop their career. In response, we developed a system we call Masteries comprised of six attributes that, when combined, create a more well-rounded perspective on an engineer’s capabilities and growth path. In this second article, we’ll explore how we designed the levels and attributes, including the “minimum bar” we expect for engineers at Riot.
Our names are Kyle Allan and Carl Quinn, and we work on the infrastructure team here at Riot. Welcome to the second blog post in our multi-part series describing in detail how we deploy and operate backend features around the globe. In this post, we are going to dive into the first core component of the deployment ecosystem: container scheduling.
Hi, I’m Guy Kisel, and I work on the League client update’s Test, Build, and Deploy team, here to talk about the project's automated testing.
What makes a Senior Engineer a Senior Engineer? When you ask that question, you’ll get a lot of different answers. Some think it’s writing excellent code. Some think it involves leadership. Others believe it requires the ability to mentor others or be product-minded. As we’ll discuss later in the article, everyone is probably right. But if everyone is right, the path to Senior Engineer is murky and unclear, not to mention really hard. How do I become an amazing programmer, and an amazing leader, and an amazing mentor, and more?
My name is Mike Seavers and I’m the product owner for the Engineering Operations group here at Riot. We formed EngOps to help manage, grow, and support our Engineering discipline. Those responsibilities include operating this tech blog, and we’ve been overwhelmed with the response over its first year - so first and foremost, I want to thank you for reading and providing us with feedback to help us improve.
My name is Jonathan McCaffrey and I work on the infrastructure team here at Riot. This is the first post in a series where we’ll go deep on how we deploy and operate backend features around the globe. Before we dive into the technical details, it’s important to understand how Rioters think about feature development. Player value is paramount at Riot, and development teams often work directly with the player community to inform features and improvements.
Hello, David Rook here. I’m the product owner of application security at Riot Games. In an effort to provide the best and most secure game experiences to League of Legends players, we’ve been running a bug bounty program for a few years now. When it comes to finding bugs in our live services, we wanted to ensure that we were listening to researchers all over the globe.
Over the past several months I’ve published six articles that discuss using Docker and Jenkins to containerize a build farm. Recently, I went on the road to tell the story at DockerCon 2016 and gathered a tremendous amount of amazing feedback. In fact, the best part of this whole experience has been the conversations we’re having with folks encountering similar challenges. In this short post, I’d like to accomplish two things: share the video of my DockerCon talk, and respond to requests we’ve received to consolidate my articles into a single place.