Garann Means

Garann is a JavaScript developer working at Editorially. She used to build enterprise web applications for government agencies and corporations, but moved to the front-end exclusively as soon as such a thing became a respectable career for a person to have. She's spoken at several conferences and written many blog posts, as well as one book, "Node for Front-End Developers".

You can find her on Github as garann and Twitter as @garannm.

Published Thoughts

You have my soul. I have your money. –Charles Bukowski

When I made my first webpage, at 17, I didn’t fall in love with coding. Living an hour north of Seattle, I and the other kids around me had for several years been hearing adults reward any sort of demonstrated aptitude for computers with the superlative The Next Bill Gates(!). We all knew that Bill Gates was a very rich person who’d found a way to print money in a state where previously only Boeing and rock stars could do that. Which is to say, I didn’t fall in love with coding, I stumbled into a potential career that by all accounts was going to make me–like Mr. Gates–very rich.

Recently, I decided to try and give up programming. I don’t have a new career plan, but that was never what this was about. Programming allowed me to buy and remodel a house, which I then sold for a profit. For a short time, I have the option of simply not having a career. For the first time since I was fourteen, I don’t have to think about finding a new job or self-employment. 

Being able to take time to answer the question “what do I want to do with my life?” requires not having to ask the question “how am I going to eat tomorrow?” Most people in the world don’t get to take a “gap year” and run off to Europe or Asia or Africa to find their purpose. The purpose for most people in the world is simple: get paid. The opportunity to search for something beyond that is a rare luxury, and personally I will be damned if I’m going to squander mine continuing to sit in front of a computer implementing tepid little A/B tests.

This isn’t actually about me, though. I didn’t grow up rich and I always had to work; that’s as much as is really relevant. This is about you, a hypothetical you, unfortunately, who belongs to a group unlikely to ever read a post like this.

The person I want to address is the person who also never got a gap year or a summer abroad, who is not considering programming as a career and should be. That may be a confusing statement for a person who’s quit programming to make, but I do still see value in the profession. Specifically, I see it as an opportunity for people who’ve had little opportunity to create their own opportunities; I see it as a way to make shitloads of money. You have to approach it with the right mindset, though, and I believe that mindset to be: get yours and get out.

This will come as a shock, perhaps, to people who live in the bubble of San Francisco, but the programming profession remains stigmatized. You might get teased for going to nursing school at night, but nursing is a job that normal people have. Programming, like most of tech, has cultivated a perception of itself as a job that only exceptional people have, not a job that you simply study for, interview for, and then work at. I don’t mean to say that I think people don’t pursue this career because they doubt their own exceptionalism, but that they don’t pursue it because they have no ambition of joining a cult.

Working in tech–and especially trying to advance within it–asks of us our support for the self-defined mythology about our industry and the people within it. You don’t go around telling people you only code for the money while you still need a coding job, that’s suicide. You have to say you code for the challenge at minimum, or the beauty of naked logic or the unlimited power to create, if you want to really sell it. (Don’t worry, no one will ask you what that has to do with creating an iPhone app that helps you find friends who wear the same wash of jeans as you.) I am not a sociologist, but I believe pretty firmly that this is the most fundamental thing keeping tech from being more diverse. It asks us to fundamentally change how we portray ourselves, to be programmers first and everything else merely in the last twenty characters of our twitter bio. Not only is that a terrible place for diversity to flourish, the competition over who can best pander to the nerd stereotype sends a message that diversity is something we want to weed out.

The good news, hypothetical reader, is that you can ignore all that bullshit. You don’t need to be Supernerd to program a computer; you just need to learn to code. If you can fake it for interviews and in order to advance your career, you’ll definitely go further, but never feel bad about either faking it or not being able to. Is it cynical to learn just enough Haskell to be able to mention it casually so you can get promoted to lead engineer? Sure. But when you talk to someone who wants to tell you about learning Haskell because of the gorgeous purity of the language or something, remember that what that person contributes to the world are fucking iPhone apps about denim washes.

I know a bunch of people struggling to make ends meet, and pretty much all of them could do the job that used to be mine. It’s great and noble to try and equalize opportunity, but we also need to promote a mindset that allows people to exploit it. And I do very much mean exploit. Telling would-be programmers they can’t approach the profession with cynicism in their hearts turns people away. And it’s a lie. I made a very successful career of programming while entirely motivated by having a good paying job, and at the risk of being a braggart, I was a good programmer. People concerned with collecting a paycheck have excellent work ethics, and the industry would benefit from more of them in it.

And so, hypothetical reader, I say it again: learn to code. Learn enough nerd jokes to pass within the profession. Make some money. Pay off your debts and save or invest everything else. Spend twenty years telling everyone you have your dream job, then leave it and go and pursue your real dreams. Get yours and get out.

