Five fresh faces at Basecamp for 2017

Basecamp says welcome to five new people!

Basecamp is bigger than its ever been, but in the grand scheme of software companies serving well over a hundred thousand paying customers, we’re still pretty small at 52 people. So that means every hire is kinda a big deal! And we’ve made five in 2017, so I thought I’d introduce them.

Tara Mann has joined our iOS team as its second designer, alongside Jason Zimdars. Our mobile teams are tiny, both iOS and Android got by with just one designer and two programmers since inception. But we thought it was time to have an extra mind in the mix to explore a wider array of designs before we dive into implementation. We’re thrilled to have Tara be that mind! She hails from New York and previously worked at Twitter.

Rosa Gutiérrez Escudero has joined our Security, Infrastructure, and Performance team as a programmer with a special focus on on-call investigations. We’ve long rotated amongst all programmers the on-call responsibilities, dealing with customer issues that need deeper technical investigations and may require elaborate root-cause fixes. But as the burden has grown, and the breath of programmers we employ has widened, it was time for some dedicated attention. Rosa brings that attention and then some. A direct exchange from the team evaluating her application: “Jim: Holy shit. Ann: Indeed”. Rosa joins us from Madrid, Spain and has worked in software, as a cupcake barista, at a chocolate startup, and in academia. What a delicious background!

Shanae Dykes has joined Team OMG to help customers over email, phone, twitter, and wherever else they may need to reach us. The support team has been the fastest growing part of Basecamp in the last few years, as we’ve sought to offer 24/7 responses within 15 minutes or less the majority of the time. All that while signing up thousands of new businesses every week. Shanae is going to help us cope with that. She is from Alabama and helpfully gave us a quick training course in Southern slang we she joined, so we knew what “yonder” and “britches” meant before she started chiming in the campfires. She used to work at Apple in Applecare.

Ashley Bowe has also joined Team OMG. She’s in the minority of Basecamp employees who actually live in Chicago where we have our office. She was born in Argentina, but the place she really wants to go back to soon is Iceland, and it’s pretty hard to argue with that! Ashley worked at Venmo and Uber in the past.

Flora Saramago has joined the Core Product team as to work alongside Jeff, Pratik, and Tom as a Ruby on Rails programmer. She was the final, incredibly hard choice out of 600+ applicants to one of those rare general-purpose Rails openings we haven’t had in years. She impressed us deeply with her writing, multi-year wins in Rails Rumble, and volunteer coaching for Rails Girls. Flora joins us from Rio de Janeiro, Brazil and worked at XL Solutions before.

So that’s the five wonderful women who’ve joined Basecamp in 2017. If you’d like to work with Tara, Rosa, Shanae, Ashley, Flora, and the rest of the Basecamp crew, we currently just have two openings on our Ops team. But if that’s you, please do apply.

Programming with a love of the implicit


It’s always better to be explicit! That’s pretty much a programming truism. Rarely directly challenged, lest one betray the foundational tenors of Proper Programming. But challenge it we should, and head on.

The standard justification for being maximally explicit is a kind one. Give a programmer looking at the code everything they need to understand how it works, right there, as if they knew nothing already. It’s an optimization for fresh eyes, those who see without knowing a surrounding context.

So to challenge explicitness as a core value, we need to start by questioning that optimizing for those fresh eyes. Should their needs really to be the main objective for a programming environment?

It could be. If you expect to have rapid churn of the people working on the code, it’s a fair trade to burden those who’ve acclimated with laborious ceremony, if it means those fresh eyes will have an easier time.

That’s a value judgment based on circumstance and experience. To value the experience of the newcomer at the expense of the productivity of the veteran and the succinctness of the code. In some environments, that’ll be the reasonable choice.

But that’s not the environment I’m interested in. At all. I love implicit code, or, as we call it in Ruby on Rails, Convention over Configuration. Consider this tiny snippet of code:

class Person < ApplicationRecord
 belongs_to :company
 has_many :assignments
end

This beautiful excerpt is bursting with implicitness. Just on the database side, it implies that there’s a “people” table backing the “Person” record. It implies that there’s a single “id” primary key for that table. It infers that there’ll be a “company_id” foreign key linking rows in “people” to rows in “companies”.

Here’s an explicit version that expands those contextual assumptions:

class Person < ApplicationRecord
 table_name “people”
 primary_key “id”

belongs_to :company, foreign_key: “company_id”, class_name: “Company”
 has_many :assignments, foreign_key: “person_id”, class_name: “Assignment”
end

And that’s just the tip of the iceberg. It doesn’t even talk about the implicit validation of a belongs_to relationship or the introspection of columns to create attribute methods.

I’d hate to have to write explicit code like that all day, every day. I’m willing to trade the need for someone to learn the conventional context of Active Record in favor of being able to write succinct, clear, and, yes, implicit code. Slightly higher upfront costs, perhaps, but amortized over a lifetime of working with Rails.

