japhib (NA)
: (Cross-post from Reddit) "Day in the Life"-type questions for Riot software devs
Hey, good questions! I often answer a lot of these questions when talking to candidates who are interviewing :) Note that this stuff varies wildly for Rioters on different teams / projects / roles, so even from two of us with the title "Software Engineer" you might get completely different answers. That said, here are my answers: Intro: I've been at Riot for three years as of this month! Time flies - it certainly doesn't feel like it's been that long. I spent about 2.5 years working on the League client update and even wrote a blog entry about my work at https://engineering.riotgames.com/news/running-automated-test-pipeline-league-client-update - I've now moved on to another team I can't really talk about in detail, but I'm doing similar work - test engineering, build pipelines, development tools, automation, etc. I probably spend most of my time working with Groovy, Python, bash, Jenkins, Docker, virtualized Windows and OS X machines, with some limited exposure to C++, Go, Javascript, and random other stuff. League during work hours: I usually play a lunchtime ARAM with my team. I always take Dark Harvest for ARAMs because it's OP as hell. Later in the day I occasionally play an ARAM or an SR game. Coding culture: It does not feel like a big corporate environment. Every team at Riot has a ton of autonomy to choose their own technologies and tools. We tend to gravitate towards using tools other teams are already using, but it's more that we choose to do it because it's convenient, not because leadership has told us to do so. There's relatively little red tape. Getting stuff to Live sometimes involves a fair amount of process, but it's opt-in process. Experimenting with new technologies: You can experiment as much as you like, but you better be prepared to defend your decisions. We have an internal RFC process where you can propose a technical design and argue for doing things a certain way. If you do something controversial, you'll probably get a lot of comments :) Working evenings/weekends/oncall: Most teams have an on-call rotation. My current team has a weekly on-call rotation where each of us is on-call for one week at a time. I've only been paged twice in three years, though. I work late into the evening maybe once every few months, and I've only done weekend work twice the entire time I've been here, and both of those times were voluntary. Important non-technical aspects: You can see much of this on the careers site at https://www.riotgames.com/en/work-with-us/welcome but generally: be nice, don't be an asshole. When you explain things, can you tailor your speech to the context and knowledge of the listener? What are your strategies for prioritizing work? What are your leadership skills like? How do you handle disagreement? Nice things about Riot: Contributing to something as popular as League is amazing and humbling. I can actually point to a relatively boring piece of the League client (the Third-Party Licenses in the settings) and be like "i did that". My coworkers are all nerds and gamers and generally pretty funny. There are a bunch of really smart, really knowledgable people around for me to learn from. There's a ton of cool tech to work on and learn about. There are a bunch of challenging problems to solve. The internal memeing and shitposting is top tier. Not so nice things: I mentioned earlier that there's a ton of autonomy and freedom for teams to make their own choices. While this is awesome and empowering, it also means that influencing across the company and changing practices is like herding cats. You can't just convince leadership of something and have them proclaim a decision. Instead, you need to go around meeting with stakeholders, writing up proposals, and building consensus. I think overall this is a good thing, but it can certainly be exhausting sometimes. I'm not sure I would change this, though. If you've got any questions about stuff I said, feel free to ask!
crystal65 (EUW)
: Job training at Riot Games Inc.
It kind of depends, what sort of work are you interested in? Software engineering? Game design? Playtesting? QA? Art? In general, experienced applicants are a higher priority. However, for most job types, you can do a lot of self-education and build up a portfolio of projects to use when applying. For example, if you're interested in software engineering, you can build personal projects to put up on Github. We do have some entry level positions sometimes (for example some of the engineers I've worked with came here as their first job after finishing college) but as for training you're kind of expected to self-train and learn by doing. Your coworkers will teach you, but it's not quite like being in school and going to classes.
Shineui (NA)
: Even if there are a lot of Rioters lurking in the boards, do they still seriously consider threads that don't get noticed and popular? I'm afraid that those get tossed aside since they don't get upvotes or views.
I try to read threads at random. Just because a thread doesn't get upvotes doesn't mean it's not valuable feedback.
Wise Alien (EUNE)
: questions about alpha client
There are no in-game differences. The game itself is exactly the same. The client update is just for the part that runs "outside" the game, where you chat with your friends, look at your profile, join a matchmaking queue, etc. You can download the client for your laptop as well. http://na.leagueoflegends.com/en/client-update/download There are update news at http://na.leagueoflegends.com/en/client-update/news
Hige (NA)
: Many processes?
We use Chromium Embedded Framework, which normally runs multiple processes. This is intentional behavior, nothing to worry about.
Emestie (EUW)
: Feedback. 16 things that were better in old client (my opinion)
Thanks for the feedback! This is a really well organized list.
Sahn Uzal (EUW)
: I just happened to see your name while looking at the Red Tracker, and I wanted to tell you your name is absolutely awesome.
Thank you! {{sticker:slayer-jinx-wink}}
kipp14 (NA)
: > [{quoted}](name=RiotSomeOtherGuy,realm=NA,application-id=2E4zVIwd,discussion-id=aMaqTYYY,comment-id=000100000001,timestamp=2016-05-17T22:16:48.956+0000) > > One of the additional technical challenges is maintaining the build/test/deploy pipeline for an entire additional platform. We do a lot of automated building and testing in OS X and Windows, and we'd want to do the same for Linux. We also do manual QA on each platform, performance testing on each platform, compatibility testing on each platform, and more. Also, if you think about it, we're not really just supporting Windows and OS X. We're supporting multiple flavors of Windows and multiple flavors of OS X. If we had Linux support, what distros would we support? I love Linux, but there's a lot to consider when it comes to the question of Linux support. > > Because some of the tech we're using already has pretty good cross-platform support it might seem like it wouldn't be that much more effort to formally support Linux, but you have keep in mind the ninety-ninety rule: "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time." > > https://en.wikipedia.org/wiki/Ninety-ninety_rule To answer the question about distros Ubuntu Debian and openSUSE seem to be the most common non-security focused builds. All of the other builds are for web servers and such and Ubuntu is the basis for a lot of them so the first look at a communications layer between the kernel and the game should be ease to figure out if not program. As I understand most of the automated testing is in docker so if you have the resources all you would need is a new docker bin and some people depending on the version of linux you all use day to day. The driver support is going to be hard if you can't port most of game to a web-friendly style. Heres a link to kind of prove my point https://www.linux.com/news/best-linux-distros-2016 Also happens to update a lot Would like to know how many man hours you think this would take
The question about which distros was a bit of a rhetorical question intended to demonstrate one of the many questions we'd have to ask / decide upon along the potential road to Linux support. You've got your opinions about distros, I've got mine, and everyone else has theirs. Who's right? How do we decide? For Linux automated testing we could certainly leverage Docker for some general testing, but we'd still want to run on real hardware for automated compatibility or performance testing. I doubt many players would play within Docker, so it's not an entirely realistic test environment. Porting the game itself to Linux is a whole different topic from porting just the client update. I can't even begin to guess at the number of man hours this would take. For one thing, man hours isn't an effective way to measure software projects - see The Mythical Man Month for some more information on this: https://en.wikipedia.org/wiki/The_Mythical_Man-Month - additionally, estimates are almost always wrong for software projects: https://en.wikipedia.org/wiki/Hofstadter%27s_law - basically I could think about it and come up with a number for you, but it would essentially be meaningless and grossly inaccurate. Keep in mind there are many different factors involved in deciding whether or not to provide Linux support, and these sorts of more technically minded factors are only some of them. I think there's probably a research part of it too, where players would be surveyed about Linux support or something like that. I just work on the technical side of things, so I can't speak about anything else with any confidence.
SYLVERION (EUW)
: Can't you guys at least make it "wine friendly"?
Please forgive my ignorance (I've never used wine), but what's usually involved in making software "wine friendly"?
: > [{quoted}](name=RiotSomeOtherGuy,realm=NA,application-id=2E4zVIwd,discussion-id=aMaqTYYY,comment-id=000100000001,timestamp=2016-05-17T22:16:48.956+0000) > > One of the additional technical challenges is maintaining the build/test/deploy pipeline for an entire additional platform. We do a lot of automated building and testing in OS X and Windows, and we'd want to do the same for Linux. On the other hand, I'd be happy if you released an unsupported version (like spotify); If it has bugs, well, I knew that when I chose to use it. >If we had Linux support, what distros would we support? Personal recommendation: Officially, only Ubuntu and CentOS. Unofficially that means it'll also run on Fedora, RHEL, Mint, and *possibly* trisquel & debian. While I doubt it'd happen, it would make me ecstatic if you released the source under a [FLO](https://wiki.snowdrift.coop/communications/free-libre-open) license, and then the community could assist you with all of this ;) > Because some of the tech we're using already has pretty good cross-platform support it might seem like it wouldn't be that much more effort to formally support Linux, but you have keep in mind the ninety-ninety rule: "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time." > > https://en.wikipedia.org/wiki/Ninety-ninety_rule I'd never heard of that one. It's a good rule.
Just from my own experience, and not as a matter of official policy, even releasing "unsupported" versions of software can be costly. If software is available, people are going to use it, regardless of whether it's officially supported. People are also going to run into problems, and ask for help, post bug reports, and maybe just have a bad experience. For "power users", this might be totally acceptable, but we have to consider everyone, not just the power users. If I was releasing a personal open source project, I'd certainly release unsupported versions for everyone to use, and just accept that some people will have a hard time. For a more mainstream project, it might be better to just encourage people to use a platform where we have high confidence that they'll have a pleasant experience. Many of us here are huge fans of open source software, but it might not always make sense for all projects to be open sourced. That can turn into a pretty deep philosophical discussion ;)
: > [{quoted}](name=Riot a huevo,realm=NA,application-id=2E4zVIwd,discussion-id=aMaqTYYY,comment-id=0001,timestamp=2016-05-14T02:22:46.731+0000) > > This is something that has been brought up on casual/lunch conversations. It would be great to have, but the amount of effort required to do this is not trivial at the moment. Thanks for the reply. I'd be curious to hear more about what the technical challenges are (CS major here, so jargon is fine).
One of the additional technical challenges is maintaining the build/test/deploy pipeline for an entire additional platform. We do a lot of automated building and testing in OS X and Windows, and we'd want to do the same for Linux. We also do manual QA on each platform, performance testing on each platform, compatibility testing on each platform, and more. Also, if you think about it, we're not really just supporting Windows and OS X. We're supporting multiple flavors of Windows and multiple flavors of OS X. If we had Linux support, what distros would we support? I love Linux, but there's a lot to consider when it comes to the question of Linux support. Because some of the tech we're using already has pretty good cross-platform support it might seem like it wouldn't be that much more effort to formally support Linux, but you have keep in mind the ninety-ninety rule: "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time." https://en.wikipedia.org/wiki/Ninety-ninety_rule
: Some tips for being an S+ Tester
This is awesome! One more thing: If you happen to get a bugsplat, please please please fill in as much info as you can about what you were doing before the crash and submit the bugsplat! It really helps us.
: Fun game! nice plays from the Mad Cow! {{champion:12}} {{summoner:32}} {{summoner:32}} {{summoner:32}} {{champion:75}}

RiotSomeOtherGuy

Level 93 (NA)
Lifetime Upvotes
Create a Discussion