Independent Contractors generally pay their own self-employment taxes, and are as the name implies, operate independently from any company or business which may contract their services. Employees however, work directly for the employer, and the employer is responsible for the taxation process of each employee.
There are many legal circumstances which can determine how workers must be reported. For more specified information, consider reviewing ADP's page on Independent Contractors and Taxes.
These sites range in their true effectiveness, as some do vet those who sign up as contractors rather thoroughly. However in general most people with a fairly basic set of programming knowledge can pass one of their tests and become a contractor with ease.
This has led to a flood of overseas contactors looking to do work at bottom-dollar price points. The reality is, you get what you pay for.
Often times these individuals are not exactly the most fluent english speakers, so not only will you find their communication lacking, but the work is very likely to undershoot the bare minimum.
On the other side of the coin, there are plenty of highly-experienced, skilled, and qualified individuals which can be found on these platforms as well! I always recommend you do your due diligence to check a contractors portfolio and previous work.
This is in part what your contract is for. A contract will ensure that you have legal ground to stand on should something go awry.
Always look for someone who has your interests in mind, not just their own. If they are not willing to advise you on the ways you could be taken advantage of in the IT space, then they are probably not worth your time. Doing work without a contract is usually a huge red flag.
Circumstances will vary, however I always recommend finding someone who has a passion for what they do. There are plenty of highly "qualified" individuals out there, who only do what they do for the money. Consider your working relationship with this person as well - it is helpful to contract someone who at least speaks the same language, to avoid translation barriers and confusion. Promptness in responding to emails and calls is a must, in case you need to get in contact with them. However all of these things can be extremely difficult to verify before you actually begin working with someone.
Having work done without a contract in place, is simply not wise. I would be lying to you if I told you otherwise.
Despite this, small companies and individuals still often take the stance of "I don't really care" which, can come back to bite them eventually.
Imagine a scenario where you "agree to pay someone" without a contract; you let them into your business and show them how everything works, and then they take that knowledge and open their own competitor business using everything you gave them access to, while having never delivered upon what you hired them for. Because there was no contract, you would be unable to take any legal action whatsoever.
This is just one of the myriad of ways "working under the table" can go sideways. The contract exists to protect the interests of both parties involved, client and contractor, so there is usually little reason to overlook one.
The contract exists to protect the interests of both parties, client and contractor, both during and after the project has concluded. Contracts are essentially built to prepre for the worst to happen, while hoping for the best. Include in the contract any provisions you would wish to have under a legal pretense, should you need to excercise that authority. Contracts can range from simplistic to overly complex, and it is best to negotiate closely with your contractor to settle on a set of terms on which you all understand and agree to.
Your contract can (and should) give you the legal authority to part ways with your contractor under specific circumstances, while retaining ownership of the work they have done for you thus far. This is important for getting a new talent on the project quickly without losing whatever progress was already made and paid for, in the event your first contractor does not or can not deliver on the work.
Non-competition clauses are also a very common choice in the IT world, since businesses are often exposing their inner workings, processes, and IP's to their contractors. These clauses ensure the contractors cannot simply take what they learn, and open up their own competing business - sometimes for several years after the work is concluded.
In the event that you need to share customer information or sensitive business secrets with your contractor, I always recommend a basic NDA (Non-Disclosure Agreement) which covers the scope of work and anything the contractor may have access to during that time.
The preferred method for larger projects, is to have the contractor keep a timelog of the hours worked and tasks which were completed during that time, which is then submitted to the client either bi-weekly or monthly and billed at the hourly rate agreed upon in the contract.
Each contractor has a different way of doing this, and sometimes it even varies due to client preferences. In the end, whatever is most comfortable for the client is usually what is agreed to.
Non-Disclosure Agreements (NDA's) are your go-to for protecting your business and any information you share with your contractor. NDA term lengths can vary depending on the scope of the project and type of information involved, but generally a two to five year non-disclosure term should be acceptable to both parties.
In general, reading our emails carefully and answering our questions goes a long ways! The most regular miscommunication I see is honestly just questions that go unanswered.
It never hurts to involve your contractors in company discussions or business decisions, especially where their expertise might be relevant. Regular calls, emails, and feedback about ongoing work, is crucial to my process personally, and can be an indespensible tool for any contractor.