No @
Nick_A never outsource software development, that's the main reason of why stuff gets leaked into the internet. Plus I believe what you want to do is mission critical so that option is not to be considered.
In regards to your main question:
1- Make sure is a US resident, in this way you can run a background check.
2- Ask for certificate of good conduct
3- Ask for drug tests.
4- Ask for Bachelor Degree or +++,
completed education, in computer science or related area. Even though sometimes is not the most important thing. Explained below.
5- Ask for a portfolio of past works or projects, also ask for references with previous companies where he has worked, but related to the position you are looking to fill in.
6- Is very important to pay attention to details of the sample of code and projects. If the person do sloppy shit, that's exactly what you are going to get. Make sure this person is very attentive to details.
7- Test each candidate in person, face to face, no bullshit skype no remote interviews, that never work. If possible prepare a test or hire an online service (i'm pretty sure this exist) and test the candidate through online tests, to verify his knowledge. Obviously the candidate must have knowledge in the company main services.
8- Make sure this person is security conscious, and that is capable of properly securing his development environment.
9- Before hiring this person, ask him to do a mini project, this without payment. Examine how fast, how good is the code in terms of quality. I'm paranoid , but I do development I can examine the code myself, but If I were you I would get that sample of code and get it examined by company like Rack911 or something like that, to make sure is quality and not shit.
If you hire an inexperienced person, you will lose money. You need somebody to start quickly with the job and adapt to the environment.
In this world you will find:
1- Everybody claim to be a professional, even though some people know shit, and should be banned from this area.
2- You will see candidates that have studies, but don't have the knowledge. (Discard)
3- You will see candidates that have studies and know a lot , heck a hell more that what they should know. (Consider)
4- You will see candidates that haven't completed studies (ask for reasons), but know a lot more, even more than the one with studies and knowledge. (Consider)
5- You will see candidates that don't have studies and know shit. (Highly discard). Even though they are great actors and can fool people.
Overall the best candidate should be motivated, skillful in code and in overall knowledge, self maintained, low supervision needed, can be trusted, a mature person - must have overall sense of life (family, responsibilities, want success), should be able to express an idea, should be able to document, must be organized, need to have a big passion for computer systems, and most important : must know how to follow instructions.