66 comments

[ 0.23 ms ] story [ 85.2 ms ] thread
Agencies regularly charge $50k+ (on the low end) for what amounts to hours and hours of customizing a Shopify template. I was pulled into a $150k rebrand and Webflow project where the latter accounted for 40% of the budget. It was a splashy home page that violated every rule of good page design (scroll jacking, progress bars, heavy animations) and 3 inner page templates that was essentially a set of the same blocks ordered differently (thanks Boostrap!!).

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.

On the flip side I’ve seen many projects go way over budget when a client is actively involved and introduces scope creep that turns into launch blockers. You learn quick to have strong contracts if doing fixed price bids.

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.

This is so true, scope creep is real when the client actively gets involved

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

I feel like this is where LLM's/agents could actually help a lot. I don't like all the hype, and think that long-term projects would be better off without heavily written LLM code in any form, but stitching together stuff for a client seems like the perfect use-case, as long as they understand it's not the final product.
Hey I wrote that :)

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.

Fyi: NixOS would shine everytime a client handed you a laptop for the gig. Your working environment reproducible and declarative. Setup in minutes, not hours.
NixOS rocks, but if there is some software you need to install to comply with company policies (e.g. Vanta) then you may be in for some unexpected tinkering.

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.

What do you do if they hand you a Windows machine? Demand WSL? What if they don't give it to you?
(comment deleted)
2015 me didn't know that. But chances are, I wouldn't have been able to install it with their company software policy tools.
Ansible and vagrant is easier and battle tested.
Knowing how to work with builtin tools would shine in that environment. I first learned this style in a Spolsky blogpost were they talked about Wasabi, a language that compiled to either PHP or Visual Basic I think it was, the idea being that those languages were preinstalled in most servers of the era.

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.

Having to figure out how to make whatever random god-awful corporate software they got sold work on nixos -- on a deadline -- sounds like seven circles of hell.
Last I checked, nixOS handles vm's quite fine. The idea is to recreate your rig on cunsulting client hardware. OP mention he prefers to work on client's supplied machine. In fact at that level of consultation, 2 machines should be provided, a daily driver laptop, and a workstation with a hypervisor. Therefore, having those configurations declaratively stored, would save some time. either thru ansible playbooks.. nixos, of course recently there is a third option.. a cli agent like claude code.
Absolutely not, the company laptop will be locked down and you won't be able to install your own OS.
yeah i was a little confused by the suggestion. If a client hands you a laptop to use for a project then there's corp. policy reasons why you have to use it as a contractor. (some companies have serious teeth in these policies)

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.

I think there are ways around this, you can always request a separate internet line in your work area, or slap a firewall between your space and their worklan, turning your workspace essentially into a lab. I mean we could probably take a look at pen testing scenarios, I'm sure you don't limit pentesters to your tools when they come into your workplace right? I wouldn't limit a high cost consultant with my tools. I think the reason companies provide a computer, is more for the benefit of the corporation, we want all code, iterations, and notes left behind, it's our product he/she worked on, how do we know all material was handed in otherwise? It's a very neat way to package all deliverables at the finish line.
Exactly. They don’t want you to just use their hardware. They want you to use all of it.
I get this error, iOS safari

> Unable to load feed, Incorrect path or invalid feed

;)