This gets to the heart of examining the values of programming environments. A value stated in isolation does not illuminate. Saying “I like explicit code” without also accepting that this means “I like [writing a lot more, often repetitive, frequently boiler-plated] explicit code” is a disingenuous. Values only shine the light for choices when they’re voiced in opposition to different values that others might reasonably prefer.

It’s the same story with product values. If you say your product is “simple” or “easy”, you’re rarely saying much. Few are the competitors who’d take the opposite side of that plank, selling products that are “complicated” and “hard” (though it does happen occasionally!).

To carve out a meaningful, effective belief system, you must be willing to give up something. To embrace explicit code, you must be willing to accept laborious ceremony and the boilerplate. To embrace implicit code, you must teach the context and unpack its at-first bewildering magic.

I embrace implicit code. I embrace the context. I swoon over magic. If you too fancy such sparkle, Ruby on Rails will probably resonate. If not, no worries, most other programming environments pledge allegiance to the defeat of magic and oppose the implicit. Pick your poison.

How to punish corporate misconduct without exhausting yourself


Seems like there’s good reason to be outraged at outrageous corporate behavior every other week these days. From United’s brutal extraction of a passenger to Uber’s continued morass of unethical, illegal behavior. To be honest, it’s exhausting!

In large parts, this exhaustion stems from what the barrage of misdeeds is forcing us to consider all the time: Well, what are you going to do about it?

If you just do nothing, continue to buy the services and products of those who do wrong, you’re at least partially complicit, right? And if you take every opportunity to ban a company from your wallet because of every transgression, life quickly becomes complicated.

But maybe it doesn’t have to be so black and white. Maybe there’s room on the spectrum of judgment between “do nothing” and “ban them forever”. A place that’ll make it easier for us to just get on with our lives, while still sending a message that any manager accountable to the quarterly results will respect.

Let’s take the example of United. Absolutely vile behavior followed by an initial tone-deaf response by the CEO. High pressure and intensity well justified. But at least the company finally found an apologetic pitch that didn’t include egregious euphemisms for their concussion-inducing violence against a paying passenger. That’s a welcome progression, but some momentary embarrassment is probably not enough of a deterrent to encourage permanent, structural changes to their policies.

Then again, following the consolidation in American aviation, dumping United entirely and permanently is likely to be overly inconvenient for a lot of people. And perhaps it’s also a bit harsh, if they do come around to making proper amends with the poor doctor. So what if instead of condemning them to permanent exile from your travel plans, you just commit to taking the next three flights with another carrier.

You’ll suffer some temporary inconvenience, maybe some slightly higher prices, maybe a bit worse timing for travel, but you’ll know it won’t be forever. You’re teaching United an economic lesson that you can feel proud about, but you don’t need to permanently rearrange your life to do so.

That’s a practical sentence, maybe even a proportionate sentence, and one that, if followed by enough fellow travelers, is still going to send a loud and clear message that should motivate a rethink of booking policies at United.

The good thing about being practical about your corporate sentencing is that the odds of carrying out such a judgment probably look a lot better than the nuclear option of I’LL NEVER FLY UNITED AGAIN! I mean, I fully respect those who’re willing and able to commit to such a sentence, but I actually think something a little less severe is likely to have more takers and ultimately a bigger impact.

The other benefit is that it’ll keep the individual grudge plate from filling up with permanent sentences for transgressions of years past. There’s enough foul play happening every week that we simply can’t afford to have everyone’s corporate shit-list jam-packed with past offenders forever. Need to make room for the new ones!

If you take such a proportionate approach to punishing egregious corporate behavior most of the time, you’ll perhaps also leave room for the harsh, permanent sentence when that’s really called for. Like for a serial, unrepentant offender like Uber.

Google won’t be able to resist listening in on your conversations

Mr Algorithm is always listening

The advertising trial balloon from Google Home really shouldn’t have come as a surprise to anyone. Okay, perhaps, the linguistic contortions performed by Google’s PR rep to The Verge should have raised an eyebrow. I mean just listen to the bullshit drip from this one:

This isn’t an ad; the beauty in the Assistant is that it invites our partners to be our guest and share their tales.

But the fact is that Google is an advertisement company. That’s how they make their billions. By selling you to companies who’d like you to buy their stuff. And that process is made much more efficient if Google can sell not only your profile, but your context to these advertisers. Google Home is irresistibly good context.

So this trial balloon of sticking ads in your daily briefing really is just that. Google’s follow-up statement went with as much: “We’re continuing to experiment with new ways to surface unique content for users”. Oh how lovely, how helpful!

Look. Online advertising and privacy has always been at war. Listening in on your conversations because you placed an always-on microphone in your home is just the next obvious hill to capture. Google has already normalized reading your emails for context-aware advertisement. Listening to your dinner conversations is just a natural jump.

