I've been contacted via email to do some custom development work. It's a one-off job for a specific component, but I don't want to get ripped off. What do you recommend I do to protect myself?
Ditto on the deposit. I always get a 50% deposit up front before I start a project. If you don't, you are begging to get ripped off. Someone who does not intend to pay for your work will never send a deposit. If the customer balks, you can always guarantee a full refund if you cannot complete the project as it is defined up front. As tflight mentioned, you need to detail the scope of the project in writing and have the customer sign it. If you don't, a bad customer might hold the second half of the payment as ransom to get you do do much more work than you bargained for. It's called "scope creep" and it is a common problem with projects where a fixed quote is offered. Some people try to get you to add additional features for free.
It depends on the buyer. If he has all good feedbacks and a lot of them then I don't think you would need 50%. I just got a freelancer for 0% upfront and 100% later only if he gets the job done on time but I guess that's just how I roll.
I don't ask for anything but I only let them view the script until I've been paid. I host it on my webserver and let them check it over then ask for payment.
always get 50% prior to starting your project. At most of the freelancing website i.e. scriptlance, you should get 50% advance and the rest in escrow before starting on the project, otherwise you may be wasting your time.. cheers
I charge in intervals if the client is new. For returning clients who have already paid me for previous work, I send an invoice after the project is complete. The key: Don't forget to always watermark your work so the client can't steal it.
Always get a deposit and don't even bother working for someone who doesn't pay upfront. You can phase out the payments depending on the milestones. You can start with 25% upfront and then 25% after certain milestone...