1. Know what you need. Don't go to a freelancer assuming he understands, or cares, about your product as much as you do. 2. Be clear on every single functionality about what you need. If there's something you did not define, the freelancer will mostly always choose the easiest to implement and probably most unwanted option 3. Have a wireframe. Always use a wireframing tool to make a "flow" of how your app will work. If you can't use mock up tools, use powerpoint, but please have something ready 4. There is nothing like a cheap, or expensive freelancer. It's mostly all experience and knowledge. What you want is someone who can make what you need, and has done similar work before. A good question to test out someone's basic tech knowledge is to ask them if they know the difference between, hashing, encoding and encryption.