In a year’s time, we’ll probably be hearing just how much Google is able to DELIGHT their users by serving up purchase recommendations ten minutes after that dinner. Did someone talk about desert? Ben & Jerry’s can deliver by drone now! It’ll be on your doorstep in 30 minutes if you buy now.

Welcome to the present.

Don’t accelerate your startup

Once you’re onboard, you’re not getting off

Selling 7% of a mere startup idea for tens of thousands of dollars, mentorship from Silicon Valley royalty, and the contacts that come with it seems like a no-brainer proposition. No wonder the mostly young, fresh-eyed recruits are lining up for that deal. But that’s because they’re not reading the fine, implicit print.

That print isn’t in the contract, but rather in the indoctrination. You’re not just selling 7% of a startup idea, you’re selling, potentially, the next 10+ years of your life to a very particular startup paradigm. Are you sure you’re fully understanding the terms?

See once you take the initial check, you’re also inevitably taking on the expectations of exponential growth. You’re literally selling your life, heart, and soul to an off-chance crack at a moonshot trajectory. That’s perfectly fine if the only vision of success you can imagine is becoming the next Silicon Valley tycoon.

But I don’t think most startup founders actually have such a narrow definition of success. I don’t think they actually think as much about what the end goal looks like as they do about how to relieve some of the hardship of starting. That’s completely understandable, but it also makes them easy prey for startup accelerators.

The accelerators all brag about the total valuation of all their bets. Hey, companies we gracefully allowed to sign our deal are now worth $100 billion!! Rarely do they brag about the distribution of outcomes, and never do they dwell on whether the individuals who went through the sausage factory liked the smell.

Starting something new is hard. It’s a time full of doubt. You’re vulnerable not only to startup accelerators who present themselves as having solved the puzzle of turning an idea into an IPO, but also to the peer pressure that affirms the wisdom of that path. With so many other things to consider, like all that it takes to continue moving forward, it’s really hard to properly devote time to the ultimate question: Why am I doing this?

Again, your answer may very well be wanting to become Zuckerberg or Kalanick. And if so, you’re right where you belong. But if not, just stop for a minute. Take a day off from the grind and truly examine your motivations. You may just find that they don’t line up with the paradigm you’re about to devote some of your peak living years to. And if it doesn’t, now is the time to prevent that mismatch.

Because once you sell those 7%, you’ve spiritually already sold all of it to the God of Growth. You don’t get to take it back. You won’t even think to. This will be your world. Make sure this is really where you want to live. And if not, don’t accelerate your startup.


Do you know Claire and Know Your Company? It’s one of my favorite startups that’s still small (just 3 people!), yet making a real difference to thousands of employees within 200+ businesses, making their voices heard. Yes, it’s a bit of self-dealing since KYC was spun off Basecamp, but that does nothing to negate Claire’s mission and her approach. One of the most impressive startup CEOs out there on a completely different timetable than those who were accelerated. We need more role models like this. Dare to become one.

Exponential growth devours and corrupts


There is no higher God in Silicon Valley than growth. No sacrifice too big for its craving altar. As long as you keep your curve exponential, all your sins will be forgotten at the exit.

It’s through this exponential lens that eating the world becomes not just a motto for software at large, but a mission for every aspiring unicorn and their business model. “Going viral” suddenly takes on a shockingly honest and surprisingly literal meaning.

The goal of the virus is to spread as fast as it can and corrupt as many other cells as possible. How on earth did such a debauched zest become the highest calling for a whole generation of entrepreneurs?

Through systemic incentives, that’s how. And no incentive is currently stronger than that of THE POTENTIAL.

It used to be that successful, upcoming companies would show a prudent mix of present-day profits and future prospects, but such a mix is now considered old-fashioned and best forgotten. Now it’s all potential, all the time.

This trend didn’t start yesterday. We can’t blame the current crop for soil spoiled five harvests ago. No, this singular focus on potential, forsaking all present-day considerations, was cultivated by some of our current giants.

It’s companies like Salesforce that have shown just how long you can live on potential alone. Just how large and sprawling you can become without ever bothering to show much if any profits. There’s a decade and more’s proof that growing like a virus, gobbling up other businesses to cling to the exponential, is how you can be “successful”.

There’s always more potential. Always another idea or domain that can be devoured. But this is also the straight path to devolution and its distortions. Bright ideas boiled free of all that is good and left dry as bones.

Angry Bird’s shake-down screen

Have you tried Angry Birds lately? It’s a swamp of dark patterns. All extractive logic meant to trick you into another in-app payment. It’s the perfect example of what happens when product managers have to squeeze ever-more-growth out of ever-less-fertile lands to hit their targets year after year.

