This is a fairly long topic, so I'm going to break it down into pieces.
What kinds of software do I do?
I'm mostly a "back-end" developer, meaning things that work on a server, unseen by end-users, as distinct from "front-end" things that work in their browsers or on their phones or tablets, where visual appeal is very important. (I also do command-line programs and so on. If you're not sure, just ask.) "Front-end" software may talk to software I develop, and I may make small modifications to them, but they are not at all my forte.
I also generally do not do web sites (things to present your content), as opposed to web applications (which store, process, and retrieve data).
Fixed Price Projects
I may make a fixed-price bid on your project, but only if you have used my roadmapping services for it first. In this case, the roadmapping fees will be deducted from my bid. Project-based work is done remotely (barring any meetings we agree on before starting), on the schedule we agree on for completion and any other milestones.
I generally require a 50% deposit up front, and the rest within two weeks of completion. For unusually long projects, we may negotiate other milestone payments.
Buying My Time
When working time-based, I mainly do remote part-time (ideally about 20-30 hours/week) B2B or 1099 contracts, in a staff-augmentation capacity (usually including reviewing others' code and having my code subject to review). I will also consider:
- a short "commute" (from Fairfax City, Virginia);
- brief work (up to a month) at 40 hours/week;
- light travel (up to two weeks at a time, up to 20% of the time);
- temporary (up to six months) W2 employment,
- and solo work.
I will do staff-augmentation work only if you already have good processes and tooling set up. (If you don't, perhaps you need my advice service first, and time to act on it!)
As for my rate, I don't have a fixed one. I start with a high rate ($175/hour), but you get significant discounts for:
- bringing me the work (vs. me hunting it down),
- staffing agencies (vs. direct clients),
- work on a temporary W2 basis (vs. B2B/1099),
- looser time-tracking (e.g., "by the half-month" versus "to the minute"),
- prepayment (including retainers),
- and having used my roadmapping services for this project,
- plus credits (non-cashable) for early payment.
On top of all that, I'll negotiate a little bit. On the other claw, all travel (and related) time, and all other overhead you inflict, count in full, and I may also raise my rate for various other hassle-factors. Also, rush-work, work outside of normal hours, and assorted other unusual conditions, cost extra. For details, tell me about your project.
I generally bill every half-month (never less often), net-27, with a deposit of one invoice's worth of estimated billing (applied to your final invoice), though these too are negotiable.
- I will fix for free anything that we both agree is a bug in software I wrote. (This will usually require that there be requirements, or at least approved tickets or approved tests. There is a deadline of one month after your acceptance or two months after my submission, whichever comes first.)
- I will learn for free anything that I think I will likely use on later contracts for other clients.
- If work tracking is left up to me, I prefer to manage it in a "small-a" agile fashion. We agree on stories, I estimate them if you need, you prioritize them (and feel free to reprioritize, add, and remove them at any time), and I work on them in current-priority order. This can easily be fit into most of the big-A Agile or Lean methodologies. (Of course, if you've got other ideas, the customer is always right, and if I'm part of a team, I'll do whatever the team decides on.)
- Don't bother contacting me about working for Bloomberg, Comcast, or Gannett. It's not necessarily anything against them, but there are contractual obligations, prior submissions, etc.
- I am not open to "permanent" employment, changing careers, relocation, spending months on the road, or working for equity. Please do not contact me about such things; I treat them as spam.