One other thing to note (from Circle 2) is that you'll want to have 3 or 4 projects under your belt. Contributing to Open Source projects is a good way to do this, also doing work on the Linux Kernel (google 'How to do a linux kernel patch', it's easy and looks really impressive). Definitely have 1 or 2 decent projects you've done yourself, too.
= 3rd Circle: Gluttony =
Time to interview.
Cracking the Code Interview and HackerRank questions, as mentioned before, will get you most of the way. Understanding Agile/Scrum and being able to speak to managerial bullshit is pretty important too.
To be honest, I've failed a lot of interviews. The more you interview, the better you'll get at them. It's best to not seem too hungry, but feign enthusiasm if you can.
The big key to interviews (besides passing the BS questions) is twofold- Being able to 'talk shop', and seeming like someone they would want to work with. In general, talking casually to engineers is just like posting on stackoverflow/reddit/etc, but a lot of college grads fail that. Another mistake I've made is trying to seem too much like a hardcore techie- usually people want to work with someone with outside interests, so talk about cars or video games or Bakunin/Goldman or whatever
Have a salary expectation in mind before you go into the interview. Glassdoor is a useful tool for finding out what people at a certain company make, but companies will manipulate that to make applicants ask for less. It's always fine to aim a little high and let them talk you down. If you can, be willing to relocate- often times places will pay for a move, and being willing to move will open a lot of doors.
Prepare a few references.. In the US they usually won't try to call someone at your 'current' job, so use that to your advantage if needed.
When you get to the on-site interview, don't wear a fucking suit. Ever. Be absurdly polite to everyone, etc.
Message too long. Click
to view full text.