It’s straight out of the split-pea soup parable. What if we removed just three peas? Nobody can tell. The factory can save a few million. The executives who pushed that idea can get their yearly bonus. No harm, no foul? But nothing ever stops at the quarterly win. There are four quarters to a year. Forty to a decade. Every one of them has to produce, exceed, and beat EXPECTATIONS.

Because the core assumption is that growth is always good, growth is always unlimited, and if you’re not growing you’re dying. Swim or sink, no wading.

It’s the banality of moral decline. No one person sits down and imagines that Angry Birds of 2009 becomes the Angry Birds of 2017. A fun, novel game turned into a trashy slot machine. Nobody is proud of work like that. But it happens. One pea at a time. Until the split-pea soup has no more peas.

We cannot expect otherwise. It takes superhuman strength to resist the compound expectations of quarterly growth targets linked to an exponential moon shot. The list of comic-book heroes capable of such a task is so short that we’ve already deified the few, like Steve Jobs, who held the line. (And who knows where he would have gone given another decade or two?)


Remember “Don’t be evil”? Google’s iconoclastic corporate slogan that slowly but surely accumulated so many caveats and exceptions that it needed as much legalese as a terms of service agreement. Principles are no match for the long-term corrosion of market realities and expectations. The levies will break, the good intentions will flood.

But back to the incentives. It’s not just those infused by venture capital timelines and return requirements, but also the likes of tax incentives favoring capital gains over income.

What sucker wants to earn $10 million/year at a 52.5% tax rate when you can get away with hundreds of millions in one take at just 15%? Nobody, that’s who.

It’s hard to argue that boards, founders, and their financiers aren’t just doing exactly what the incentives are coaxing them to do.

Which is why growth is now everything and residual value is nothing. In fact, the latter can be outright harmful to the former. When you’re being priced on the hopes and dreams of potential, reality can be a dangerous and undesired competitor. Best just to appeal to the exponential curve and let the imagination roam free. An epic capital gains score awaits!

Given how pervasive this worship of potential and growth has become, it wasn’t surprising that when we pruned the product portfolio at 37signals a few years back, and left only Basecamp, the reaction was mostly one of incredulity, or even anger. Either we were cutting businesses that were devoid of financial merit, or they had merit, and we were thus per definition crazy to let them die. Crazy to turn down growth. To summarize the ethos of the comments sections back then: If something is creating revenue, it’s your solemn duty to keep milking and pumping until it’s done! Extract every cent, then move on to the next mining effort.


The fancy word for that is fiduciary duty. To grow as fast as inhumanely possible is not just a goal, but a responsibility. A moral obligation to THE MARKET. And the theory goes, the market is all of us*. So you’re actually serving your community. All that is bad is good again once you change the tint of your glasses. If you sense something rotten, you just need a new prescription. Now you’ll see as clear as fog that this is ACTUALLY ABOUT ETHICS IN BUSINESS.

The true puppeteer behind this homogenization of startup aspirations is diversification theory. Decisions are not driven by what’s good for a single company, its employees, and its customers. No, it’s what’s good for the basket.

These baskets are known as venture capital funds. That’s the pipeline through which virtually all recent tech companies that have reached the public markets were sent. It’s a gladiatorial arena with the explicit goal that if enough businesses in the basket aren’t failing, the fund isn’t trying hard enough! Not dreaming big enough! Be more outrageous! Be more crazy!

It’s a hyper-evolutionary process that rewards the most extractive, most addictive, most viral strain from the cohort. The key measurement is ENGAGEMENT. Who cares about the virtue of the endeavor, as long as your product is maximally addictive.

Engagement, of course, is not a new pursuit. It’s just the latest euphemism for what we used to call capturing eyeballs. But I guess that was a bit too blunt and honest to survive the sanitization of the industry. The collective ecosystem learns and adapts at an incredible pace, including how best to position its image to incite the least amount of skepticism. They have better words now to hide the same scheme in plain sight. The normalization of questionable motives in the public perception is key to enabling the next iteration to proceed without obstacle.

And iterate they do. At a furious pace. Every new fund is competing against the survivors of the last one and the more purpose-bred contenders of the current one. It’s what makes looking at the values and principles of today so fascinating and frightening. If this is where things stand in 2016, what does 2020 look like? 2024? 2030? The mutations will continue. And they absolutely will not stop until every last one of us has been through the funnel and converted to a servile consumer as ingredients in the sludge of growth.


Innovation, risk, and morals are being packaged with ever greater efficiency through startup accelerators that take the raw ingredients, preferably pattern-matched look-alikes of Zuckerberg, and turn them into securitized batches of startups. Whole tranches of burgeoning businesses packaged into Spring and Fall cohorts. This packaging has turned out to be a great model for the packagers. Many small sums spent on 7% of ownership. If you package enough entrepreneurial product, your actuary tables will line up beautifully.

And you get to indoctrinate these seeds with the values and practices of the most successful viral strains from last season. Genetically modified, cloned, and inoculated startup founders with all the right bits, flipped to ensure the greatest chance of the biggest yield.