A few times in the days before open source was such a popular idea, I had the opportunity to use what developers created before it, hobbyist software. These were programs distributed on floppy disks with hand-printed labels, ostensibly to be used to accomplish some task the author knew something about how to accomplish. They all looked mostly alike. The idea of a “wizard” with multiple steps and paths hadn’t completely caught on, so the interface, such as it was, tended to be a big screen with a number of fields. If you failed to fill out the fields using the correct format, or in the correct combination, you would click a difficult-to-locate button and nothing would happen.

As engineers, we’ve generally accepted that this is not an interface and we are not doing our jobs if we present such a thing to our end users. But, as engineers, we continue to create and expect the use of such tools in our own work.

As engineers, I think we’re susceptible to the worry that if we aren’t controlling all aspects of the process by which we do our work, we’re merely secretaries. I think this is why we insist on so many needlessly complicated tools and processes. Task management systems that look like spreadsheets, choked with fields we must fill out that rarely provide any value a more intelligent interface couldn’t infer. Installation processes for project we may or may not want to actually use that require days of configuration, troubleshooting, and lurking in IRC waiting for answers to our questions.

We aren’t supposed to complain about these things, because these things make our work seem difficult. And indeed, these things make our work difficult. In any other context besides poorly-concealed job security, we would call engineering that makes a task more difficult what it is: shitty engineering.

As we, as an industry, attempt to widen our reach and make our work appeal to the people we’d previously shut out, we have to reexamine this ideal. I’ve personally decided against getting involved with open source projects because of onerous bug tracking systems or overly complicated installation processes. And folks, I have a degree in this shit, I have training in how to do exactly these onerous things, I have the benefit of having been around long enough to see how these onerous things evolved. I can use them, but only if someone has made the decision to pay me to do all that data entry/lurking in IRC. I’m certainly not going to spend my free time screwing around with them, and the notion that someone new to the field should is so arrogant it borders on hostility.

We need more engineers and more productive engineers. We don’t need to send people on quests through the dark woods of our issue tracker to have them prove their worth. We need to get them running the project locally, finding tasks to do, and fixing issues as quickly as we can. We know lots and lots at this point about how to do good engineering: intelligent, predictive, and, ultimately, easy for the end user. At some point we’re going to have to drop the fantasy that putting up with bad engineering is evidence of a good engineer.

A month ago I had an emergency garage sale. I'd sold my house, and due to some confusion about when or if the sale would in fact happen, I had to get all the things I hadn't moved into long-term storage off the property the morning before turning over the keys. 

Some things I was able to sell, like a bicycle with accessories for $10, and a bed with mattresses and bedding for $25. Most, however, I simply had to leave behind, surrounded by neon construction paper signs begging people to take it away for free. Couches, bookshelves, antiques, books, clothes, electronics, you name it. All carefully presorted to make sure it was useful enough to even bother with; all of it was. The time and expense of acquiring the stuff I'd left on the curb bothered me, but not as much as what it suggested about what people value. 

I can go to any IKEA in the US any given weekend and find it so choked with people that it takes three hours to weave through the whole store, but I can't give away a hollowed out vintage radio cabinet with inlaid wood, sturdy doors, and solid shelves. The market for a skinny $129 fiberboard shelf that will rock precariously while bearing any weight at all from the day it's assembled and crack if it tips over is flourishing and the market for something heavy and thoughtfully made that's survived a century does not exist. 

I'm hardly the first person to comment on our love of disposability, but even if it's not a new question I'd really like to know what the hell is wrong with all of us. Our species has existed a long time and you'd think our fascination with anything branded "New!" would have worn off by now. Similarly, the mostly-upward trend toward greater civility seems like it should imply also a willingness to stay and improve rather than throw away and run away. It makes me especially uncomfortable as someone who works in the web industry.

Not to bring up bad feelings anyone had forgotten, but when the Titstare app was presented (to almost universal disgust), I have to say honestly that what troubled me more than its obvious sexism was the fact that it was garbage. And I mean literally garbage. It wasn't even disposable - it came used and ready to be thrown away. It offered nothing to anyone. Resources had gone into producing it and those resources resulted in nothing of value. At best, it was an amusement. A punchline. It bothers me because Titstare is only one of the most egregious examples of all the basically useless shit we as an industry produce.

I'm so tired of newness. I'm tired of switching from one JavaScript framework to another merely to see what all the hype is about. Spoiler: the hype is about the hype. Innovation is great, but where the hell is it? And are we ever going to accept that 99% of the methods we use as engineers are just methods people used in the 70s, recontextualized?

Of course, software is much harder to repurpose than a cabinet. If something has lasted twenty years, it's most likely because of desperation, not because it was so well built. Our model of production has always been IKEA, and when we regard that as a virtue in all other products, I wonder if it can ever possibly change.

