Tim Bray’s excellent “Bye Amazon” post inspired me to take this article off of my backlog, where it has been sitting for a few weeks. I applaud Tim for stepping down from a company that has demonstrated itself incompatible with his sense of right and wrong, and I want to take a moment to remind you that the rest of us in the tech industry have the same opportunity — no, the same obligation as Tim did.
As software engineers, we enjoy high salaries and extremely good job security. A good software engineer with only a couple of years of experience under their belt can expect to have an offer within 1 or 2 months of starting their search. It can seem a little scary and stressful, but if you’re a programmer already working at $company and you’re looking for a change, you’re better off than 99% of your non-technical friends. In tech, hardly anyone is “trapped” at a bad job; or at least we don’t have a good excuse for not trying for something better.
Tim calls out Amazon’s terrible, unhealthy working conditions and retaliation against staff who speak up or try to organize.1 Google conducts mass surveillance, kowtows to oppressive regimes, and punishes workers who stand up to them. Less obvious stuff, too — Apple builds walled gardens and makes targeted attacks on open standards, Facebook is a giant surveillance tool which routinely disregards the law, the same behavior which made Uber and Airbnb into the giants they are today, all while fostering a “gig” culture in which the poor have no stability or security. Mass surveillance, contempt of the law, tax evasion, oppression of the poor, of minorities… this is what our industry is known for, and it’s our fault.
This is why I hold my peers accountable for working at companies which are making a negative impact on the world around them. As a general rule, it costs a business your salary × 1.5 to employ you, given the overhead of benefits, HR, training, and so on. When you’re making a cool half-million annual salary from $bigcorp, it’s because they expect to make at least ¾ of a million that they wouldn’t be making without you. It does not make economic sense for them to hire you if this weren’t the case. Your contribution makes a big difference.
If the best defense we have for working at these companies is the Nuremberg defense, that doesn’t reflect well on us. But, maybe you would object, maybe you would have the courage to say “no” when asked to do these things. Maybe you would, but someday, a cool project will come across your inbox - machine learning! Big data! Cloud scale! It’s everything you were promised when you took the job, and have more fun with it for a few months than you have had in a long time. Your superiors are thrilled - “it’s perfect!”, they say, and it’s not until they take it and start feeding it real-world data that you realize exactly what you have built. Doublethink quickly steps in to protect your ego from the cognitive dissonance, and you take another little step towards becoming the person you once swore never to be.
The rapid computerization of society has decreased the time necessary to build novel machines one thousand-fold. This endows us with a great responsibility, because whatever we build with them, the changes they bring to society will be upon us much, much faster than any changes to come before. Every software developer possesses alone the potential of 50 engineers living just 100 years ago. We can apply this power for good or for ill, but it’s up to each of us to make a deliberate choice on the matter.
Are you a free software maintainer who is struggling with stress, demanding users, overwork, or any other social problems in the course of your work? Please email me — I know how you feel, and I can lend a sympathetic ear and share some veteran advice.
Articles from blogs I follow around the net
Why putting alpha in your project name does more harm than goodvia tonsky.me July 31, 2020
Hi all! It’s time for another monthly status update. Yesterday I’ve released wlroots 0.11.0 and Sway 1.5! This is a pretty big release, with lots of new features and bug fixes. New features include headless outputs that can be created on-the-fly (one use-cas…via emersion July 21, 2020
Generated by openring