But what is a conscientious objector to do? Time waits for no one, and only the Luddites think that their home too won’t one day soon be configured with BUY NOW buttons for all the beloved BRANDS. Controlled by a friendly bot in the cloud that learns all your habits, preferences and titillations one command at a time. Data mining has also successfully been rebranded to the more palatable Machine Learning. Who wants to stop anyone, human or machine, from learning? What are you, the digital taliban?

So too with the startups themselves: “If we don’t, we’re leaving money on the table!!”. Has there ever been a more gluttonous justification for guiltless business practices?

Uber drones haggling drivers stuck in traffic in Mexico

Could it be that perfecting the most viral superbug — until the final strain is discovered that really DOES devour the whole world — isn’t what the whole startup community should be focused on? What if we opened our eyes to non-exponential startups and the needs they may have instead.

But again, don’t you know businesses are valued on future potential, not present reality? Yes I do. And that’s my objection. Surely a mix is prudent, but the spectrum has gotten out of whack. To the point where the present is entirely discounted by the lure of the future. And the past, what it took to get where we are, is either ignored or forgiven. Mistakes may have been made, but tomorrow is an entirely new day, divorced from any of the days that went before it. It’s a constant cycle of absolution combined with a community-induced amnesia to past transgressions. It’s just more efficient that way.

Technology isn’t the only industry that grapples and struggles with growth, so we can learn from studying others suffering the same pressures. Take the drug business. It costs staggering sums to develop a new mass-market drug, and it’s a risky endeavor, so we reward the explorers with a patent monopoly when they strike gold. But it’s not a permanent one. There’s a time limit, and after that generics distribute the gains of progress widely without the yoke of a profit-maximization goal.


What if we thought about how we could apply some of that to the world of software? How can we turn more of the Twitters and Facebooks and Googles into generics? What shifts in underlying technology and cost do we need to hit to make it feasible to run something like Twitter on Wikipedia’s budget (and fund it by donations rather than ads)? What if the next Big Idea looked more like email and less like the walled gardens of today?

We’ve made this transition at the infrastructural level, to some extent. Technological and algorithmic advances from closed-source software have been turned into generics via open source. With spectacular commercial success, no less. As one boat sinks, a thousand new ones float. One software company or product’s death is easier to celebrate, rather than mourn, when you know the intellectual organs are giving life to ten new ones.

Additionally, startup culture used to focus a lot on the personal risk of the founders and early employees. To a nauseating degree, yes. This heroism was the justification for all the spoils there were to come. These days, there’s a lot less talk of existential risk because there’s a lot less of it. There’s so much money floating around that for many founders, the risk is mostly gone. At least in the financial sense, if not in the moral and time-opportunity sense. Failure is celebrated to such a degree in part because the system needs to recycle able bodies as quickly as it can to keep the overall system growing. Spent three years on a startup that didn’t work out? No sweat, bro. Here’s a hug and a reboot and a new bag of money to try again. You’re here just in time for my next fund!

Now some of that is clearly good. Less extreme risk means, at least in theory, greater access for more people to participate in the startup lottery. But it also has some clear downsides of detachment. If this go is just one of many, if you can always just hit restart, then you’re probably not as concerned about this specific go-around. So what if we step over the line a little here. ITS THE HUSTLE, BABY! And besides, if we miss, no biggie.

Maybe it’s time we rediscover some personal liability. Limited, yes, none, no. Complete detachment from the consequences of your choices isn’t producing the kind of responsibility the world so dearly needs.

But that’s hard. Of course it’s hard. Not the least because this whole adventure is so heavily medicated with foosball tables, game rooms, and bean bags of all colors. As many distractions as possible from having to consider the true nature of what we’re doing. What’s that about the rising automatron class? Sorry, I’m late for a nerf battle on the star deck. Later!

Yeah, the automatron class. People treated as literal cogs in transportation and delivery machines. Complete with machine-like tolerance specifications for quality. Dip below a 4.7? You’re in trouble. No explanations. No room for a bad day or a bad week because the bills were mounting. No room for humanity, no room for frailty. Just put on your happy face and Have A Great Day.

The Black Mirror episode “Nosedive” shows the logical conclusion of this ratings world

I’ve been as guilty of this as anyone. When I first discovered Uber, I was ecstatic. So much less human friction. No yucky money changing hands. Just in and out. Headphones on and let’s go. The less I had to deal with the humanity of drivers, the better. Or so I thought.

But not all that is easy is better. Friction is interaction. Human psyches rubbing against each other. And in this friction-less society we wonder how on earth someone could vote Brexit or Trump. It wouldn’t be such a mystery if we didn’t do all we could to isolate ourselves from the world.

