Programming for Riot

Nightingale·3/5/2014, 8:15:09 AM·7 votes·8,625 views

I figured this would probably be the most appropriate place to ask, but let me start with a bit of an introduction. I'm a college student currently studying Computer Programming and Database Management. I've been a fan of video games since I was young, so although I enjoy programming in general as a hobby, specifically it would be amazing if I could somehow find my way into a gaming company one day. Not even necessarily Riot, though of course that would be awesome.

The real question here is, and I suppose this would go for any other programmers who might be on the community beta, but what steps should I take to increase my chances of landing a job at Riot? What programming languages would be most beneficial to master, what sort of things should I fill my portfolio with, what should I be capable of doing? That sort of thing.

While I am rather creative, I'm not so much... innovative, I guess? I can't easily think of anything that I would need to program or have the skill to program. Certainly I cannot make a game of my own as a programmer with no artistic skills whatsoever, and any given utility I could think of, chances are already exists and wouldn't necessarily be a meaningful, difficult, or even relevant programming task!

the tl;dr being, what should I do now, in my college years, if I want a chance at a job or internship at Riot down the road?

17 Comments

Riotcautomaton3/5/2014, 7:49:16 PM5 votes

So I am an engineer at Riot Games and I can give you some guidelines.

First, you can check out our LinkedIn Group where we specifically answer questions like this. There's some great discussion there, so it's worth your time to review the archives.

At Riot, we do all sorts of engineering: web development in languages like PHP and Python, big data using tools like Hadoop, server-side distributed programming using Java and game server and client development in C/C++. I mention this to dismiss the idea that you need to study a specific language or discipline. Game Engineering is a rather unique discipline for which there are specific university degrees, but aside from that, a solid core computer science degree can open up the doors to a wide range of engineering positions.

Ok, now to some specific advice:

  • While in school, focus on getting a solid foundation of core CS skills. You'll have plenty of time on the job to learn specific libraries, build tools and so on. Right now you have time to invest in your core CS knowledge. All other advice assumes you're building on this foundation. If you're looking to get ahead, read books like The Structure and Interpretation of Computer Programs and check out these lists for more recommendations.

  • Create something. You don't have to wait until you graduate to start hacking. Passionate programmers can't help themselves from creating things. Try your hand at a couple simple games (PC or mobile). Participate in a game jam. If a new grad can give me a copy of a simple game he made, even if it's rough around the edges, that puts him ahead of the pack.

  • Contribute to something. Even better than handing me a game you wrote, show me the code you contributed to a public, well known open source project. I can't overstate how huge an advantage this is, not just for interviewing at places like Riot, but as an investment in your own engineering career. Contributing to established open source projects teaches you a wealth of higher-level skills: how to work on a large code base, how to cooperate with others, how the teach others to use your code, etc. Perhaps even more importantly, you develop an invaluable professional network with other experienced engineers from around the world. I wish every university encouraged this more. As an example of what I'm talking about, check out the Google Summer of Code project.

  • Know your field of interest. We give special consideration to those passionate about League of Legends. So if Riot is your goal, then participate in your collegiate program or help set one up. Show us something you've made using the Riot API portal. Likewise, if you were applying at Twitter or Facebook or Google, show them something you've made using their tools and APIs. It demonstrates that you're serious about understanding their business and ecosystem.

I could go on, but honestly, if you can demonstrate these abilities you'll already be setting yourself up for success, either with Riot or some other awesome place to work.

Let me know if you have any other questions and good luck!

Bob LLama3/5/2014, 6:00:38 PM3 votes

So I'm not a developer/programmer and I'm not super knowledgeable on how engineers work or how they're recruited here or anywhere else. But I will offer some general advice that can only help:

  1. Build up a portfolio. Make stuff you like. In the end, your portfolio should reflect what you naturally want to be working on (and ostensibly what you're good at), and should help shepherd you to an appropriate position. School is good and all, but the proof is in the pudding. A solid portfolio of actual things is way more impressive than some piece of paper that says you take tests well. Builds lots of terrible things and hone your skills to then build better and better things.

  2. Learn the "why" of things. This can be somewhat challenging. Building a thing is hard enough, but understanding what to build and why gives you much more power and capability professionally.

  3. Learn about the company you want to work at (Riot or otherwise). Riot takes its culture very very seriously. The Riot manifesto is not just a bunch of lip service here, which is what makes it such an amazing place to work. Try to understand why you're a good fit for the place you want to work other than just "I do good work". Companies want passionate enthusiastic folk who believe in the products.

Those are my off-the-cuff suggestions. The fact that you're even asking is a positive sign. Just funnel that enthusiasm into projects, and you'll be amazed at the results down the line. It's not about the things you're building necessarily, but the skills it's teaching you/honing.

GLHF

RiotIIIIIlIIIIIIl10/30/2014, 1:16:21 AM2 votes

Hi Degenerate Pixel!

The first question to answer is what kind of programming would you like to do? Are you a platform/business logic kind of guy? A systems oriented person? Data? The game itself perhaps?

That said, learning the fundamentals is way more important than learning any one language. We use C++ almost exclusively in the game client/server, and mostly Java for the platform services (erlang for chat, tools in C#, python, and more). This is just a slice of all the technology in use at the organization though.

I encourage you to take the hard classes in college. Don't shy away from operating systems, compilers, assembly, functional programming, linear algebra, and more. They will all prove useful no matter where you end up. Also, develop your own engineering practice as well. Start a project independently or with a friend and do it from start to finish. Be ambitious! Open source things and contribute to open source. This is a great way to get good feedback on code quality. Also, read books about good software practices that you wouldn't cover in school.

GLHF Riot3ous

Sir ArmaMalum3/5/2014, 1:21:07 PM1 votes

I know from the Riot Summer Internship Program tips and tricks that making mods for games you've played can help out in programming and game design. You could also ask around if anyone actually wants to make a game. I know I'm personally on the other end, I have plenty of ideas and mediocre artistic ability, but very little scripting capability.

Try exploring game making engines like Unity Player and GameMaker. Scripting is a tall order and saying your experienced in these can show you have experience with game creation. Who knows, you could accidentally make an amazing game during your tinkering! :)

Šerf3/5/2014, 11:45:41 PM1 votes

They answer just about all those questions on the Riot website itself if I'm not mistaken. It's quite helpful when it comes to queries about Riot careers.

Hell Week3/4/2015, 5:22:30 AM1 votes

Back in my Runescape days, i was part of a botting community ( 5 years of my life with a 2k$+ account thrown to the trash like it was nothing... ). Anyways, there was this guy who created bots/scripts and all sort of stuff for the site. He ended up being hired by Jagex and now he's with the "good" guys trying to get rid of all the botters! it's crazy how things went so good for him even tho he was doing something bad for the same company. This is something similar to what SLACKERoo said. If you go above the line, outside box, and create your own achievements along your road to your profession, that will automaticlly put you on top of the list. The more experience you have, the better chances of you getting that job will be. Build your own milestones bro, strive to what makes you happy, and you will find success anywhere you want. Even if it's not with Riot, you will land somewhere good for sure. Goodluck man!