1) Contacted by recruiter. Asked general questions about my resume, work history, and interest in going to training. Recruiter provided a lot of critical information regarding training, placement, and specifics of the contract.
2) Online coding assessment. Over 2 hours to answer less than 10 questions. About 50% were basic math or logic, and the others were programming (you can choose your language). There was one particularly challenging one, but the others were fairly straight forward.
3) Technical phone screening with one of the trainers. About 30 min long.