I was emailed by a recruiter, giving me a link to apply at. You'll fill out a few forms and submit your resume. There's then a phone interview, that's very casual feeling. Then there's a skills assessment that's very long and difficult. It has three parts: speed round, technical, and programming. I recommend finding some "speed round" practice tests that test you on solving as many problems in short, limited amount of time. The technical part isn't terrible. They explain the syntax of a made up language and you have to answer questions related to how a given expression will be interpreted based on that. The programming part is an ugly beast. First, you have to use a poorly executed service called ProctorU that feels very intrusive and very clunky. Research the service. It's a good idea, but horribly executed. I might recommend having the assessment scheduled at an official testing center as opposed to using your personal computer. There will be 4 programming problems to solve, which can be done in C, C++, Java, or Python, and there's no compiling during the exam. I barely finished the first problem, and didn't finish the others. I had to resort to very vague pseudocode. I highly recommend visiting a website called open.kattis.com and practice as many problems as possible. It will only help. Hope this helps, and good luck.