First interview over the phone, then called back for a 2 hour phone interview, first hour with software manager, second with hiring manager. First interview was straight forward, asked specific questions, asked to compile and test the problems, optimize code, etc. Not much interaction with the person on the other end of the line. First part of second interview, the manager had some predefined code to look at and debug (seg faults), but he started with asking me what exactly my engineering degree was, how that could possibly prepare me for a software job, how many classes I have in software and why I like C over higher level languages I have on my resume (I am a C programmer because I like embedded applications and my engineering degree is a mixed degree with a bunch of software mixed in). Needless to say, I didn't get to talk to the hiring manager and I felt like he didn't give me a chance to prove him wrong about his inital decision that I was not good enough to be a programmer. (A note, the first interview was super easy, but I am putting difficult because of the second interview which was not very good).