Quitting Facebook. Renouncing Uber. Avoiding Amazon. There have never been more or greater reasons for turning your back entirely on much of Big Tech.
The last few years have brought an endless stream of scandals and unflattering revelations. There aren’t many starry-eyed optimists left who still believe that Silicon Valley is just here to build a better world. We’ve almost all come to accept the fact that Big Tech is here less to help the world and more to devour it.
If you’ve reached a similar conclusion, the natural dichotomy is one of apathy vs revolt. And let’s face it, apathy is the far more common out. What am I, in my lonely being, able to do in the face of such power and abuse? Best not to think about it too much, and – will you look at that! – these companies are experts at helping you not think about the structure and stranglehold of their businesses.
Revolt: deleting your accounts, swearing off the services, advocating for alternatives, is draining and even isolating work. No wonder most people can’t fit in such a fight in their daily routines of anxiety. Quitting cold turkey ain’t no feast.
But these aren’t the only options! You don’t have to either resign yourself to your utter insignificance or don a cape while shouting in the wind. There’s power in the margins. Tremendous power.
If Facebook’s endless privacy scandals have shown one thing, it’s that the company has far too much data on its users, and that they can’t be trusted not to sell, barter, or abuse that data whether for profit, growth, or negligence.
While individuals have long been rallying around #DeleteFacebook, there hasn’t been a comparable campaign for business. Enter: The Facebook-Free Business.
Being a Facebook-Free Business means your customers can trust that you aren’t collaborators with the Facebook machine. That when you spend your money with a Facebook-Free Business, none of that money will find its way back to Facebook’s coffers.
The rules are pretty simple. Being Facebook Free means:
We do not buy advertisement on Facebook, Messenger, Instagram, or WhatsApp.
We do not use Facebook, Messenger, Instagram, or WhatsApp to promote or represent our business or to communicate with our customers.
We do not assist Facebook in its data collection regime through use of Facebook social Like buttons or by offering Facebook logins.
In short, that the business does not use Facebook or its subsidiaries in any way shape or form to operate, further, or conduct itself.
Oh those superhuman CEOs who get up at 4am for that killer start to the day! Aren’t they just amazing? Such sacrifice, such grit, such tenacity.
Such fucking bullshit.
If you’re the CEO, and you can’t get work done at work, you only have one person to blame for it: Yourself. There’s no law of nature that dictates that it should be impossible to get deep work done at 11am or 2pm, just habits, values, and policies.
It’s your job to fix the damn workplace, not run away from it. Stop playing calendar Tetris with a whole organization. Stop loading up on meetings. Stop demanding endless status reports. Stop interrupting everyone all the time with shit that can wait.
Organizational dysfunction, such as the inability to get work done at work during regular work hours, is a reflection of executive habits and beliefs. Work isn’t crazy because of the nature of its being. Work is crazy because you’re making it crazy!
But it’s hard to fix that which you don’t know is broken. So let me spell it out: Having to get up at 4am to get real work done is broken. Busted. Kaput.
And it isn’t any less broken because a fawning business media keeps exalting the virtues of your morning routine or strict regiment. Quite contraire.
You know what’s cool? Getting to work at 9, putting in eight solid hours, and then being done by 5. There’s nothing stodgy or uncool about having reasonable work day that allows for a workout at 7:30am or playing with your kids at 5:30pm.
There’s no prize for being the first to rise. You’re not a fucking bird and there ain’t no fucking worm. So chill. Set a good example for your organization. Make calm a mission. Start getting work done at work again.
Furthermore, since the spirit of this idea is to collaborate, we’ve also licensed all these policies under the Creative Commons Attribution license. If you’d like to use any of the policies for your own business, feel free! All we ask is that you give us a bit of credit, if you either copy them entirely or materially.
This act of sharing was inspired by the reception to opening up our Basecamp Employee Handbook. We’ve heard from so many business owners and employees that our handbook helped them put together their own. That they were inspired by some of our values or practices enough to adopt them as their own.
Our hope is that the same might happen with our policies. If more companies would adopt a no-nonsense refund policy, we’d all be better off. If more companies — AND YES I’M LOOKING AT YOU GOOGLE 😂 — would honor their legacy systems, and not willy-nilly kick users to the curb, we’d all gain from the level-up in trust.
Policies are part of the organizational code of a company. Not only should that code be open source, it should be tinkered with, improved, critiqued, forked, and refactored. Let’s do that.
We don’t need to wait for the singularity before artificial intelligence becomes capable of turning the world into a dystopian nightmare. AI-branded algorithms are already serving up new portions of fresh hell on a regular basis. But instead of worrying about run-away computers, we should be worrying about the entrepreneurs that feed them the algorithms, and the consumers who mindlessly execute them.
It’s not that Elon Musk, Stephen Hawking, et al are wrong to ponder whether Skynet might one day decide that humankind is a bug in the code of the universe that should be eliminated. In much the same way that evangelicals aren’t necessarily wrong to believe that the rapture will at some point prove the end of history. Having faith in supernatural stories about vengeful deities condemning us all to an eternity of misery is a bedrock pastime since the cognitive revolution. Precisely because there’s no scope for refuting such a story today.
It’s just that such a preoccupation with the possible calamities of tomorrow might distract us from dealing with the actual disasters of today. And algorithmic disasters are not only already here, but growing in scale, impact, and regularity.
A growing body of work is taking the algorithms of social media to task for optimizing for addiction and despair. Whipping its users into the highest possible state of frenzy, anxiety, and envy. Because that’s the deepest well of engagement to draw from.
If you really set your mind to it, you can do it. Get to the very top. Beat out all the others. That’s how I did it. I just wanted it more, worked hard, and eventually all my dreams came true. I won’t say it’s easy, but it’s up to you!
So goes the familiar song of entrepreneurial or professional success. The same song being played in a thousand different tunes by a thousand different hucksters. It’s the song we all want to believe. That the world is ours for the taking, and whoever wants it more, will get it, and when they get it, they’ll deserve it.But that’s a shit track, and we really need to change the station. Odds are overwhelmingly that you will not make it to the top. That you will not be the next baller posting champagne shots and private jet pics. Or be celebrated in parades of adoration by your peers. There just isn’t enough room up there, on the top.
There’s lots of room amongst the disillusioned, though. The disappointed. The self-loathing. All those who wanted it so bad, but didn’t get it, and now blame themselves (or others or both!) for their supposed failures. That group is easily thousands if not hundreds of thousands if not millions of times larger than the small crop up there on the top.
A shit track indeed. To give simultaneous false hope and a false idol to so many when you know, PER MATHS, that it just isn’t going to happen for the vast, vast majority. That’s not just a shit track, it’s cruel. Time. To. Change. The. Station.
So here’s a better one: Making it to the top isn’t the game you should be focused on. The top is full of people who hate what they had to do or who they had to become to get there. Even for the people who get there with a clean conscience often end up disappointed by how shallow the satisfaction really is.
Besides, you only have limited influence on whether you’re going to succeed at whatever you put your mind to. It’s by no means within your exclusive sphere of control. There are so many things that have to come together at the same time. Only a couple of which you own.
But you do have control over whether you’re doing a good job, as measured by your personal sense of satisfaction in the work. Over whether you’re taking the time to notice, to learn, to improve. That’s the most fulfilling part of being up there, at the top, anyway. The “being good” part. Hell, even the “becoming good” part is pretty amazing, if you play it right.
That’s a game worth winning: The one played with yourself for your own betterment. Not the one played against others, measured against them. Screw that game.
Yeah, yeah, I know. That’s a luxurious game to play. You’ve already made it to some satisfying station in life when you’re allowed to focus on your own personal development for subsistence rather than a survivalist climb out from the bottom. But that’s also true for most who are into that Getting To The Top game.
So resist the temptation to focus on where you want all of this to take you, if you can. Luxuriate in the experience and flow of getting better. Stop playing games where you can’t set the rules. Start winning the ones where you can.
I‘ve been thinking about your regret minimization framework for making decisions lately. I don’t recall whether I read about it in an interview, or if you shared it with Jason and me in person in those early days after your involvement in Basecamp. But regardless, I think you’re currently making bad decisions that you’re going to regret. Maybe even decisions that we as a whole society will come to regret.
It doesn’t have to be like this. You’re literally the richest man in the world. Markets have suspended disbelief for decades, and let you rule as you see fit. It’s well within your power and purvey to change course.
The HQ2 process has been demeaning if not outright cruel. At a time when politicians are viewed as more inept, more suspicious, and more corrupt than ever, you made city after city grovel in front of your selection committee. They debased themselves in a futile attempt to appeal to your grace and mercy, and you showed them little. The losers ended up worse than where they started, and even the winners may well too.
For what? Extracting a few more billions that Amazon does not need in subsidies? If you tilt your perspective a little, I think you’ll be able to catch the optics that the richest man in the world asking for tribute like this is an ugly one.
Amazon is Jeff Bezos. You can’t cover decisions behind committees or other shareholders. You hold the reins, you reap the lion’s share of the rewards, and thus you’re accountable for its actions.
As many great conquerors in history, I’d be surprised if you didn’t care about establishing a legacy. I mean, you clearly already have. But there’s still time to shape that legacy into something more than the man who killed retail, extracted the greatest loot from its HQ cities, and who expanded the most monopoly holdings the fastest.
Rather than keep asking what cities and countries can do for Amazon, maybe start asking what Amazon can do for them. Be magnanimous. Be responsible.
Not just because it’s the right thing to do, but because it’s the smart thing to do. The better business move. At some point people are going to have had enough, and when they figure out a way to channel that discontent into political action, they’re going to come looking for the heads of those that did them the most egregious wrongs.
I know it doesn’t look like that big of a risk right now. People still seem to trust Amazon more than most of the big tech companies, but that’s a lagging indicator. The clouds are gathering in the distance. It starts with a fewpioneers calling for antitrust action, and then one day you wake up, and that’s what the whole world wants.
It’s hard to be proud of having you as a minority owner in Basecamp right now. Maybe there’s even a tinge of regret. I’d very much like to minimize that.
Jeff owns a minority, no-control stake in Basecamp (the company that Jason and I co-own). For the first few years after purchasing that, Jason and I would meet or talk to him about once a year. It’s probably been 7–8 years since we spoke with Jeff directly last. If we get another chance, this would be the most pressing topic.
Last Thursday, November 9th, Basecamp 3 was in read-only mode for almost five hours starting 7:21am CST and ending 12:11pm CST. That meant users could access existing messages, todo lists, and files, but no new information could be entered, and no existing information could be altered. Everything was frozen in place.
The root cause was that our database hit the ceiling of 2,147,483,647 on our very busy events table. Almost every single activity in Basecamp is tracked in this table. When you post a message, update a todo list, or applaud a comment, we track that activity in the events table. So when we became unable to write new events to that table, every attempt to do practically anything in Basecamp was halted.
This was an avoidable problem. We were actively working on expanding the capacity of the events table in the days prior to this outage, but we failed to properly account for how quickly we were running out of headroom.
To compound the avoidable factor, we should had been aware of the general issue much sooner. The programming framework we use, Ruby on Rails (which was originally extracted from Basecamp!), moved to a new default for database tables in version 5.1 that was released in 2017. That change lifting the headroom for records from 2,147,483,647 to 9,223,372,036,854,775,807 on all tables. Which ended up being the same root-cause fix that we applied to our tables.
It’s bad enough that we had the worst outage at Basecamp in probably 10 years, but to know that it was avoidable is hard to swallow. And I cannot express my apologies clearly or deeply enough.
We pride ourselves at Basecamp on being “boring software” because it just works and it’s always available. Since Basecamp 3 was launched, and up until this outage, we’ve had an uptime record of 99.998%. This near five-hour outage has taken that impressive statistic down to a more humbling 99.978%.
Some companies might choose to weasel around an outage like ours by claiming that it was only a “partial outage”, because the application remained available in read-only mode for the majority of this time. But that’s not what we’re going to do at Basecamp. We’re going to take the scar in our uptime record as a reminder to do better.
Because we owe everyone using Basecamp to do better. It’s embarrassing and humbling to have suffered the biggest outage at Basecamp in a decade from an issue that we should have addressed years ago, and that we were actively working on addressing, but failed to complete in time.
As the CTO of Basecamp and the creator of Ruby on Rails, I accept full responsibility for our failures. I should have been more vigilant with our own database schema when Rails 5.1 announced the new default, and I should have followed up and asked the right questions when we finally did start work on remediation. I’m really sorry to have failed you 😢
If you have any questions, or if we can help in any way, please reach out to our wonderful support crew who’ve been dealing with each report individually.
I also want to express my deep gratitude to everyone who’ve been so gracious with their kind words of encouragement and support during and after this ordeal. I don’t know if we’ve earned such understanding, given our clear culpability, but we are extremely grateful none the less.
On a personal note, I want to apologize for not posting this postmortem until today. The plan was to have this final summary ready on Friday, but then the Woolsey fire hit, and our family was forced to evacuate our home in Malibu. It’s been a crazy week 😬
Basecamp 3 is now back online for reading and writing. All data was confirmed to be fully safe and intact. No emails that were sent to Basecamp during the outage were dropped. We may still have some backlogs on processing things like incoming emails, and you may still see some slowdowns here and there as we catch up. But we are back, and we are safe.
We will be following up with a detailed and complete postmortem soon. All in, we were stuck in read-only mode for almost five hours. That’s the most catastrophic failure we’ve had a Basecamp in maybe as much as decade, and we could not be more sorry. We know that Basecamp customers depend on being able to get to their data and carry on the work, and today we failed you on that.
We’ve let you down on an avoidable issue that we should have been on top of. We will work hard to regain your trust, and to get back to our normal, boring schedule of 99.998% uptime.
Note: If you were in the middle of posting something new to Basecamp, and you got an error, that data is most likely saved in our browser-based autosave system. If it doesn’t appear automatically, we can help you recover that data. Please contact support if you’re in this situation, and we’ll have a team ready to assist.
Below is the timeline for today:
At 7:21am CST, we first got alerted that we had run out of ID numbers on an important tracking table in the database. This was because the column in database was configured as an integer rather than a big integer. The integer runs out of numbers at 2147483647. The big integer can grow until 9223372036854775807.
At 7:29am CST, the team diagnosed the problem and started working on the fix. This meant writing what’s called a database migration where you change the column type from the regular integer to the big integer type. Changing a production database is serious business, so we had to test this fix on a staging database to make sure it was safe.
At 7:52am CST, we had verified that the fix was correct and tested it on a staging database, so we commenced making the change to the production database table. That table in the database is very large, of course. That’s why it ran out of regular integers. So the migration was estimated to take about one hour and forty minutes.
At 10:56am CST, we completed the upgrade to the databases. This was the largest part of the fix we needed to address the problem. But we still have to verify all the data, update our configurations, and ensure that we won’t have more problems when we go back online. We’re working on this as fast as we can.
At 11:33am CST, we’re still verifying that all data is as it should be for Basecamp 3. The database migration has finished, but the verification process is still ongoing. We’re working as fast as we can and hope to be back fully shortly.
At 11:52am CST, verification of the databases is taking longer than expected. We have 4 databases per datacenter and we have two datacenters with databases. So a total of 8 databases. We need to be absolutely certain that all the data is in proper sync before we can go back online. It’s looking good, but 99% sure isn’t good enough. Need 100%.
At 12:22pm CST, Basecamp came back online after we successfully verified that all data was 100% intact.
At 12:33pm CST, Basecamp had another issue dealing with the intense load of the application being back online. This caused a caching server to get overwhelmed. So Basecamp is down again while we get this sorted.
At 12:41pm CST, Basecamp came back online after we switched over to our backup caching servers. Everything is working as of this moment, but we’re obviously not entirely out of the woods yet. We remain on red alert.
I will continue to update this post with more information, and we will provide a full postmortem after this has completed.
We should have known better. We should have done our due diligence when this improvement was made to the framework two years ago. I accept full responsibility for failing to heed that warning, and by extension for causing the multi-hour outage today. I’m really, really sorry 😢
I’m trying to remember when it was last this crazy at work. Before we spent a month fighting poor planning and terrible execution on the publication of our new book It Doesn’t Have To Be Crazy At Work. Was it when we got DDoS’ed over two days and were fighting to keep Basecamp on the internet? Was it when we touched the third rail and spoke about customer data in public? Or do we have to go all the way back to the early days when Basecamp went down whenever I, as the only technical person at the time, would get on an airplane?
Whenever it was, it’s been so long that I had almost forgotten the cocktail of feelings that go with it. That mix of frustration, exhaustion, exasperation, and, perhaps for a fleeting moment, even disbelief. Why is this happening! How could we be this stupid?
But now it’s back. Oh it’s back. Publishing It Doesn’t Have To Be Crazy At Work has been the most frustrated, exhausting, exasperated, and even unbelievable process. For the dumbest reasons too.
It started with the design. When we signed on with our new publisher, the shared intent was to publish a new book in the same format as REWORK and REMOTE. So we designed a powerful new cover to the same dimensions, and felt really proud about how clean and clear we managed to make it. We were so invested in the impact of the cover that we didn’t even put our names on it!
But when we saw the final book, our hearts sank. This wasn’t right. The book wasn’t the same format. It was taller, so the dimensions were off. And the translation of our design was a complete hack job. It wasn’t even centered on the page!
Yeah, nobody else is likely to notice. Nobody else knows what it was supposed to look like. But we did. We noticed. And when you pour your heart into a book like this, which we’ve been thinking about in some form or another for almost a decade, it hurts.
Okay. Mistakes happen. We were partly to blame. We could have triple checked. We fell for the illusion of agreement, because we weren’t looking at the final thing. Whatever. The second printing would get it right. Bygones.
Forgiving what happened next proved to be much harder.
Harper Business bought the rights to publish It Doesn’t Have To Be Crazy At Work with a mid six-figure offer. They outbid another publisher who were in the final running for the rights by a fair margin. Awesome, we thought. This means they’re really invested in blowing this out! This is going to be great.
It was not great.
Despite paying top dollar for the book, Harper Business decided to only print 14,000 copies in the first run. That 14,000 was based on the first orders from retailers. Barnes & Noble wanted 4,000 copies. Amazon wanted 3,300. The rest went largely to independents and wholesalers, and a few for overseas. Once everyone had gotten what they had ordered, Harper Business had no books left. The whole first run was spoken for.
This is where I kick myself. You think when you’re dealing with a major publisher like Harper that you’re safe to leave the details of the printing and the publishing in their hands. This isn’t some upstart publisher. They’ve been around forever. They publish so many books. They’re the professionals, right?
But if we had dared to question that premise — that they’re the professionals, they know what they’re doing — we’d have remembered that we printed 34,000 copies of REWORK. Our first book! The one that went on to sell more than half a million copies around the world. So why were we printing so few books this time around? We’d soon try to in vain to answer that question.
Now it’s fair to note that REMOTE didn’t sell as well as REWORK. But if you’re going to place your bets cautiously based off that, the time to do so is in your offer worth hundreds of thousands of dollars. Not trying to hedge a few tens of thousands in printing costs.
But this book got off to a roaring start. We flew up the Amazon best seller list, making it to #24 one of the first days. Then we sold out their entire stock in less than 5 days. What joy! What celebration!
If only. Amazon selling out their stock right away was a disaster. Not because of the copies sold, but because Harper seemed to be taken completely by surprise. They had no books ready to restock, because they printed so few in the first place. The first reprint wasn’t even set to go, because they dillydallied fixing the busted cover design. And worse, the remaining 11,000 books that had gone to Barnes & Nobles and wholesalers and independents could barely be accounted for. We couldn’t get straight answers on who had the books, or whether any of them could be sent to Amazon, since that was clearly where people wanted to buy the book.
And who can blame them? Because the book was selling so fast on Amazon, it was listed with a 40% discount! A $27 book selling for less than twenty bucks. Of course you want that, and of course you want it on a 2-day free prime shipping.
The bookscan numbers for the first week hammered this point home. While Amazon had sold 3,300 books, Barnes & Noble — who had ordered even more than Amazon for their first order! — had sold a pathetic 240 copies. And at least 10% of those sales were either us or friends or family excited to see the book in a physical bookstore.
Here’s what worse: Harper knew this would happen. They had told us that Amazon on some titles were 70–90% of sales! In our case, Amazon was over 90% of hardcover books sold the first week, despite the fact that we had gone out of our way to guide sales to B&N during the pre-order phase.
So let’s do the math here: You print 14,000 books for the first printing. You know that Amazon is going to be up to 90% of sales. Wouldn’t you then reserve a good 10,000+ books for Amazon? Harper’s excuse? Amazon’s buyer just said they wanted 3,300 copies, so that’s all we gave them, and we held nothing back for a restock…
And that’s even accepting the premise that 14,000 copies is a good number of books to print for a title you’ve paid mid six figures to acquire. It costs less than $2 to print a book. So Harper spent less than $30,000 to print books, because their planning department didn’t want to risk sitting with $10,000 worth of unsold inventory if the book should bomb.
That’s what the team at Harper literally told us. That, yeah, that was perhaps a small number to print, but they couldn’t convince the planning department to print more, because this was the number of orders they got from retailers. And the planning department is judged not on having enough books, but only if they print too many, and end up with unsold inventory 😮
All of this would just have been a funny anecdote about how dysfunctional large bureaucracies can be, if it wasn’t for what happened next. Taken aback that the book was selling(?!), Harper then had to scramble to get the second printing together. That took a month. Today is the first day that Amazon actually have books in stock ready for delivery tomorrow. They sold out on October 6th.
In that month, all our sales momentum for the hardcover book died out. We had all this publicity lined up. An incredible review by The Economist. Wonderful write-ups in WSJ and The Times UK. Podcast appearances coming out the wazoo. All the built-up excitement for a book that’s hitting right in an industry-wide discussion about toxic work environments and the cost of burning people out. It’s hard to have timed all this better, or, I suppose worse.
Because what good is having a wonderful launch campaign, if you have no books to sell? After Amazon sold out, our book page would scare away potential readers away with a 2–4 week delivery time notice. One time it even said it might be 2 months before the book was back in stock!
This of course also meant we blew any chance of making the prestigious bestseller lists. Whether the New York Times or the Wall Street Journal or any of the other lists we made with REWORK. Yes, they’re vanity lists to a large extent, but if you’re not going to make the lists, let it be for a good reason like, not enough people buy your book, not that you don’t have books for all the people who want to buy.
So why did it take Harper Business a month to get our newly released book back in stock? Because of Trump. Because of tariffs. Because of paper shortages. Because there were a lot of other big books being published at the same time. Because of consolidation in the book printing business. I kid you not, these were all excuses pitched by Harper as to why there were no books.
And there’s some truth to all of these. It has been difficult to estimate when you could get to the printer. Other books have been affected too. But no one else at our scale had their launch quite this spectacularly botched by the publisher not doing the due diligence to account for these challenges. Out of all the other new releases that broke into the top 50 on Amazon, we were the only title out of stock for a long time.
We’d get these long serenades about how they too were really frustrated. How these things just happen! How it was going to get fixed any day now, but they just weren’t exactly sure when. How mad they were and what loud noises they were making when talking to the departments in charge.
Every possible excuse except for “the dog ate my homework”. Which, really, would have been a more compelling excuse than “tariffs”. Because that’s really what it comes down to. We botched our launch because someone didn’t do the homework. They didn’t print an appropriate amount of books to the scale of the book, they had no solid plans for a second printing when the first one ran out, and they had no capacity for anticipating that all the factors that had been in play for months (like paper shortages or tariffs or, ffs, Trump) would impact the process.
They were unprepared for and proved incapable of doing the one job you absolutely must do as a book publisher: Print. The. Books.
Because it’s not like we overloaded Harper with responsibilities on this launch. Jason and I did all the material editing ourselves, we had the whole book designed in-house, we had it illustrated in-house, and we even had our own PR agency do a lot of the footwork for publicity.
This is that joke: You had one job, Harper. One job. Print the books, get them to book stores.
Anyway. It’s been crazy at work. Needlessly so. Painfully so. Frustratingly so. But, like all moments of crazy, it also held a buffet of lessons for us to take. Like, never work with Harper Business on another book again… kidding… sorta… maybe… 😂
No really. We went for the publisher who bid the highest, and we assumed this meant they had real skin in the game. We went with a major publisher, so we assumed they all knew what they were doing, and we didn’t have to double check every publishing decision. We made a deal with a single acquiring editor without meeting the rest of the team, because that played to our bias that someone entrusted to write a mid six-figure check on their own would have the authority to call the shots that mattered, but we still ended up haggling over $10,000 in costs to print books.
That’s a lot of bad assumptions. Assumptions built up over two past and good experiences printing books with the professionals at Crown publishing. When you work with people who know what they’re doing, it’s so easy to assume that this is totally normal. That everyone is going to be at this level, because that’s the baseline you see. But it’s not normal. Whether constrained by a dysfunctional organization or whatever, plenty of people end up being incapable of rising to that baseline. And then you really start appreciating what you never even knew you had to worry about.
Now I’ve ended up writing a long tirade, and I completely accept that some people might gag with summary like: “So they gave you a bunch of money, fucked up a few things, but now the books are back in stock, so why do you care?”. Because I do care. Because we didn’t write this book primarily to make money, but because we had something urgent to say, and wanted as many people as could benefit from that message to hear it. But yes, I’m writing this to process my own frustration, if not outright rage, as well.