Yet we go along with the euphemisms and fantasies. Oh no, no. These people aren’t cogs, they’re independent business owners! Able to set their own hours: Like whether they want to drive for 60 or 80 a week to make ends meet! Aren’t we liberating?


And I think that’s the truly insidious part of the tech lords solution to everything. This fantasy that they will be greeted as liberators. When the new boss is really a lot like the old boss, except the big stick is replaced with the big algorithm. Depersonalizing all punishment but doling it out just the same. Maybe the old cabbie boss was an asshole, but at least that asshole had a face. Someone you could yell at. Have you tried yelling at an algorithm or a customer-rating average?

It’s just another mass-scale exploitation project. And by exploitation, I mean that less in a shackles and bone-soup sense — although there’s a good discussion to have around that too — but more in a pennies for you, billions for me kind of way. Enormous wealth being extracted from people living subsistence lives. But rather than being seen as modern sweatshops, we are all cheering this on as unadulterated progress. Anyone who’s in opposition to this exploitive process is a crank, as Michael Foley would say. Any community that may have reservations about how this is happening is a shit-hole.

Now that doesn’t mean that there aren’t all sorts of vested, crony interests in keeping innovation at bay. Surely there are. But there’s more than that. There are a whole host of legitimate reasons why we have government regulations around housing and transportation. Inconveniences to the march of Instacart and Uber to turn everyone into a temporary gig worker.

This exploitation isn’t just for the workers of the Uber or the neighbors of Airbnb. It’s also all of us through the algorthimization of news at the House of Facebook’s behest. More engagement. More rage, more fake news, all resulting in more hours spent, more eyeballs fixated, more clicks and taps made.

And this new world order is being driven by a tiny cabal of monopolies. So commercial dissent is near impossible. Do you want to be the weirdo without a Facebook account? The uncool stooge for staying at a motel or taking an old-school cab? Of course not. You’re hip, you’re with it. Everything worth doing is in an app.

So it remains mostly our fault. Our choice, our dollars. Every purchase a vote for an ever more dysfunctional future. We will spend our way into the abyss.

If nothing changes, we’ll continue to vest the tech titans and their lords with economic monopolies that grant them undue power. They’re too big to be conscientious. “Don’t be evil” is a slogan for an upstart, not a conglomerate. You simply can’t distribute such noble a moral codex across endless divisions, all with their own P&Ls.


And don’t fall for the soothing charity by the extractive victors either. That charade is as old as time. It’s the process by which ruthless tech lords seek to rebrand themselves into noble benefactors for the good of society. By giving back some of their spoils as they see fit. Kings of plenty doling out gifts and mercy. Don’t buy it. And I don’t mean that in the sense that, say, Bill Gates hasn’t done good with his fortune. But that society isn’t better off when we have to rely on magnanimous tech lords to solve its ills by decree.

Incumbent power centers will not go quietly into the night, though. Excuses will be aplenty, because unlike the robber barons of old, they’re not going to defend themselves with water canons and lock-outs. It’ll be cold war skirmishes fighting for fake moral high grounds. Natural monopolies! Network effects!

Because competition is for the little people. Pitting one individual contractor against another in a race to the bottom. Hoarding all the bargaining power at the top. Disparaging any attempts against those at the bottom to organize with unions or otherwise. Ragging on that as “untapped energy”.

When you accept this entire picture, it’s not so hard to understand why some people are starting to freak out. I’m freaking out. This is worth freaking out about.

As Douglas Rushkoff says, we need a new operating system for startups. The current one will keep producing the same extractive and monopolistic empires we’ve gotten so far. No, what we need is a new crop of companies that are institutionally comfortable with leaving money on the table. Leaving growth on the table. Leaving some conveniences and some progress on the board, in order to lead the world into a better direction.

The solution isn’t simple, but we’re in dire need of a strong counter culture, some mass infusion of the 1960s spirit. To offer realistic, ethical alternatives to the exponential growth logic. Ones that’ll benefit not just a gilded few, but all of us. The future literally depends on it.


This essay is a follow-up to RECONSIDER. Right down to the genesis of being a conference talk I didn’t end up giving (sorry Webstock!). If you haven’t read that yet, you’ll probably like it, if this tickled your fancy. And you’ll probably also like my books REWORK and REMOTE. Oh, and I’m writing another one, The Calm Company, right now. Cheers!

Horses for courses

You wouldn’t use a race horse to drag a cart

It’s no more sensible to talk about a single category of programmers than it is a single category of writers. Yes, an intimacy with the language is (usually) shared amongst writers, but otherwise journalists and poets don’t have a whole lot in common as part of their daily work. Likewise, a programmer working on a new database storage engine doesn’t share that many overlapping concerns with a programmer writing a new web-based information system.

Yet companies and individuals continue to lump all programmers together in the big “software engineer” basket. That means sharing everything from interview techniques (like the dreaded whiteboard algorithm hazing) to arguing about aesthetics across vastly different levels of abstraction. It’s not only silly, but harmful.

