Try Freelancer.com (or any other market place with lots of participants).
Freelancer.com is good for your use case because:
- Many users from all over the world bidding in an auction for your project => usually you get very competitive prices and no negotiation hassle
- Nice payment options with milestones and ratings => give you a good control over the project development and progress and at the same time force you to think about specification and what should be done at which milestone
- Granular categories: you can get really anything from embedded C++ devs over Ruby to copy writer who write a book for you
Only drawback (but this drawback is with all agencies or contractors): after work is done you are in some dependency to your contractor and introducing the work to a new contractor costs time and money. So, you have to look that the chosen guy has a fair after work policy and doesn't demand day rates beyond 1,000$
To solve (somehow) this problem the pros usually choose two contractors for each critical tasks and let both know that there's another one doing exactly the same. This leads to better competitive prices after the project is finished but has to be keepen through the entire project and doubles the cost.