This story is an outlier (10x!) and probably should have involved more communication, but the ultimate lesson checks out.
I used to be so embarrassed to send my invoice or charge more as scope increased. If something went unpaid, I'd rather eat the cost than reach out with a reminder. Turns out it's more likely someone didn't think about it or forgot than any sort of malice.
As a contractor, you think of money in terms of actual dollars – rent, food, etc. When you're paying the invoice, you think of it as a resource used to get either get results or get your own time back.
It's not that companies don't care about money (they do, a lot), but the math is much different on their end. Money can feel like an equalizer (it's how we serialize time, resources, etc into a common way to transact), but if you're a contractor, you can make way more if you understand the perspective of the person paying you.
For example, proactive communication and hitting deadlines is much more important than saving costs.
On the other hand I've grown to be wary of customers who push for a fixed price. They are usually doing that because they know something that you don't.
fixed price projects are like handling dynamite. A sophisticated client can use a fixed price contract to extract a huge amount of work/value from an ingorant consultant and a sophisticated consultant can use it to extract a huge amount of cash from an ignorant client.
My advice to both sides of the fence is clearly, _very_ clearly, define the scope, schedule, and a rock solid change order process for changes.
SMEs in my experience generally are able to handle change in scope and billing easier than larger ones.
This is the equation. When you quote on the input - that's the time you need to do the job, you multiply your rate for the weeks/days/hours, plus maybe some other expenses. This is the so-called "Hours and materials".
When you quote on the output, you take in consideration the overall value/gains you client will make by your work. This is called "value-based" pricing.
This equation is unbreakable, if your input is grater than the client output (ROI), something is very wrong, or completely illegal.
Some says value-based pricing is the holy grail for pricing anything, but if you're smart enough, you already understood that, based on circumstances, sometimes it makes more sense to quote on the input, other times on the output. Just do the math.
This may be a classic example of "value-based" pricing. It doesn't matter how long you take to make a static HTML page (input), the client overall project budget is probably over $100K (as stated by op), it's totally ok for them to invest ~20% of it to make sure it delivers on time and by specs.
As a contractor hourly work is often relationship suicide every 2-3 years when your value is questioned no matter how great the baseline.
To move towards value based pricing, and not splitting hairs on time and hours, by billing minimum half or full days with the understanding not much gets done less.
Of course value based pricing, at a weekly or monthly retainer is the next step.
I’ve done all of the above.
The client doesn’t care if it’s an html page it’s the value it creates or enables.
Rarely do most businesses wake up wanting to buy more tech and software dev, they have business problems or outcomes to solve.
If the solution was a single html page I wouldn’t even talk to the client in terms of an html page or not.
Charging someone £10k for a solution can be better if you know you can do it quickly and changes the math for the buisness. They are more likely to pay a higher amount for a solution rather than an hourly rate.
I save my clients 20-30% across the board on their digital transformation projects, the solution price or rate doesn’t matter compared to the 6-7-8 figures I lace in their pocket.
Solution pricing can be further extended into contingency based pricing. Have the clients gather pricing for you and then hammer home a better deal and have a cheque cut for the portion of the savings.
I still remember how I felt when I sent that first invoice. I was beating myself for not sending the invoice every week in the process, yet there I was with what I thought was a giant bill.
For context, the company that commissioned the work paid over $100k for that single page (I was in the email chain). It was part of a wider campaign that involved a whole lot of work, interviews, filming, celebrity appearances, etc. I just checked and the page is still up!
Ps: it involves that reliable car company, news paper, and mothers.
I would suggest Home Manager though, which will let you set up your environment just as well and is very portable, while still affording you a mainstream host system of the company's choice.
It would be interesting to be a fly on the wall and listen in when infosec calls you and asks why your laptop disappeared from their monitoring tools and you told them you installed nixos (assuming that would even be possible) because that's what you prefer.
Often this is activation scripts, e.g. home-manager will complain at you if you are attempting to overwrite an existing file not managed with home-manager unless you tell it to forcibly overwrite the file.
You can get yourself into situations where even in NixOS land, switch-to-configuration will refuse to switch due to some kind of violation, e.g. a systemd mount service wholly failing. I've had an experience like that recently.
The Nix store is not a perfect get out of jail free card for this, everything impure must be wrangled by something eventually.
What I'm really trying to say is, the world is messy and full of impurity, it's unavoidable. The thing that manages Brew, casks and app store applications for you within nix-darwin is no different than home-manager managing home.files or switch-to-configuration acting upon systemd.
In a similar sense, knowing how to work with the builtin tools of major OS is a huge advantage. If you can write your code in vim or nano or notepad without breaking a sweat over your favourite hotkeys not working, that's a lot of hours saved.
> Unable to load feed, Incorrect path or invalid feed
;)
One of the 'mistakes' (conscious at the time) I made when doing technical consulting remotely was only billing for productive, focused hours when I'd be actively typing and mousing on the problem.
Someone suggested that, if I wanted to go for a walk to think about a problem (which is something I did), I should bill that. I decided that was a slippery slope.
Had I been working on-site, which consumed all my time without flexibility, then I'd bill for every hour on-site, and maybe for travel time.
But since we were doing remote (this was before Covid), with hours that I set -- and my clients were serious people, working on serious stuff -- I wanted to be serious too.
In the UK at least, you would need to be careful that by allowing people to waste your time (and them paying for it) you would be breaking the dreaded IR35 tax rules by appearing as a “disguised employee”.
HMRC won’t tell you the exact rules but one of big tests is do you retain control of your time or not.
You need to be upfront with clients about what they are paying for or you could both be in for a nasty surprise.
Just the fact that they issued him a laptop and specific software would tend to indicate that he's an employee not a contractor.
https://www.gov.uk/government/publications/off-payroll-worki...
Along with a handy tool at https://www.gov.uk/guidance/check-employment-status-for-tax
I used to get contracts checked to see if they were Outside IR-35 and I knew I wasn't the only one. So it isn't straight-forward as you suggest.
It can also scare companies off, I have personally experienced this. As a result there are far less Outside IR-35 work. Almost every contractor I know has had to go back perm.
I understand there were many Contractors that basically milked forever contracts, but it kinda screwed over loads of freelancers.
I personally hate being perm. I used to work about 6-9 months a year and I found it relatively easy to find another contract. I had plenty of free time. Now I get the standard 1 month and bank holidays. Really pissed off about the rule changes.
My story of being paid to do nothing involves spending a month waiting for my own PC and login details at a large corp, being billed at $1200+ a day. It was mind-numbing and demotivating and I soon left.
Hopefully these experiences made me a better manager when I started hiring contractors. I always had a computer & user account ready, scripted any local environments needed and work lined up, plus never asking them to start first thing in the morning due to my experience of waiting around in a new office whilst waiting for everybody I needed to arrive and have their first coffee. Just because somebody is a temporary contractor doesn't mean you can't show them some respect for their time & profession.
These kinds of costs are baked into every level of the company. This is a place where they calculate it costs about $30,000 to add a period to the end of a sentence in a static website.
That is really common for contractors, I've had it numerous times and my peers have said the same.
As long as you're organized and quantify every line item and have proof of sign off on things that increase scope and have emails to back them up, you can usually established your ethos as someone that is honest and doesn't try to fleece them, then companies are fairly reasonable.... that is, unless they are in a bad situation where they probably can't pay their vendors or contractors.
And that is something that is a burden on the contractor. Don't agree to work for a company if there are red flags present from the get go. Even if the promise of pay looks good.
The best are boring large to mid size companies.
I tended to avoid start ups that just needed a specialist for a few days. The issue of money was always a sticking point. Let's just say if they could barely pay their own or themselves then how would that bode well for you?
if you're doing this then you likely will never have a problem no matter how much the invoice is. Organization and authorization (sign-off) is the key, if there are no surprises then they'll pay every time.
> The best are boring large to mid size companies.
I agree, Accounts payable doesn't have any emotional attachment to any amount at these companies. If the invoice has the right approvals/criteria then a check is cut no matter what the amount is.
The static HTML page is ancillary.
Flipped it around now. If a client is eager for fixed pricing on something that seems simple, I dig deeper. Usually there's a reason three other contractors already passed on it.
The psychological bit about being embarrassed to invoice is spot on though. Took me years to stop treating invoices like I was asking for a favour. The framing shift that helped: you're not asking for money, you're confirming a transaction that was already agreed.
I was invited to a meeting with a group of investors to provide feedback on a tech project.
Afterwards, two of them and I went to a nearby hotel for a sandwich and a soft drink to discuss the project. The bill for three sandwiches and some drinks was £125. They didn't even blink.
For me, that was the price of a month of groceries at the time.
The most I ever got paid working for a company was for a basic project where everyone was moving super slow and people felt comfortable enough to watch YouTube videos in front of their boss and one guy came into work one day wearing his pajamas.
The least I got paid (inflation-adjusted) was a consultancy which had an extremely over-engineered software stack and daily deadlines... Every morning standup started with "What did you get DONE yesterday? What are you going to get DONE today?" If you couldn't point to a specific feature which was FULLY DONE end-to-end, there would be a long awkward pause or the boss would make a negative remark. Their definition of DONE was 100% polished, no iteration; had to be perfect the first time; the boss would sit with you through a very tense one-on-one meeting and go through the detailed requirements for each task word-by-word. The company environment was set up to make it difficult for you to ask question; like the author of this article described so this made it difficult to meet all requirements exactly on the first attempt, let alone given the short deadlines.
I struggled to make sense of the full horror of this industry until Christmas this year; I was at my parent's house and was using their microwave (a popular brand) and it was the most awful UX I had ever seen on a microwave. I literally could not imagine a worse UX if I tried. You couldn't just pin-in the seconds/minutes and press start, you could't extend the start time mid-way through the process and it was hard to start as you had to push a bunch of specific intermediate buttons whose labels made no sense and it would start a fan which kept running even after the microwave was done; I had to pull the plug to get it to shut up... Anyway, this made me think "Wow, my industry sucks... This is the worst software and UX I've ever seen and yet people are still buying this machine! The guy who designed the UX for this thing probably got a promotion too and now giving orders to others about how to do good UX..." This isn't just an outlier 'microwave industry' thing though; this dynamic is present everywhere in the whole tech industry; this was just a particularly striking example.
(Also maybe the fan was wired to a thermostat?)
I found the more I got paid the better I was treated. I had one client I was doing work for under my previous employment. When I left I charged triple what my previous employer had been charging. Not only did they not bat an eyelid about the price but they started treating me better as well.
The worst customers were those working on slim margins, for a while I was doing a lot of work for component distributors. They were terrible to work for.
(it was a classic 1972 FIAT 500L, it was ~£3200 at the time IIRC)
I was told flat out by freelance clients I was (too) cheap. But one time I quoted a much larger project than I was used to, and the client (who was also a relative of someone close to me) insisted on a higher number.
It ended up roughly being the down payment on my first house.
I was ultimately surprised how much time actually went into that Webflow project. Like OP mentioned (in the article) clients never make time to participate or give early feedback. Most of the time they don’t even know how being actively involved in the process will save them money. Is it the service providers job to educate them?
TLDR; like the article says. Sometimes you just have to ask.
Problem seems to be clients don’t know what they want early on and when they start to see progress they understand more what they were actually expecting. Obviously you’d try to get this out of them during project planning.
And when that happens it’s better to move the contract to hourly rather having it fixed price
But you are also right about having a strong contract
Or when there are multiple stakeholders involved. It’s a never ending stream of making the logo bigger, then reducing the size.
These days I just charge an hourly rate. It's so much easier. Just turn up, do the work, go home. If the requirements change or I have to wait for an asset, no problem, I'm getting paid.
One day I got a call from him saying that our 'mutual' customer had an urgency job. They were supposed to do a national roll-out of a new payment system, but seemed to have forgotten about a bunch of legacy PoS systems that were still operational and couldn't easily be replaced. Because I was seemingly the only one that was still familiar with this particular system (I worked on it once in the past), the end-customer approached my friend whether I would be available to do this quick. This was in late November, and the rollout was planned for Januari. Because this end-customer is a government org, I realised we'd be guaranteed they wouldn't be working during the holidays (which, in my country is typically 2 weeks for Christmas and new-year's), so really we had only 10 days or so to get it done in time for their team to test it before they holiday shutdown.
I didn't feel like doing such a complex job on such tight deadline. So, I quoted a much higher rate than normal. I also quoted for a multitude of hours that I thought was required, due to the typical overhead that this large end-customer would surely incur. Finally I also added a retainer fee, because I knew that if problems would occur (likely on the last day before the rollout), I'd have to drop anything I was doing and work for them.
I got the job.
I worked feverishly to meet the deadline. I cancelled commitments on other projects, paid an extortionate amount for testing hardware and overnight delivered to my office, bought very expensive testing gear, signed all the NDA's required to work on PoS card payment interfaces, etc. I then worked basically round the clock for 10 days straight to get it done. I did get it done in time, submitted the code to the repository and fired an email to the team-manager that it was in fact done a day early. ...I was greeted with an auto-reply the manager would be on holiday till mid-January, which was the week that entire new payment system had to be rolled out nation-wide.
I wasn't feeling great about it, but my friend urged me to send the invoice for the work I had done, and also the retainer for the rest of December and January. This would allow the customer to write of the expenses in the current calendar-year. I sent the invoice, it was the most amount of money I'd ever invoiced, and I'd normally invoiced per month, this was for a mere 10 days.
December passed, no response from the supposed review team. I stayed on stand-by, declined any other work, stayed sober during the various new-year's office parties, always brought my laptop along, etc.
January came and went. Still no response from the code review team. The new payment system was due to be rolled out mid-january, but nothing had happened. The company had done extensive ad-campaigns beforehand announcing the new payment convenience for their end-users, so the only 'feedback' I saw were frustrated users on Twitter. I still felt bad about charging for the retainer.
This kept going. At some point I did stop sending invoices for the retainer. My friend always paid me in advance (the end-customer was notoriously slow to pay, though did always pay in the end), and I didn't want to cause him too much exposure.
To my knowledge, the software I wrote was never used in the end. To the public it was stated that the PoS systems were simply too old to be upgraded (not true, obv) and that they'd replace them 'soon'. It is now 4 or 5 years laters, the old PoS terminals are still there, sans the functionality I added.
By pure coincidence, years after the job I found out that an old friend of mine, who was also a freelancer at the time, was tasked around that same time by the same customer to do a code-review of a supposed PoS system upgrade. Without realising, he reviewed my code! He was under the same time pressure, and did the code review during Christmas to deliver the results on time before the national rollout in mid-January. He also charged a huge amount of money for it, was also paid, and also never heard about it again. At least he said he remembered being impressed by the quality of the code, and didn't find any defects. So that's about the best outcome of the project I guess.
My takeaway from this: If you are a freelancer, and a large customer wants something done in a hurry, charge more than you ever dared, don't feel bad about it. You'll find that suddenly there isn't as much of a deadline anymore. If the customer declines due to the price, you should be happy for dodging a bullet.
Some discussion then: https://news.ycombinator.com/item?id=19921386