Why wouldn't you want a job like this? Well, if you need money now or in the near future, it's a bad choice. Or if you want any sort of job security. Or benefits. The honest truth is that 90% (that's just my conservative estimate) of projects like this fail in their first 6 months, and the coders never see a single cent. You can always put the work on your resume, but work on a web site that still exists looks a lot better to an employer than work for a company that's disappeared from the face of the earth.
Not every "eventually"-paying job is bad, but the bad ones tend to be the rule rather than the exception. It's up to you to figure out what level of risk you want to take. When you work on one of these projects, you might just be putting your valuable time at stake, or you may be staking your livelihood, at least in the short term. So what can you do to assess the level of risk and protect yourself? Well, I'll tell you:
Any individual or group that claims that you will be getting paid at some time in the future is functioning as an employer, An employer is, be default, a business, and is expected to act professionally, in the manner of any other business. If things don't seem to be very "businesslike" to you, red flags should go up. If the employer seems like they really just want to be friends with you and get some coding done in between forwarded e-mail jokes, that's not a business and you're heading swiftly away from anything resembling a paycheck. But the point is, if they claim they'll "maybe", "probably", or "definitely" pay you at any time in the future, you're dealing with a business.
1. Know who you're dealing with
Forum posts, and the Internet at large, are anonymous. "Charles", MBA-holder and president of a New York start-up which just needs a few unpaid-for-now employers to get off the ground might actually be Bernie, who's running the whole show all by himself from his aunt's basement. Start asking questions. If your contact is an individual, then he/she is obligated to supply you with:
- Full name
- Address of operations -- This may be a residence or an office, but a PO-box is NEVER acceptable.
- Phone numbers -- More is better. Demand a land line number; having only a cell/mobile number or an answering service is NOT acceptable.
- Social Security Number and date of birth.
If your contact claims that the work will be for a licensed business, then instead of a SSN, you need to be supplied with a Federal Tax ID number. The same rules apply for address and phone number, but also get these for your contact and, assuming you're dealing with a small business (which you are -- big businesses don't post listings to Internet forums), the same information for the company's President/CEO.
In addition, you should ask for e-mail addresses that are not Hotmail, Yahoo!, MSN, AOL, or similar addresses that can be obtained easily and anonymously. Request e-mail addresses with the name of your contact's company or service provider. And look at the e-mail address, too. If it looks like email@example.com or firstname.lastname@example.org, that's a lot better than email@example.com. Use common sense!
2. Ask for a business plan
No successful business, even one with only two employees, gets off the ground without a business plan, and you'll never get paid by an unsuccessful company. The shortest business plan might only be three pages, but it needs to outline clearly how the business plans to operate for at least the next two years, and must include at least a rough estimate of when it will begin to generate revenue. If the business plan makes sense, good. If it seems at all far-fetched or idealistic, be skeptical.
3. Verify, verify, verify
Store all of the above information where you won't lose it, and verify each datum one by one. How? Well...
Social Security and Tax ID numbers can be verified with the IRS. This will take quite a few phone calls, but is the most important step.
The first step to verifying a phone number is by calling it. See who answers. If you're dealing with a company, expect the person answering the phone to identify the company immediately ("Thank you for calling Company X, how may I direct your call?"). If you're dealing with an individual, expect them to answer. If someone other than your contact answers, ask them who they are. This has a lot to do with gut feelings -- does the person on the other end seem professional and to know what's going on? That's a good sign. Do they answer, "Hullo?" and say "uh.. uh.." a lot? Does nobody answer the phone during business hours? Do they have no answering machine or an unprofessional answering machine message? These are all warning signs. Once you've got them on the line, it's a fine opportunity to ask them any questions you might have, particularly the things in this little guide.
The next step is to figure out who owns the phone number. Typing it into Google (in (###) ###-#### format) might come up with this for you, and might turn up some other interesting information, too. If not, this web site has a couple of great resources. It has links for reverse lookup and also Fone Finder, which will tell you what city and what phone company the phone number belongs to. Once you know what carrier the number belongs to, you can call them and find out more about the number.
Addresses are a bit trickier to verify. You can type the address into mapping sites (like MapQuest) to figure out where it is geographically, but that's only so useful. The best way to verify an address is to find someone, anyone (a friend of a friend of a friend, or a relative) who lives in that city and have them drive by the address. If the physical location matches what your contact has described to you, then good. If not (e.g. your contact claimed that it was an office complex and it's actually a bungalow in the suburbs or an empty lot or a Mailboxes, Etc.), more red flags!
4. Start digging
Dig up everything you can about the business. Google the name of the business, your contact's name, and any other information you have -- addresses, phone numbers, e-mail addresses, and so on.
If your contact has given you a URL or an e-mail address, one of the easiest things you can do is run a WHOIS search on the domain name. Just go to easyWHOIS and type in the domain name, and you will get the contact info for that domain name. Sometimes it will just be the info for the hosting company, but otherwise it should match up with what your contact has told you. If the information that WHOIS supplies is different than you expect (it has the name of a different business attached, or is in another city, state, or country than the business' location), then you should start asking your contact questions.
If you're dealing with a licensed business, they should be on file with their city's Better Business Bureau. Give them a call. If you're dealing with an individual, ask for references from other people he/she has worked with, and follow up on them.
5. The contract!
This is the most important item. If you ever want to get paid, DO NOT WORK WITHOUT A CONTRACT. Read the contract thoroughly. If you find any of the terminology even remotely confusing, have a lawyer or, in a pinch, a student of business law or an MBA read over it for you. The contract should contain no surprises -- if it has names of people or businesses with whom you haven't dealt with, make sure to ask who these are. If you expect to be compensated for your work, the contract needs to state very specifically when you'll get paid, be it after X months or X lines of code or when the company reaches X monthly revenue. If this section of the contract contains any nonspecific terms (e.g. "approximately" or "soon" or "within a reasonable period of time"), demand that a new contract be drawn up with more specific terms. If to do work now and get paid for that work retroactively at some time in the future, then ensure that the contract says exactly how much you'll recieve for each hour or each line of code, and exactly when. Again, do not accept any "fuzzy" terms. Make sure that the contract states exactly how much you'll be getting paid, beginning when, and with exactly what frequency. If it does not say you'll be getting paid at least every two months, start being skeptical. If it does not state the exact interval between paychecks, demand that it be revised. The rule here is specificity. Again, have a lawyer look over the contract with extreme prejudice.
Once you've started working, if at any point the employer deviates from the contract, call them on it immediately. Do not wait around an extra week for your paycheck, do not let the payment deadlines set in the contract slip or deviate, and be aware of whether the company is adhering to its business plan.
It's fine if you talk to your contact primarily via e-mail. For people in our field it's only natural, and is often a faster way to get done. But if your contact seems to be evading phone calls on his/her dime, then you should start worrying. If you don't hear from your contact for extended periods of time, start worrying. If your contact seems to be making a lot of excuses for anything, start being skeptical and asking questions.
As a member of a small team, you should be watching the rest of the team. If you're one of two or three coders, make sure that the others are pulling their weight. Especially if they are your contact or superior. If they're not pulling their weight, make sure that you are compensated for your extra work. Do not accept excuses, ultimatums, or equivocation.
Following these guidelines will help to protect yourself when working in an "eventually"-paying situation, but there is no guarantee that you will be appropriately compensated for your hard work, and you should be continually aware of this. Follow the above guidelines to a tee, make no exceptions, accept to excuses, and always be a skeptic and hopefully you won't get burned.