Something distressing happened the other day. Someone I know on Twitter made an April Fool’s joke about leaving the internet and tech work. Of course, there’s some distress just in seeing something like that, because if you’ve had similar thoughts you would probably recognize it as not a haha-funny joke, but a haha-only-serious joke. More distressing to me, though, were the reactions that seemed to suggest you only have a right to talk about leaving if you’re in the process of doing it or have already done it.

It’s probable that people leave this industry for all sorts of different reasons. But I think it’s equally likely that those reasons really boil down to the same thing. Someone almost ready to give up due to the recent events at Mozilla is grappling with feelings I, as a person who is neither queer nor a Mozillian, don’t have to feel. But the feeling of being fundamentally unwanted by, let’s face it, what’s often less a profession and more a community is a feeling I know very well.

There were a lot of kind responses to the tweets I saw, as well. People said please don’t, and people said they were sad but understood. I hate to say this, but even those responses contributed to the distress. Where are we for each other before it’s too late, and how do we show each other we’re valued before, alone, others decide they are valueless in our eyes?

Other responses suggested that to discuss leaving in any circumstances other than the final, dire circumstance of actually doing it was to pour salt in an open wound. That may be true. The wound doesn’t belong to only one person or disenfranchised group, though. There are probably people you interact with all the time struggling with the same thing, and we very certainly don’t heal it by separating ourselves into those finding the bravery to stay one more day and those who were finally too tired, and only allowing the latter group to acknowledge that thing we share.

Leaving a profession after years or decades because of ugly events within the community, lack of support within the workplace, and the erosion of conviction caused by a constant drip of microaggressions isn’t a decision we should force people to come to alone. It’s a kind of vulnerability that seems to terrify us. I watch people who confess to doubt be moved from the “technologists” column to the “social critics” column, I watch as we all stop listening to them and wait, smug and pitying, for the other shoe to drop. This sucks a lot. Tech workers are entitled to their humanity. They’re entitled to cry wolf, even, if it means we get a chance to fix the problems they’re facing before the wolf is actually at our collective door.

One of the unexpected side effects of being part of the web industry, for me, has been all the travel. Speaking at web conferences has allowed me to visit a bunch of other countries, but I’ve also flown between cities in the US to visit other offices of whomever employed me at the time. It’s one of those things other people I know seem not to notice, but for me I still rarely board a plane for work without thinking, this is what professional people do.

And that’s normal travel. Imagine how I feel when that travel includes an upgrade to a class higher than economy. It’s only happened a handful of times, but each has been a reminder that I Have Done Quite Well For Myself. But you know something funny about first class? They’ll give you basically as much wine–for free–as you care to drink, and the wine they give you for free in first class is better than any wine you can buy in economy.

I am not making this up. I have checked. In first class (or business, or whatever fancy-pants rich people class you happened to be seated in) there is a nice little pamphlet that introduces the airline’s sommelier, and some poetic words from this person about the selection of onboard wines they hope you will be pleased with. In economy, you might get a little of this info in the back of your in-flight magazine, but probably you won’t because probably the wine available to you at $8 per plastic sippy cup is not wine a professional sommelier has written poetry about.

I live in Austin, Texas, where it’s been SXSW now for the past ten days. SXSW tends to be a better source of free beer than free wine, but an invite-only SXSW party is not so different than first class on an airplane. Or at least it aspires to be. These are supposed to be exclusive, comfortable spaces where key decision makers can go about their important work while being feted and plied with libations. In practice, though, the attendees are mostly touts for startups you’ve never heard of ostentatiously flashing their gadgets while knocking back Lone Star until they do something that would get them reported to HR if their company had it.

That doesn’t change the fact that every year, people reference the Fear of Missing Out phenomenon in regard to these parties. People who wouldn’t recognize even the most hyped startups go to great lengths to get invitations, after the giveaways, the entertainment, and the free beer.

The thing about first class is that it’s pretty good in comparison to economy class. It is not good compared to being in a nice restaurant somewhere on the ground. It is not good compared to having an entire bed to go home and sleep in after drinking a couple glasses of hand-selected, poetry-inspiring wine. The thing about SXSW parties is that people who know better tend to end up congregating in bars where no one is handing out drink tickets and the friendly person coming over the chat them up is less likely to try and recruit them.

It’s embarrassing how much wealth we have in this industry, and how in spite of that, people are constantly trying to give us things for free. The system of giving free things only to those who could afford to buy them with little thought is bizarre anyway, but SXSW always makes it a little more obvious to me. There are probably a bunch of people in this town who’d love a night out drinking free Lone Star, but they’re never on the RSVP list. Why do we only direct our magnanimity at each other?

