I’ve been an RPG programmer since ‘84. Started on a 34, spent years on a 36, a short time on a 38, and have been working on AS/400s since ‘89. I work for a small contract programming shop (I’m the owner these days), doing financial systems, both package and custom work. If you ever worked on 36s, you may have even heard of us. We did a lot of assembler work on the old S/36, and sold some programmer utilities packages that (among other things) allowed you do a sort of a call/parm type program call on the 36 using good old RPG-3, and a file update package called Global File Power.
My basic custom rate is $110 per hour. That can vary a bunch depending on the work and the customer, but never goes below $50, and averages about $90. We charge either straight by the hour, or bid big jobs. Always pad your bids at least 30% over your best estimate.
On small jobs (stuff under about $2000) or with known customers, we just bill at the end of the month, or at the end of the job, whichever comes first. For larger jobs, or customers where we don’t have a payment history but the customer looks reliable, we charge 25% before we start, 50% on installation, and 25% thirty days later. For shaky looking customers, it’s at least 50% up front, and the balance on installation.
The most important to remember is never undersell yourself. The tendency to cut price because you think they won’t pay it your worst enemy. Especially in the situation you’re in now, where they want to hire you for work on a system you developed. No one, repeat NO ONE can do that job in less than 3 or 4 times the number of hours you can do it in, and maybe more like ten times. You designed the system, you know how it works. Anyone else will spend a lot of time just figuring out where the data is to export, and will always miss something along the way. So go long on your estimate, give yourself plenty of time to do the job right. You can take twice as long as you need to, and still give them good service because it will be twice as fast as anyone else can do it.
We use a standard “Fill in the blank” form we designed for contracts, which we call a Professional Services Agreement. It spells out in broad terms the job and the payment terms, and allows for notes and defining documents to be attached. It has some boilerplate fine print that we mostly never change. They’re just word documents that I update for each job. If you want I can email you a copy (it may take a day or two, I won’t be in my office again until Wednesday or Thursday).
Make sure any contract you use spells out not only the job itself, and the exact deliverables, but also any follow-up services, testing, warranty, etc. We fix bugs for 30 or 90 days, depending on the product, and then charge for anything after that. Phone support is free for the same 30 or 90 days, then billed at regular rates.
If you’re looking at contracting long term, consider incorporating. It’s pretty simple, and has some advantages, especially a sub-s corp. Talk to your tax guy about this, they’re the expert and can make the whole process very painless.
If it were me, I’d go for the cobra at least for a few months. Insurance for one person is expensive!
Good luck!
Ugly