Over the last few years I have been on a mission to get a degree, then move over to the US to work on games projects. I knew about 4 years ago that the games industry in Australia was going to struggle based on the ever rising Australian dollar against the US dollar. I also knew I had to get a degree so that US immigration would allow me in the country.
So over the last couple years I been going towards that goal, and earlier this year I was able to start the job hunt after I gained the degree.
I hit a wall though - US employers are much more "fussy" than Australian employers I've encountered. When you get to a senior level in Australia it becomes more about a chat about what your career aspirations are, while at the junior level tests are often performed over the phone or off-site.
In the US, whiteboard interviews are common for all role levels. Whiteboard interviews are where you sit in a meeting room for the entire day, with a fridge full of drink and a whiteboard. Members of your peers will come at you each hour and ask you to whiteboard things up based on various questions. One problem - anytime someone would ask me to whiteboard something up I'd freak and get nervous. Speaking to others; it seems to be quite a normal problem; people have a natural anxiety in this situation.
I knew I had to fix this whiteboard phobia, and make myself better able to present. The tactic I chose having recently finished a University degree, was teaching Algorithms to first year students. Having to write on the whiteboard for the first tutorial caused a huge amount of anxiety, but after the 2nd or 3rd time presenting the materials to the students suddenly I was becoming much more relaxed. The teaching didn't just affect the ability to write on the whiteboard comfortably, it was more fundamental than this; it affected my ability at public speaking in general. I was much more comfortable at standing up and just talking to a large crowd.
The other main thing that US employers want is really decent knowledge of performance and algorithmic problems. They want you to be able to reason about problems and present them. They will often ask you to look at a piece of code, and then come up with a more optimal way of presenting it, or ask you question and make sure you are able to understand it. They want this knowledge that goes down to the hardware level as well as the software, and they want you to understand how your code will have bigger impact beyond just the micro-universe you are dealing with.
How do you make yourself a better candidate in this regards? Reading and much more reading. As part of the University degree we covered algorithms, but based on the discussions with others I knew that the materials presented were just the tip of the iceberg. Big O complexity is useful but not the end of the conversation. Go beyond the material, ask people questions, ask about different material. I asked several people where to start looking, probably to their annoyance. I watched online videos about how cache/hardware worked. I read the documentation for the different CPUS. In regards to Algorithms I read/watched online videos as much as possible, I experimented with the compiler and code bases.
This had the consequence when having interviews with teams that had very low level development teams I was able to understand at least in part when they asked questions where I should begin hunting for answers. While I may not be an expert, I at least knew which algorithms would work best or what the constraints were for a certain issue.
Another major thing I did in regards to interviews, failed interviews are something to learn from. Each time I took action from what was the failure, be it improve my public presentations skills, or researching the topic that came up in the interview. Companies love it when you take something that was presented in an earlier interview (or even earlier in the day) and you go off and research the material and expand on it. This makes the staff doing the interview feel like you are engaged in the material and speaks loads about your personality to them.
In the end all this work had the consequence that I had multiple offers from multiple employers and that is how I made myself a more valuable employer. I have learnt that you should never let your skills slip, always research, always expand them in ways beyond just the computer and on an interpersonal level.