October 10, 2019
TL;DR Pay devs 1/2 or 1/3 what on-site workers need. Let them work away from cities where rent is much cheaper. Hire 2 or 3 times the number of devs. Your business is more successful because more workers. Your workers are happier because less weight on their shoulders (they’re still able to pay bills and save a bit every month). Hire within your country so you don’t have to wade through homeless people everywhere you go. Everyone but landlords are much happier.
Companies pay $100–$200k for full-stack Node/React developers. And then, to get their money’s worth out of that developer, they make that developer work way more than they bargained for.
How do they make the worker work more?
- The company will ask for an estimate on how long Xyz feature will take.
- The developer will theorize how long it will take, and then make A GUESS.
- The developer will then reach for some tool he has used in the past, and combine it with another tool, and they will blow up. OR the developer will simply be working with something completely new to them. Both of these scenarios are common with almost every single feature a developer works on.
- The developer will then work to debug this. It might take 5 minutes. It might take 5 days.
- The company, now angry for paying $150k for a developer who “can’t meet deadlines”, will guilt the developer into working overtime.
The developer will work late, or ignore his family, or make a myriad of other sacrifices to try to catch up. But it is an impossible task because right before he catches up, another 5 minute bug turns into a 5 day bug. These bugs compound, and they appear more frequently because the developer is sleep deprived and has a thousand other errands on his mind that he has been ignoring to focus on catching up.
There is literally no way to accurately estimate how long something will take. Many developers simply multiply whatever their real estimate was by 3, and give that as an estimate. If they finish early, they fill the rest of the time either watching YouTube, or take a day making a README commit.
So we have:
- Developers who are completely miserable most of the time until they burn out and quit, or developers who are spending half their time being lazy.
- And companies who are getting bad estimates, paying a ton in developer salaries, and constantly having to search/train new employees.
How is this system functional?
It’s not. The tech industry constantly has unfilled positions that they are trying to fill by outsourcing (usually illegally).
I began thinking about all these things and I think the problem is landlords. Hear me out. Landlords in tech hub cities (like San Francisco, Seattle, etc.) realize big tech companies make a ton of money. So they jack up rent (which immediately makes a ton of middle class people homeless), and tech companies end up paying for it because now, to have anyone working on-site, that on-site worker has to earn $200k JUST TO PAY RENT. These big city hipster kids aren’t rolling in the dough. They’re doing well and can save a bit, but they’re not filthy rich by any means because rent is too damn high.
So this is depressing. Homeless populations skyrocket because no one can afford homes anymore. Hipster developers are paying $2,000 a month to rent out a broom closet. Outsourcing to other countries usually results in a worse product, and the more money we export to other countries, the worse our own country becomes. It all just seems inhuman.
So what’s the solution? Glad you asked!
The Solution: Pay Less and Outsource as Locally as Possible
Working on-site sucks. Every survey in the past decade confirms that almost everything about working on-site makes workers less efficient and more miserable:
- Workers have to commute for at least a couple hours every day. I’ve had to commute several hours daily before. 3.5 there, 3.5 back. I spent many nights sleeping (and showering) in the office until I burnt out.
- Noisy/distracting open-offices. Whatever idiot came up with this idea has never actually written code. I used to have to wear noise-cancelling headphones and just play white noise as loud as possible to cancel out the distractions.
- Lack of privacy in the form of some jerk peeking over your shoulder. I don’t waste countless hours talking to my significant other, but if she sends me a message, I want to be able to read it without someone walking behind me and seeing it, or simply to take a 10 minute break without feeling like I’m being judged.
- Cost of office rent. Imagine paying $100k/month for a big, fancy, office downtown, when you could split that up between employees, or give it to charity, or simply put it in savings.
So hire remotely.
“But you said outsourcing is bad” True. But I think it’s dependent on distance. If you let someone work remotely down the block from the office, then you’re still paying their landlords $200k and on your commute to work you’ll pass by thousands of homeless people you’ve gentrified. If you hire someone in India, then you’ll have the same local homeless problem, but you’ll see more-and-more local businesses close their doors because no locals can afford to shop there.
Without noticing, you have isolated yourself to your home. You no longer want to go outside because of all the homeless people. You no longer meet up with friends at bars or restaurants, because they don’t exist, or they’ve turned into trash because they had to cut corners to stay open.
So pay half, or even a third as much, and hire 2 or 3 remote workers, as locally as possible. This fixes all of the problems I mentioned above.
Pros for workers:
- No more commutes consuming a significant chunk of your life where you are literally doing nothing but sitting in traffic.
- No more open office noise to distract workers from their tasks.
- No more living in a broom closet for $2k/mo rent.
- More breaks to reset your brain. I know this sounds like lazy-worker bullshit, but for real, just taking a 10 minute break every now and then, and then coming back to a problem will help you see it in a different way.
- Far and away the most important benefit! So much more time for family and errands, and so much less pressure for features, because there are 1 or 2 clones of you to help with the workload.
- Keep a job long-term because you don’t burn out… Actually pay off all your bills and begin saving. Live life like a normal, working, person should be able to…
Pros for companies:
- Zero or low office rent.
- Have double/triple the employees you currently have.
- More accurate estimates. 3 people working a couple hours after they’re supposed to clock out won’t compound like pressuring 1 person to work several extra hours will (sleep deprivation, burn out, etc.)
- If you care about ethics and stuff, you won’t be literally torturing your employees anymore. If you don’t care about ethics, then you can look at it like having a much lower turnover which will save a ton of money on the costs associated with the downtime of someone not filling a role; trying to recruit someone new; and getting that employee up-to-speed.
- There is no visa limit or hoops to jump through for hiring remotely, if you are hiring citizens within your country.
- More local shops will stay open if you hire remotely locally. That is, Bob who lives an hour away, will travel into the city weekly to go on a date with his wife, which will give money to restaurants, movies, other shops, which will keep them open for you to use.
- The homelessness situation will begin to self-correct as landlords can no longer get $2k/mo for broom closets and have to go back to renting for reasonable rates.
Cons for workers:
- Obviously less salary, but again, with the cost of living and quality of life calculated in, less salary is a good thing.
- It is helpful to be on-site for pair programming, but you can easily screenshare, and there are even some really nice VSCode extensions for pair programming.
Cons for companies:
- You don’t get to have a big, huge, gaudy, office to wag around in everyone’s face. This actually might cost you a potential client as they might not see you as a “real” business, but if your portfolio is good enough with enough good references (testimonials, Crunchbase rank, BBB rating, etc.), it should cancel out their misgivings.
- You might have employees that aren’t working much at home. But any CTO or squad leader should be able to identify this pretty quickly just based on commit history. It’s still a soft hit since you’re only paying 1/2 or 1/3 for that employee and still have 1 or 2 other extra employees who are temporarily carrying that weight until it comes to light.
I will never work for a huge paycheck. It hurts our entire industry. It makes employees’ lives absolutely miserable. It hurts employers with missed deadlines and having to pay huge salaries. It forces big tech to lobby for more outsourcing (which will further decimate a country’s middle class).