It’s one of the reasons I for the longest time didn’t think I could become a Real Programmer™. I used to think that all programmers needed to love algorithms and pointer arithmetics. That’s about as sensible as thinking you can’t become a journalist because haikus or sonnets don’t appeal to you.

It wasn’t until I discovered programming at a high level of abstraction, the kind suited for making business and information systems, that I started to realize programming, perhaps, was something for me after all. And even then, the original impression of programming being all about these low-level concerns stuck for years, and kept me from imagining a future where this would be my profession.

The ultimate breakthrough happened when I met Ruby. A language so purposefully removed from the atomic blocks of computers. This was my jam. My level of abstraction. A world and a community that not only wouldn’t scorn me for a lack of interest in algorithms or other low-level concerns, but actively encouraged me to embrace programming as the pursuit of happiness at my preferred level.

The world needs all kinds of people with all kinds of fancies. This is no less true for programming than for any other field of expression.


Would you believe that my first real project in Ruby was Basecamp? The original Rails application from which the framework was extracted. Both projects turned out pretty alright for someone who’d only just considered themselves a Real Programmer shortly before.

Your software just isn’t mission critical


Programmers love to invoke the vocabulary of importance. We don’t just have guidelines, no, we have fucking LAW OF DEMETER. Good and bad ideas alike are dressed in big words so we can all seem oh so clever.

And it’s not just the concepts that attract grandiose dressings, it’s also our purpose. If it isn’t CHANGING THE WORLD, then clearly there’s something wrong with the ambition calibration! Get with the mission, man!

Speaking of mission, I doubt that yours is all that critical. At least not in the sense the term “mission critical” was actually invented to describe. You know, shit like if there’s a bug in the lunar module, the fucking space ship might be stranded on the moon, and the astronauts are going to float around in zero gravity with their tongue out before long.

The trite truth is that most software is utterly mundane. Void of any potential for major, human catastrophes. Loss of some monies, sure. Loss of some customer trust, definitely. Should you take it all seriously? Sure. But you can do so without invoking the criticality of human life.

If that makes your life seem less meaningful, maybe it’s time to fall in love with something else than complexity or criticality. There are plenty of options for blowing dandelions here! I can get my sugar rush from saving a couple of keywords on a sweet refactoring. All without pretending that I’m saving the gawd damn universe in the process.

You can write lovely software without standing on your tippy toes trying to clear some bullshit bar of importance. So what if you’re not working on the lunar module. So what if you don’t have a red cape. Accept the workaday lot and learn to love what you actually have, not what you wish you could pretend to be.

But above all, shut the fuck up about mission critical.

A fuck-you money attitude


There’s an irresistible allure to the concept of fuck-you money: Being able to tell anyone off for any reason without risking your livelihood. What’s not to love about such audacious freedom?

But is this actually happening? Who are all these newly-minted millionaires that suddenly start telling people to go fuck themselves? I don’t recall many notable examples. If anything, it’s the opposite.

Shortly after that glorious fuck-you check clears, they’re off to the next thing. With new venture capital chains. Yanked about by a new board. Shackled to a new set of hockey-stick growth expectations. You do what you know.

So the fuck-you money dream doesn’t so much seem like a goal as a perpetual fantasy. And excuse for why now isn’t the time to rock the boat, bolstered by the illusion that some day you will. Yeah right.

If you look beyond a specific amount, fuck-you money can be a state of mind. One that you can acquire well in advance of the corresponding bank account. One that’s founded mostly on a personal confidence that even if most of the material trappings went away, you’d still be happier for standing your ground.

Yes, talk about privilege. There are certainly many people who choose to bow their head not for their own sake, but for the sake of those that depend on them. That’s a noble retreat.

But there are surely also plenty of people who are privileged enough that taking a risk isn’t going to lead to a destitute situation. That cling to a fear of going out on the limb but fancy themselves the kind of people who would with fuck-you money. That’s who I’m talking to here.

The irony is that, in many situations, having a fuck-you money attitude is exactly the path that leads you there.

Join Basecamp as our new Rails programmer

Basecamp is hiring! We have a rare opening for a Rails programmer to work on new product development within our General Practice team. We haven’t had an opening for this kind of work for a few years, so we’re excited to welcome someone new to the team!

This is a position for an experienced Rails programmer, but you don’t have to be a rock star, a ninja, or a superhero to apply. In fact, if you self-identify in any of those categories, we’d rather you don’t!

We’re looking for someone with a strong track record of putting Rails to work and bringing products to life. This is not a junior position, but, imposters everywhere, this is in reach to YOU. If you ship solid work, you have the experience we’re looking for.

