I’m interested: does anyone else here feel this way too?
I do. That’s why I posted it. I even tick off the stereotypes: white, male, programming since kindergarten.
The parts about attention to detail especially resonated with me. I thought of majoring in math where proofs can’t be shipped until they’re airtight. I ended up majoring in philosophy where I learned how to find all the holes in my own work before shipping and try to anticipate challenges before anyone else sees the argument. One thing I tend to think about along these lines is the fact that we lionize the trailblazers and creators without recognizing the value of maintaining and polishing work that has been roughed out to a functional state.
I agree with her disdain for the current obsession with updating fast and pushing code without fully testing or fully thinking things through, but I don’t take it as me not belonging. I take it as the current trends are wrong, and I’m right. But that probably has to do with the fact that I’m 38 and have been coding for over 25 years, so I have a lot of confidence in my opinions being right.
One of the biggest benefits of experience: being able to tell when people/industries are full of shit.
Tech, as a whole, is broken and stupid. It’s obsessed with new things at the expense of practices. It is fad-driven to a ridiculous degree. It is infatuated with idiotic status symbols like money and power in a vain attempt at relevance. It is complicit in the spread of harmful ideologies such as misogyny.
An alternate tech culture needs to emerge.
These were also my thoughts after reading the article. Perhaps because I’m in the same age group as you, and have a similar level of programming experience.
same here. i picked my current job in large part based on a quality-focused engineering culture; after a few years in a “ship features as fast as we can” type startup i was pretty much done with that segment of the industry.
(As an aside, this whole article kinda feels like the modern version of “everybody in a certain class of people in New York is working on a novel or a screenplay or acting”. I’ve got some friends up there and it’s a common theme, the humblebrag hustle. The breathless way the author here describes talking with her boyfriend–husband now, I’m sorry–about Ajax is kinda silly and immediately opened up a particular bucket for me.)
(As an additional aside, Mrs. Yitbarek does have both a Github and has appeared on the Ruby Rogues podcast for a stint. She’s got actual involvement in the tech sector, but regrettably not a lot of obvious technical work demonstrating mastery or competency.)
My main takeaways about “this way” sketched by the article are:
I don’t really agree with any of those points.
Not only do I not agree with those points, I’m actively offended by some of them.
Acting like the only software in tech is web software is hugely wrong. It ignores the vast quantity of boring line-of-business Java and C# and VB and MUMPS software that keeps the world spinning. It ignores the vast quantity of microcontroller code in places like microwave firmware and medical imaging units and car ECUs. There is a large and thriving world, however boring and bleak, outside of web development and especially outside of the coastal startup ratrace.
Acting like our users are dependent on us and are vulnerable little snowflakes who will have a breakdown if they get a broken button is belittling and worse, helps us overstate our importance. Most users just find something else if the software is broken.
Acting like best practices are completely ignored in writing new code is insulting, especially when the same author has nothing to say on large legacy systems that are difficult or even infeasible to test. It’s easy to Monday-morning quarterback when you’re fresh out of a bootcamp and think that every system needs TDD. It’s even more easy when you haven’t run into a monstrous banking COBOL blob that has 4 decades of accumulated business logic, or an embedded health IT system where it’s almost impossible to replicate the sheer crackheadedry of the production environment. Further, Mrs. Yitbarek clearly has no experience with any environment or project that does attempt to take correctness seriously, as is the case in processor design or firmware engineering or industrial automation or healthcare or avionics.
Acting like users matter is antiquated even within her own web-tech bubble, as the current best business practices involve squeezing them for all the data they’re worth and shoving ads at them. Don’t let’s pretend differently, because that’s not how the business works. It’s shitty, but it’s how startups work.
Acting like there is some culture unique to tech about exploiting users/customers is rubbish. What about healthcare, loans, broadcast advertising, clothing marketing, makeup salesmanship? That’s not us, that’s not programmers, that’s just how business works. I don’t mind a proper screed against modern capitalism, but don’t you dare tar us with that same brush, Mrs. Yitbarek. Don’t you dare lump developers and programming culture in with sociopathic MBA tricks.
Lastly, I am exceptionally disappointed and annoyed at the insinuation that everybody in tech clearly just doesn’t care to understand their problem domains. I am annoyed that she implies that she is somehow special. I am furious that she would suggest that most programmers don’t try to really grok the situations leading up their problems, and pained that she doesn’t seem to recognize there are a lot of little problems that don’t bear full analysis.
Finally, her whole tone I disagree with. Seriously, for reference:
I do not belong. My values are not valued. My thinking is strange and foreign. My world view has no place here. It is not that I am better, it is that I am different, and my difference feels incompatible with yours, dear tech.
She should get down off the cross and leave room for people that actually need it.
If this essay had been written by a pimply-faced youth in his first year of college CS, we’d make fun of how edgy and self-serious it was, and point out the depths of his ignorance. Here, though, we are supposed to take her seriously? Please.
Don’t you think, though, that to some degree we’re morally culpable for that?
If we had such a principled stand against sleazy MBA tricks, then we could have stopped it. We could have said “No” and organized or professionalized or just not worked for people like that. It is partly our fault.
Also, there are some ways in which tech culture is worse than the regular MBA culture of our colonial masters. Misogyny is one. Say what you will about MBA-style corporate capitalism, but we dialed the sexism back up from 6.5 to 11.
Tech culture is macho-subordinate– most techies brag about 12-hour days to support their employers' bottom line, but have no courage when they see a woman being harassed out of their company– in a way that plays well into MBAs' desires, but I don’t think that we invented it. We did. And even if we didn’t, we’re still responsible for perpetuating it, and need to stop it and fight it at every turn.
I think that it’s fairly normal. The dirty secret of this industry is that 90% of the jobs are Office Space, business-driven half-assery where programmers are seen as overpaid commodity workers (hence, software management’s fetish for boot camps and abuse of the H1-B program) rather than trusted professionals.
What seems to have changed (although, the more I talk to veterans of previous bubbles, the more I am convinced it was much this way always) is that Silicon Valley itself has ceased to be any sort of exception. The difference in the Valley seems to be a much harder place to work. If you work in the hinterlands, at least you get to work 9-to-5. In Silicon Valley, it’s more like 9-to-9 due to the glut of boot camp grads who haven’t had their hearts broken yet, and H1-Bs who can be threatened with deportation if they don’t shut up and dance. If you’re going to get the same lame work experience in either place, why not move to a stable big company somewhere with a manageable cost-of-living?
Silicon Valley is good for one thing: raising capital. If you have the pedigree (read: born rich, socialized to be really good at high-end people-hacking) to raise VC and play the Founder game, Silicon Valley is the only place to do it. As for tech itself, the place is beset by mediocrity.
To be honest, I think that there probably are as many interesting companies right now as there were at any other time. The difference is that there isn’t a critical mass of them. Silicon Valley used to have that critical mass; now it’s just another cluster of rich people, a few of whom were relevant and interesting 20 years ago.
It’s also a matter of pay scale. You don’t make in Tuscalusa what you’d make in CA or MA/Boston area.
I think this gets overstated quite a bit. For one thing, the cost of living is astronomical in the bay area (or NYC), which must be considered when factoring salary. Also, there are plenty of other places with tech jobs - even with vibrant tech scenes, albeit on a smaller scale - where you can still make a comfortable experience-appropriate salary and work a reasonable schedule. Places where you can make a six figure salary as say a 5-year experienced web developer, work 9-5 or thereabouts, and be able to afford a house without selling a vital organ. Atlanta, Denver/Boulder area, the SLC valley, Minneapolis/St Paul, and so on. I see this justification on HN a lot, like your choices are live in SF or NYC or else make $65k/year in Tulsa, and it’s just not accurate.
In my experience, the thing that you lose by leaving a “tech hub” is the access to a strong job market, especially if you’re older and seeking management or specialist roles. There just aren’t many on the ground.
Adjusting for cost of living, you come out ahead by leaving the tech hubs. No question there. The problem is that if you lose your job (which happens more often, because branch offices get hit first and because out-of-hub companies are more likely to have capitalization problems) or if your team gets moved, you can get stuck having to move as well. Or you can be marooned in a job desert, because after a certain age (getting old sucks; I advise against it) the jobs you want are filled based on connections and rarely publicly posted.
For as much as we bloviate about being high-tech and meritocratic, the way we do business is still very local and relationship-based, and that’s going to produce agglomeration.
Totally agree. I live and work in Boston and love it. I could make more in SFBay, but then I’d have to live in SFBay, and as everyone outlined pay the cost of living penalties. Plus, I can’t drive so Boston is a better bet for me public transit wise.
NYC would be even better for not-driving but the cost of living (mostly just housing) is higher than Boston.
You also don’t have to spend as much in Tuscalusa as you might in those other areas. I live in MI and probably make ½-to-¾ of what I could if I moved to SV, but considering the cost of living out there, there is no way I would uproot my family just to make a few extra bucks. I consistently find remote jobs that pay me more than enough to live where I do, and couldn’t be happier with it.
That’s fantastic! I’m always a little nervous about betting the farm on remote work - it seems to come and go in waves. Glad to hear you’re doing great and can pay the mortgage that way!
Oh, I surely haven’t bet the farm on remote work. I live close enough to Ann Arbor and Detroit that I can (and have before) found “IRL” work :)
Do I feel like there really are two different cultures? That the tech world all too often pretends to care more about correctness/understanding than we do? That a lot of people don’t belong here? Yes. Do I feel like I’m on the wrong side of the line? No. I often find myself arguing for a more careful approach that puts more emphasis on correctness, long-term maintainability and so on than other people seem to want to use - but fundamentally this is as a participant in a shared culture where we both agree what the success criteria are.
I applaud the author for actually acknowledging the reality of the culture as I experience it. But I fear the seeming criticism is misguided. I don’t think you can get the advantages of tech without the culture of solving problems, just as you can’t e.g. do good science if you’re only looking to confirm your dogma, or do safety-critical operations without incident under a strict hierarchical culture. It’s not just a tool but a way of life, just as e.g. the enlightenment was a massive cultural and social upheval, its visible fruits fundamentally entangled with and inseperable from the cultural changes. No doubt many a medieval monarch would have liked to reap the rewards without changing the social order - but such a monarch would have been entirely missing the point.
I care more about correctness than my job typically allows me to execute. That might be the difference.
Often I would be inclined to a higher level of correctness than my colleagues. Sometimes due to such a disagreement we end up making a release that’s riskier than I would have liked, and sometimes these risks are borne out as a higher-than-optimal rate of client-facing bugs. But that’s just a normal object-level mistake when it happens (and sometimes we go with my view and end up making a release that’s safer than it needs to be, and that’s also a mistake). We have a shared cultural understanding that correctness is a means to an end, we all know what the measure of success is (short version: money), so we don’t get the bitter disputes of people with fundamentally different values.
Yes. There are a lot of us. You are not alone!
I know you asked the affirmative, but I just want to say that I do not. I think everyone who WANTS to be here belongs in tech.
Yes, you will have to wade through a sea of imperfection every day, no doubt, but if this career path is truly for you, you will also experience moments of unmitigated joy and utter satisfaction.
I very much do. While the author was in journalism, my background is science and engineering. Engineering is a process more than anything and this agile world is pretty much the opposite. I hate it! I would also love to go back to research where things fail fast and we try lots of things, but we take pride in publishing perfection. But there’s a problem in academia and it’s the same problem in high tech: money and ethics.
When I was in undergrad, I was told by the professional association of engineers that software people will never get that P.eng stamp until the industry as a whole grows the fuck up.
Ethics in technology also haven’t matured yet and we are seeing this most prominently with Facebook. How are these engineers at Facebook considering their effects on human beings and society as a whole? Seems an afterthought where the real focus is on building cool shit and getting page views and ad revenues.
software people will never get that P.eng stamp until the industry as a whole grows the fuck up.
There are those of us eagerly awaiting that day, but it is not here yet.
We’re too enamored with building shacks to even fathom building cathedrals, and so we shy away from anything that’d help us do that.
I read the whole thing, even though I felt like the author tried to constantly insult me during my read.
I believe the ending is key. It’s just another plot of land she’s having an issue with. Leave it. It’s not all of tech, it’s the Silicon Valley part of tech—maybe. There are plenty of other plots of land which should suit well. And when it comes to the programming part, it’s simply about being responsible. Be that, and look for others that are. They are plenty as well.
She lives and works in NYC. Silicon Valley has no part in this. I think she’s speaking to the ideals we’re taught to strive for - clean, readable, elegant, “beautiful” code, and the reality of what actually runs in production at most companies.
What about her discomfort did you find insulting?
Silicon Valley has no part in this.
Silicon Valley has influenced far beyond its physical presence for quite some time now. If I can see it in Stockholm, I’m sure it’s present in New York as well.
Edit: (I see now how confusing my first comment must have been since I continued in “the plot of land” bit. I didn’t mean it as something physical, but rather one of many plots on a big map. That culture she describes isn’t the whole map. [I’m probably just driving he confusion further by trying to explain myself.])
Thank you for asking, and giving me the opportunity to clarify. It had nothing to do with her discomfort, which is highly regrettable.
Instead it was an (unnecessary) comment on how I reacted to her style of writing for this post. I felt that she dictated my reading, and I found all the “that’s cute” both annoying and insulting. But that’s on me, and I regret I made that a part of my comment.
[Comment from banned user removed]
Not even a trace: https://github.com/sarony?tab=repositories
What does her github profile have to do with her worth as a programmer? Are you saying that the multitudes of people who work for government, defense contractors, closed think tanks and the like are terrible programmers because they don’t have github profiles?
So much for diversity and “become a coder in 10 easy steps” coding camps…
This is just totally offensive on so many levels I can’t even. What does the fact that she’s a minority woman have to do with her worth as a programmer? It’s utterly irrelevant to the issue at hand.
Much as I hate to agree with @stefanpalaru here, the fact is that her Github is just a handful of forks of other projects and a lot of really basic work. There’s nothing wrong with that–my own Github is littered with barely-started projects and a lot of dead ends!–but it does suggest her context as not really having a lot of experience on the technical side of the tech industry.
That’s not in question. She’s not claiming to be a hard core dev, and she’s still rather new to the technology world - that’s her … thing. She runs the CodeNewbies podcasts and is definitely more about welcoming new people into the field.
Gotcha. As I point out in a reply elsewhere here, though, that lack of being a “hard core dev” prevents me from supporting her position, especially as her inexperience shines through. She hasn’t run into enough forms of software development to claim that “she doesn’t belong in tech” anymore than my bad lab in one mechanical engineering class would be grounds to be taken seriously were I to claim “I don’t belong in engineering”.
It’s her perception, sure, but it’s from such a limited vantage point it’s hard to try and draw the conclusions a lot of folks would want to from it.
she’s still rather new to the technology world
She managed Tech Jobs Academy at Microsoft for over an year, was employed as a junior developer for 6 months before that and was employed as a developer for 9 months before that - fresh out of a 4 months RoR course.
I think the Silicon Valley cultural menace has already gotten out of its original containment. Open plan offices for programmers are now the norm everywhere, and “Agile” brands of micromanagement will be next. Furthermore, we now have a president-elect who, although he comes from a very different business, has the swagger and attitudes of a Bay Area tech founder. I’m worried, because this thing is definitely spreading.
It looks like the author is a web developer. Surely there’s an area of tech that is at least a bit better when it comes to correctness than what (in my opinion) is the worst offender of “ship it!!!” culture.
What area of tech are you thinking about?
I’m not sure actually. I know there are programmers who work on low level systems or embedded areas that can’t fail because people would get hurt or a ton of money would be lost. Maybe there?
There’s plenty of real work that involves programming but isn’t the business-driven sprint garbage we all love to hate.
The problem is that “Real Technology” isn’t one place. You need a specialty, and usually one that isn’t “just programming” (e.g. biomedical engineering, aeronautics, high-end AI). The age when a generalist programmer could get into interesting jobs seems to have ended. Right now, it seems that you need something else in addition to programming ability to get into Real Tech. I think the best advice that I could give would be to look back to who one was before becoming a software engineer. What were those prior creative passions and intellectual interests? Obviously, this is very personal and some people will have an easier time finding a niche than others.
Also, in bubble times like these, the salaries in Real Tech tend to be lower by 10 to 50 percent, depending on how “researchy” the field is. On the other hand, those salaries are a lot more stable and, let’s be honest, the most talented among us may be underutilized, but most of what professional programmers do is monkey work and $120-140k for that is a short-term aberration that the masters are fighting, hence the boot camps and the abuse of the H1-B program.
Came here to say this too, there’s a lot of sub-fields in software that are much more concerned with getting it exactly right every time. They’re going to be harder to get into than just taking a bootcamp or teaching yourself, though, and there aren’t 10,000 startups and recruiters trying to place anyone with a pulse in those jobs.
This is kind of idealistic, isn’t it? It’s kind of like seeing stick-thin models and thinking “I’m so fat.” Or seeing power lifters and thinking “I’m weak.”
It’s incredibly idealistic to think you’re going to put out code that you are genuinely proud of after the fact. Even if you look at it in the moment and say “this is pretty good,” you’re going to learn something better a week, a month, a year later and look back and say “wow this is awful.” It always happens.
No two jobs are really identical, and people have different problems they have to solve. I’ve worked as a strictly front-end focused dev, a strictly back-end focused dev, and a full stack dev at various points in my career. Some of the problems are similar, but they’re not the same. They require different levels of understanding of the problem before you can solve it.
Anecdotal, but I don’t know anyone personally who loves coding just because they get to solve problems. Most people like making things. Solving problems is part of that, but it’s not the whole thing. There are some people who just like making basic edits and cleaning things up, then collecting a pay check. Your job doesn’t have to be your life (nor should it be, really).
I don’t know how old the author of this article is, but if I had to guess, I’d say someone fresh out of college. There is an incredible sense of insecurity which is obviously coming from holding themselves to some sort of unrealistic ideal. Pretty much everything you’ll do in life is going to be as good as it needs to be, not as good as you want it to be. There’s no changing that, and there’s no such thing as a perfect solution to anything.
The whole thing is a mental state issue, not a mental ability issue.
EDIT: I forgot to put a section in here that really rubbed me the wrong way:
You should start small and test and learn. But the way this advice manifests itself is often in writing shitty shit that makes shitty shit products, and leaving it in its shitty shit way. It’s the shrug that accompanies the mindless defense, “But it works.” It produces a mentality of doing the absolute bare minimum, not because it’s what’s best for the product or your team, but because, why bother to do more? It works! It condemns everything I’ve learned and loved about craftsmanship and quality and just plain giving a fuck. There are no As here, there is only pass and fail. Maybe coding wasn’t going to work.
How many products do you use every single day that have been built in this exact way? I’m going to venture an educated guess and say 100% of them. Why? Because this is the real world and not academia. You can still care about what you’re doing and do it your best given the constraints. This is something the author just does not understand. It’s not a black and white issue. “Either it’s perfect or it’s shit” – No. Look at the history of things like the beloved Super Nintendo and you’ll see all sorts of wonky bits that people just had to deal with to get things out. It doesn’t mean it’s shit.
She should just build her own SaaS product, and make it as perfect as she reasonably can. That should allow for plenty of perfectionism-itch-scratching, with no one telling her what to do, and when.
Of course, the ideal of perfect software might not be very pragmatic in the real world, with real customers and real salaries to pay. Very few companies or programmers want to produce half-assed crap and keep patching it until it falls apart.
The attitude the author’s describing is pretty universal at startups, but there’s a lot of “core tech” jobs where the exact opposite is true. Take my job, for example. I work on the optimizer for a C compiler. If any of us screw something up, the best case scenario is a few hundred people spend a few hours each banging their heads against a wall wondering why their program’s borked, when everything they did was fine. Everyone wants to think of their host language as a reliable building block, and we aim to maintain that illusion. In this environment, “move fast and break things” and pushing MVPs are absolutely not acceptable. Development here means rigorous testing, aggressive code reviews and a general attention to detail that a normal product just can’t afford because bugs in a normal product aren’t that big a deal. Compiler dev is hardly unique here: kernel and driver work, cloud infrastructure, basically anything that people expect to be reliable building blocks because important work is actually built on it, will have this sort of attitude. If you want a job where quality and attention to detail count, move a few layers down the stack.
This line of work isn’t for everyone, which is true for many other professions as well. Look about your place of business, and try to determine how many of your tech-adapted colleagues would do well as police officers, construction workers, bus drivers, airline pilots, or childcare workers. Chances are you’ll find yourself mentally pushing pegs into holes not meant for them.
And that’s okay! Not every profession is for everyone. There’s no need to lament the fact with a lengthy essay, no need to chase an illusory “inclusion” that would serve to undermine and defang the very selection process which weeds out those who wouldn’t do well in the job anyway!
I am not comfortable making half-ass shit.
I encourage you to write code for OpenBSD.
if you justify your failures with some wholistic “understanding” bullshit, you don’t have what it takes
I’ve seen too many sins committed due to lack of “holistic” understanding of the problem and the codebase worked on, and justified by the “problem solving” mindset.
It may well be that her code is not clean – I don’t know Rails and can’t be bothered to read her code, but I do think that it’s better to understand the problem before you solve it.
Let me spell it out for you: understanding the problem is a sine qua non condition for debugging, solving and preventing the problem in the future. Whatever the author was doing that was not part of problem solving it was obviously not understanding.
It’s not obvious to me.
This is as simple as I can make it:
Doing A is required for doing B. If you claim that doing A prevents you from doing B, you are full of shit and you’re probably doing C instead of A.
I don’t see any evidence that she was failing at B, rather that it was D that the industry expected from her.
Maybe you should read the article:
I am not solution-oriented. I don’t see a problem and get giddy at the idea of solving it, patching it up and sending it on its merry way. I want to poke it and ask it questions. Where did it come from, what is it doing, what’s its story? I want to take it to tea and hear about its life and understand it to its core. And if, at that point, I’ve come to a wholistic understanding and am able to solve the problem, by all means, let the problem-solving commence! But my instinct is never to solve, but to understand.
To me it reads like a hyperbolic way of saying, “I’m more focused on understanding the problem than on banging on the keyboard until stuff barely works”, especially given the context.
This comment contributes nothing to the discussion and paints the author in a non-charitable light. Please remove.
I am sorry, but it is not true. You can’t simply decree what and if a comment contributes something to a discussion or not. You have absolutely no moral, ethical, social or legal authority on that. Nobody does.
I found stefantalpalaru’s comments useful, and a breath of fresh air compared to all other content-less verbose comments that only managed to say “me too” or “no, but I understand you” in lots of words. Of course, reasonably people might disagree about the expressed opinions of either party, but you are complaining about the mere existence of an opinion, and I strongly object to that.
“You contribute nothing to the discussion” is a perverse tactic used to silence non-conventional though, and it needs to be stopped.
The article is about tech culture, not the author.
Talk about that.
You’re mistaken in your attempt to limit the things people talk about.