When I moved to Austin, one of the first local quirks I was exposed to was the cult of the breakfast taco. Austin is full of Tex-Mex (queso is probably the second most popular religion of Latin American origin), but breakfast tacos are special in that, like pizza, there is pretty much no inappropriate time for one nor any such thing as a bad one. There are really, really good ones, however, and I was lucky in that some of the best were made right down the street from my apartment.

Nueva Onda's breakfast tacos were made with a generously long list of ingredients ranging from things you might eat for breakfast in Mexico to things you might eat for breakfast in Texas to things you might eat for breakfast if you were part of the massive influx of people moving to Austin from the west coast of the US every day. The variety was a factor in the appeal, but for me the salsa was what clenched it. I will do almost anything for good salsa.

It might seem odd that my loyalty toward Neuva Onda only increased when their salsa began having problems. Even Saturday and Sunday morning I looked forward to those tacos, and a new, weird fishy flavor in the salsa was ruining my weekends. Because I badly wanted to give my continued business to Nueva Onda, I let them know. When they insisted the recipe hadn't changed and it must be a fluke, but the salsa stayed fishy, I insisted there was a problem. I got involved in debugging the salsa, testing different batches and giving the kind of feedback only a true fan usually has the patience for.

You'll be glad to know the salsa issue got sorted out. But shortly thereafter Nueva Onda lost their lease, and they've been closed since.

Initially I was really broken up about this, which might seem silly in a city as full of breakfast tacos as this one, and given that my favorite thing about the place–the salsa–had been screwed up for a not insignificant percentage of the time I'd been a patron. It's not silly, though. It's rare that we truly interact with a business or product in a completely unemotional way. Spending our time or money is still an investment, even if it's something as trivial as a couple of tacos. We care about the things we choose, we need to feel they are deserving of our choice and that the choices we make are correct ones. It's more obvious when we interact with a business or product repeatedly, when we begin to weave it into our routine and think of it as our own.

Nueva Onda was very much my taco place. Not really, though. They closed even though I didn't want them to, and there was nothing my devoted patronage was going to do to keep them open any longer. And it's funny. Four years or so later I have a new taco place. It's also my taco place. They have the world's best salsa. I would be distraught if it were taken away from me and my routine would be ruined.

I'm not a professional chef, though. I can't buy a salsa recipe so it remains available to people who love it. I'm not a landlord with a storefront to offer businesses I love, or an investor with piles of money to bankroll them. The things I'm able to create are different things, websites, and even those I don't get to ultimately determine the fate of. It sucks sometimes, but most of the things we invest our time or money in, if we don't own them, are things we are lucky to have while they last. If they disappear, someone who does own them will certainly feel it a lot more acutely than we ever will. And, disloyal as it may seem, we who've invested so much less will move on. We'll forget. We'll find a new taco place.

I used to get a new job every year. I’d go in as the only front-end developer, complete the main Front-End Thing they hired me to do, and discover that no more front-end work beyond that had been prioritized as needing to happen any time on the continuum of years any of us were likely to still be alive. I would get bored and quit.

Mostly this was a nice system. Flipping jobs usually got me a raise without me having to go in and ask for one, and it provided me variety in my work. The downside, though, was knowing I’d lose all my credibility and have to survive a month or two of just jaw-dropping condescension at a new job, once every single year, forever.

I recently read a great piece of writing titled “Silent Technical Privilege”. It kind of blew my mind. For most of my career, I thought everyone was automatically treated like they didn’t know anything by their colleagues on a new team. I thought it was normal to be hired into a senior position and then put in a significant amount of time and effort proving yourself to people a couple years out of school. Apparently it’s not.

Even when I believed developer condescension was unbiased and equitable I was opposed to it. Corroboration of my suspicion that it might be something certain demographics experience more than others removes what little tolerance I had for it.

I’ve been thinking a lot about why people — underrepresented people especially — leave this field even after building successful careers, and it turns out that how they’re treated is a nontrivial factor. It defies our expectations about careers and sunk costs that people leave after establishing seniority, but what if it’s the natural result of years and years of their colleagues treating them like they’re stupid? What if ten-plus years of the implication that they’re incompetent inevitably causes some people to believe it, or to simply get fed up with having their competence tested?

It would be overly optimistic to think women or any other demographic are the only targets of condescension among developers (reading comments anywhere on Hacker News will back that up), but it’s obviously pretty useless and nasty behavior, especially among colleagues. So I wanted my first thought of the year to be a small, simple idea: Treat your colleagues as though they know everything you do. Wait for them to ask questions if they have them, and if they do, don’t punish them by reverting to a position of condescension. Don’t be the reason someone dreads coming to work, or the reason someone leaves.