What do I need to know about contracting as a programmer?
October 30, 2022 7:40 PM   Subscribe

I've only ever worked for established companies, and want to make sure that I don't make any major mistakes

The situation is pretty casual, and they're willing to do pretty much whatever I want structurally. I don't feel like there's too much to worry about, but well, that's why I'm asking! I should note that I would be dealing directly with the company, not going through an agency etc (if I were I imagine I wouldn't need to be asking this!)

I know that I need to make sure to set aside money for taxes, as that's something that often burns people who start doing contract work. But is there anything else? I do not have my own corporation, but as far as I know it shouldn't be too necessary for the sort of work I'm doing (at least based on the advice of just one friend)...but I'd be open to hearing other opinions.
posted by wooh to Work & Money (3 answers total) 5 users marked this as a favorite
 
I have a FT job and once in a while I moonlight after hours doing remote consulting work for some friends and ex-colleagues. It's also a casual relationship like yours. I do it solely as 1099 income and haven't incorporated myself. The expenses are minimal and I don't need to call attention to myself in the eyes of the IRS by deducting home office space and whatnot.

The one thing I did do was put together a very solid Master Services Agreement document. I started with an MSA from a friend and then hired a lawyer to review it and strengthen the necessary parts.

My MSA, among other things, describes the nature of the business relationship, who is handling the taxes (me), confidentiality, ownership of intellectual property, termination, arbitration/disputes, payment terms, and most importantly: liability. That's a pretty serious one and the real reason why you do this kind of document.

The MSA is signed once and doesn't indicate the work to be done, deadlines, rates, etc. That listed in a separate document called a Statement of Work (SOW), and I generate a new one for each chunk of work that's being requested. The SOWs are covered by the terms in the MSA that were agreed to earlier. This way the lawyers on their side can review the MSA and sign it just once. Then the SOWs act like purchase orders and are signed off quicker. It also lets you easily adjust your rates up and down, go fixed price or hourly, yadda yadda, depending on the work.

Is it bulletproof? Probably not. But it does help me sleep better at night. If you want to look at mine drop me a memail and I'll try to help out. Best of luck to you.

(PS: Always go hourly to start, never fixed price. Set a cap on hours if that makes the customer feel better. But promising a completed, bug free, project for one price will lead to problems. You may slip, the customer may start making changes, etc. Never work for free.)
posted by JoeZydeco at 8:20 PM on October 30, 2022 [8 favorites]


I've been a contract programmer in the video games industry for the last 4 years, and here is some unorganized advice (US specific) that I was thinking about turning into a presentation eventually:

Before you do any actual work you absolutely need a written contract that clearly covers payment terms and IP ownership. You can either start from one that the company has used in the past, or suggest your own template. You will have to negotiate the specific terms, and this isn't as scary as you think it is! Keep in mind that negotiating terms will take some extra time before your contract actually starts, usually a week or 2 in my experience. I agree with JoeZydeco's contract advice.

My default contract terms are that I send an invoice once a month with detailed hours, ask for an explicit approval/receipt process, and expect to be paid within 30 days of approval. For IP ownership make sure it is VERY clear what work the company owns, I've had to request changes to this on almost every contract I've signed because they used terms like "work related to the company's area of business" which are way too broad. I've never had a client reject my requested changes to IP ownership terms, but I have had to actually negotiate over payment terms before. One client really wanted to pay me by the day instead of by the hour, but I was working irregular hours so negotiated that to "8 hour day equivalents" and invoiced that.

With a casual situation and small companies, the actual risk of a lawsuit is extremely low because it would be a huge waste of time and money for both sides. So, the goal of a contract is to make things as clear as possible to avoid any confusion about responsibilities on either side. There is a high chance that you will NOT be paid on time at least once, so be prepared to send polite reminders about the payment terms. Depending on the company, I've been paid via ACH direct deposit, international wire transfers, and Zelle which have all worked fine.

You definitely don't need to create a full corporation to do software contracting, but you might want to start a simple LLC using something like LegalZoom so you can invoice as an official company. One of my clients had to formally confirm that I was contracting via my LLC instead of under my own name, because they needed to prove to California that I was truly an independent contractor and not a misclassified employee. Sole proprietorships and simple LLCs are both "pass through" for tax purposes which means you invoice as a company but pay taxes using your individual SSN. I made an LLC and applied for an Employee Identification Number as part of that, which I then used to open a separate business bank account. Having a separate bank account is good because it helps you to keep your business finances separate and makes it easy to file for deductions. The official address of my LLC is just my home address to keep things simple

On the tax front, you will need to pay Estimated Quarterly Taxes and you will almost certainly want to hire a real accountant to help you understand the rules. I set up a meeting outside tax season with a local accountant before I set things up, and then later used them to file my taxes. You'll have to send a W-9 form to each client with your SSN (or EIN for a corporation), and then they file a 1099 at the end of the year (if they paid more than $600 and are US-based). Several of the companies I worked for filed incorrect W-9 forms because they were incompetent, but my accountant fixed it at tax filing time.

For accounting and actually getting paid, my business and personal accounts are at the same bank so I just do a simple transfer which is an "owner draw". I use Wave for my invoicing and accounting, which is mostly free (they have an overpriced credit card invoice system that you don't need to use) and syncs with my bank account. At the end of the year I export my invoices and expenses from Wave to csv and send that to my tax accountant. It takes some time to set up a new client, but once I do it only takes me an hour once a month to do all of my invoicing and accounting (plus a few days at tax time).

Getting this all setup to start with took around $500 and 2 weeks of filing forms, maintenance is $200 a year in my state, and these fees are expenses/tax deductions. It might be overkill if you only have one client, but it wasn't that hard once I got started. LegalZoom was easy to use, but they tried to scare me into paying them $200/year to be a "registered agent", which is only worth doing if you care about hiding your home address in the state registry. Anyway, that's way too much advice, but maybe some of it will be helpful!
posted by JZig at 10:49 PM on October 30, 2022 [4 favorites]


I worked as a consultant for about a decade.

Here in Connecticut, sale of programming services is subject to sales tax, hence I had to register with the state. This required an initial fee, posting of a permit (on my bedroom wall), filing monthly reports, and, of course, forwarding the tax receipts to the state. The monthly form was pretty brief, but annoying. Even more annoying was that I had to send the report whether or not I had received any income and collected any tax. I missed one month, and had my hand slapped (though I don't remember exactly how; perhaps a late fee).

I did have a dba ("doing business as") name (Noroton River Software, if you're interested), but I don't recall having a checking account in that name. I think telling the bank was all that was necessary on that end.

The other major issue was health insurance. We got insurance with a new carrier every other year for one reason or another. This began about 1986, and the insurance landscape was somewhat different. Still, there are little insurance agencies all over the place. We found one which was pretty helpful. They were responsible for some of the changes in carrier because they all change offerings and prices every year, and no one insurance remains the best choice very long.

Your employer will probably issue you a vendor number which you want to put on your invoices. Its purpose unite all the different charges for 1099 reasons.
posted by SemiSalt at 9:33 AM on October 31, 2022


« Older Where can I go to reset my body and brain?   |   Help me figure out this Halloween gravestone pun Newer »
This thread is closed to new comments.