That was my first reaction reading your story -- "outside partner probably paid 5 to 10x for it" -- if you'd gotten up to 50k, you would have had a problem. :)
Does the URL end in "women-in-the-world.html"?
When is your book coming out? (I'd love to read it)
Company I worked for wanted a new public website. In the end they paid over 3 million for a Drupal theme. Impressive waste of time and money.
Absolutely impressive, any idea how did your company find agency to build out the website and cashed out three million dollars?
To be fair, most of us developers are out there building what amounts to over-engineered Drupal themes.
I've been on similar projects where the client is paying through the nose to a consultancy. I was being paid about £500 a day for my time, but I am sure they were charging the client much more.
I got flown out and put up at a hotel for a week for a PR emergency (it was the 5th anniversary of a merger no one cared about but the new CEO wanted to do something about it) ultimately to make a wordpress site. Everything on my expense report got marked up some percent and passed off to the hiring company. I maybe got a little bonus for the whole thing, so not terrible? Not great. I read Bullshit Jobs a little bit later and it hit a little close to home.
(comment deleted)
As a former contractor and current hirer of contractors, I wish I understood this more when I was on the other side.

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.

I've had few contracts where I've made very nice money like $20K for what in average was 3 days. They were all urgent jobs from some very big companies whose managers knew about me (In their particular environment I was famous for doing "impossible" tasks in very short time). When they asked me to do the job I knew that they're big and can pay handsomely so instead of giving them my hourly rate I would just simply tell that I would take up to let's say 5 days and would charge them this total sum disregarding of how long it would take in reality. They were totally fine with it.
I'm interested in working as an independent contractor when I finish college. Do you have any advice for how to become known as "that guy you call in when you need the impossble done tomorrow"?
(comment deleted)
Our combined careers of moving bits around where we have amassed trillions in developer pay for code that doesn't do anything previously built software could... or worse has made the world a horrible place... Is the bigger story.
Over the summer, the "friend of a friend" the bosses hired to run the website had up and fscked off (and not answering calls), and the rented VPSes had expired. Since I was the only person there (of a dozen or so in an e-waste recycling company) who did websites once upon a time, they said that if I could get a website for the company up, they'd give me $200. I threw a plain HTML page together in 15 minutes (mostly copy-pasted from the old site on Internet Archive), then spent about 45 minutes to figure out how Github Pages works with custom domains. I don't think I've ever gone from nothing to deployed website in an hour before!
As a freelancer I regularly got 5-figure checks without any hassle, it was the $600, $700, $800 checks that I had to fight people about.
The title is kind of misleading, no? The author charged $18k for a "7 weeks adventure where I enjoyed free lunches, drove 50 miles everyday, and dug through emails." Which seems like a pretty appropriate price to buy two months of life.

The static HTML page is ancillary.

i think most developers would be surprised how small a part writing code actually plays in making money in software development. If you look at a piechart of the effort/time involved in making contact with a client, contracting, delivery, and close out writing the actual code is maybe 15% of that pie.
Sometimes the money is mindboggling.

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.

I've come to believe that the software industry is the least meritocratic industry in the history of mankind. I've also experienced similar situations as the author. It's all 100% about company selection. You've got to choose the right company. The rest does not matter AT ALL.

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.

During the dot com boom I bought my first car by doing a weekend of overtime at my day job, on an emergency project. They asked me how much it would take for me to work the weekend, I said the number that was the price of a car, my boss said OK.

(it was a classic 1972 FIAT 500L, it was ~£3200 at the time IIRC)

Nice work! Where is your law degree from?
Although not as drastic, I had a similar experience when I was consulting. The inefficiency is staggering!
IIUC, if that company had just let him be remote, and not demanded exclusivity, they could've gotten the same output, delivered at the same time, for less than 1/10th the cost.

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.

I hate humblebrag posts and hide them, but this was a good read. It's funny and I can relate.
The inefficiency of large companies is widespread. In many there are layers of managers whose jobs are little more than to attend meetings with each other and tickle down the bare minimum of requirements to delivery teams. So it's no surprise that they can be willingly blind to the inefficiency of the process that guarantees their job.

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.

My record is about 9 weeks to get onboarded enough to do work, where "onboarded" was getting my Laptop to work and login and access to a few critical systems.

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.

The critical phrase is "that sponsored page"; almost certainly the hiring company was doing the page cost plus, so the more they paid, the more they got.
I used to work as a freelancer back in the days. I worked a lot for a customer became a good friend. At first I'd work on his projects, but this ultimately shifted to a model where I'd work on projects for his clients, I would bill him, and he would add his margin and bill the end-customer. It worked out great this way.

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 ar...