We want strong, diverse teams built from different backgrounds, experiences and identities. We’re ready for the ongoing work that goes into building an inclusive, supportive place for you to do the best work of your career. That starts with regularly working no more than 40 hours a week and getting 8+ hours of sleep a night. Our workplace and our benefits are designed to support a sustainable, healthy relationship with your work.

Today, our team works from 32 different cities spread across 6 countries. You can work from anywhere in the world, so long as your normal working day has 4 hours or more overlap with Chicago time (CST/UTC-6). Nomads welcome.

About the Job

The General Practice group at Basecamp works on a regular cadence of 6-week cycles in either Big Batch or Small Batch mode. Our feature teams are small. You’ll usually work with one designer, sometimes another programmer, and usually a tester as well.

That’s just a handful of people expected to regularly ship a big feature in 6 weeks or a small feature in a week or two. This is a fast pace, but it’s never frantic. We don’t have time for harried, hurried work. We value a calm company and deliberate, concerted effort. We work 40-hour weeks here (and less in the summer!). This is not a job for workaholic heroes who thrive on 80-hour+ marathons. NOPE!

Our formula: Capable people left to get great work done in a reasonable amount of time with minimal distractions.

And, of course, you’ll have the full support of some of the best Rails programmers in the business. We literally wrote the framework. Everyone here is keen to help and support newcomers to become part of the team and, ultimately, to do the best work of their career.

While creating new features for Basecamp 3 is mostly greenfield work, there are also a fair share of legacy obligations on our plate. We have the first Rails application ever created still running and serving happy customers. You may well work on the first version of Basecamp or any of the other products we no longer sell but still lovingly support. We cherish our legacy. Take heart when `git blame` reveal lines 12 years or older 😀.

You’ll help us support customers directly. Everyone at Basecamp participates in Everyone On Support every few months, and you’ll regularly help with escalated technical issues.

We’re also staunch supporters of the open source community. Not just through Rails, but plenty of smaller projects as well, including quite a few in JavaScript. Every programmer at Basecamp is encouraged to give back and share our tools.

About You

In broad strokes, Managers of One thrive at Basecamp. We’re committed generalists, eager learners, conscientious workers, and curators of what’s essential. We’re quick to trust. We see things through. We’re kind to each other, look up to each other, and support each other. We achieve together. We are colleagues, here to do our best work.

We’re all quite different people (and we stumble, fall, reach, and achieve just like anyone!) but these are fundamental attitudes we share. What floats your boat? What lights a fire in you? What keeps it burning?

We aren’t looking for ideological clones, but we are looking for people who share our basic values and beliefs about how to write good software. It helps if you can identify as a software writer. If you care about writing clean, concise code. If the thought of a majestic monolith appeals to you. If you seek the epicenter. If you say no.

As an experienced Rails developer, you should be intimately familiar with the framework, with Ruby, and with the stables of full-stack web development: HTTP, JavaScript, CSS, HTML, SQL. It’s a bonus if you’re broadly familiar with other languages as well — we write our iOS app in Swift, our Android app in Kotlin, and have tooling written in Go — but your main work will be Ruby through and through. We ❤️ Ruby, if wasn’t clear by now 😄.

Benefits & Compensation

Our pay is in the top 5% — or better! — of the industry for the matched role and experience, based in Chicago. No matter where you live. Plus, with two years under your belt, you’ll participate in our profit-growth sharing program.

Our benefits at Basecamp are all about helping you lead a healthy life away from work. While we have a lovely office in Chicago, it’s not where you’ll find foosball tables constantly spinning, paid lunches, or any of the other trappings that companies use to lure employees into staying ever longer at work.

Work can wait. Our benefits include 4-day Summer Weeks, a yearly paid vacation, a one-month sabbatical every three years, and allowances for CSA, fitness, massage, and continuing education. We have top-shelf health insurance and a retirement plan with a generous match. See the full list.

How to Apply

Please send an application tailored to this position that speaks to us. Introduce yourself as a colleague. Show us that future.

We value great writers, so please do take your time with the application. Forget that generic resume. There’s no prize for being the first to submit!

We’d like to see examples of software you’ve written. The actual code. We appreciate that it can be hard to share representative samples when you’ve been working on commercial software, so anything you can scrape together will be good. If you have open source contributions, those are great candidates, but you don’t have to be an open source contributor to apply.

You can share private repos on GitHub with @dhh, @packagethief, @sstephenson, and @jeremy. They will be your gentle and kind evaluators on the programming side of things.

Go for it!

We are accepting applications for this position until February 27, 2017. We’ll let you know that we’ve received your application. After that, you probably shouldn’t expect to hear back from us until after the application deadline has passed. We want to give everyone a fair chance to apply and be evaluated.

As mentioned in the introduction, we’re eager to assemble a more diverse team. In fact, we’re not afraid of putting extra weight on candidates from underrepresented groups at Basecamp.

We can’t wait to hear from you!

(And again, imposters: We are too. Take heart. Step up.)