Formatting Your Code
Why style matters
Universal Programmers Toolkit
Care and feeding of your code collection
Effective Proactive Debugging Techniques
It's all about the tools
Good Programming Practices
What to do (or not)
Banning Bad Bots
A short but effective script
The Joy of Specs
How to (almost) guarantee a successful project
Habits of Successful Freelancers
Advice for success
How to Become a Great Programmer
One easy lesson!
Bidding on a Stranger's Project
Freelancing 101 - Don't Send That Email!
Pick up the phone instead
Ensuring Your Web Site Project Succeeds
Advice for clients
How to Take Great Photos (And Fix Lousy Ones), Part 1
Composing and shooting your photos
How to Take Great Photos (And Fix Lousy Ones), Part 2
Editing and postproduction
Recently I was in a position to hire a freelance programmer to complete a short C++ project (a standalone Windows application) for one of my clients. As is often the case, my client wanted this program ASAP.
Normally people hire me for their programming needs. On the rare occasion that I hire a programmer myself it's because either I'm crunched for time and/or I'm dealing with technologies I'm not particularly familiar with. In those cases I usually farm out parts of my projects to friends/associates who tend to be programmers I've worked with in the past.
In this case, none of my usual contacts panned out so I turned to the Internet to find a programmer.
For a variety of reasons I looked on Craigslist (craigslist.org): it's quick, simple, and gets a lot of traffic. I selected the San Francisco Bay area of Craigslist because I figured that city would have a large number of programmers.
Here's the ad I wrote:
I'm looking to pay somebody to write a standalone PC (Windows) program to do the following:
User specifies a latitude, longitude and radius, and specifies units of measurement for radius (i.e. whether radius is in feet, yards, miles, meters or kilometers). Program then looks in a given folder (also specified by the user) and all its subfolders (recursively) for all JPG files whose EXIF latitude/longitude falls within that area specified, and copies (NOT moves) them to a second folder (also specified by the user). If the destination name already exists it is given a unique name so nothing clashes (e.g. if foo.jpg already exists it attempts to rename it foo.1.jpg; if that already exists it attempts to rename it foo.2.jpg; etc.)
So, the interface would look something like this crude example:
Radius: [_____] [Dropdown: feet, yards, miles, meters, kilometers]
Look in folder: [__________] [SELECT]
Move to folder: [__________] [SELECT]
Program should be able to be compiled with Microsoft Visual C++ 2005 Express Edition (although I'll entertain other compilers/languages if necessary). You will supply a working executable, as well as all the necessary source code library files for me to recompile.
Please give me a quote that includes what you would charge and how long you expect it would take.
I got approximately 23 responses to my ad, each of which tended to fall in one of the following categories:
Right off the bat, half the responses were reasonable enough for me to pursue so I rejected the rest. Upon investigating the reasonable responses more closely they fell into the following categories:
The prices I was quoted ranged from $100 to $10,000, which is a huge range. While I pursued the lowest few bids first, I ultimately went with the one whose responses led me to believe they would be able to complete the project competently.
For those of you bidding on projects for people you don't know, here are the most important criteria:
Copyright © 2017 by Kim Moser (email)
Last modified: Wed 09 January 2008 17:29:55