I left the first job I got out of college because the place was so horribly broken. The code was awful, impossible to debug, broke almost randomly, and if a customer asked for a feature - even one that didn’t make sense - they were promised they’d get it in a few days (which meant we’d be working nights and weekends… again).
I stuck it out for about a year - after a year I was the only person left who was there when I started. I followed one of the other exiting programmers to my second job. I was hoping it would be better. It wasn’t. Similar problems: nobody could describe what they wanted, but they knew they wanted it by the end of the week. Just a year out of college, I was saddled with a huge legacy codebase and nobody else to help.
I stuck it out for another year before the constant criticism and ridiculously long hours got to me. But this was the late 90’s, jobs were easy to find. I found another one. It was somehow worse than the first two. I had managed to refine some of my people skills and learned how to avoid a few of the landmines that the “business people” laid for unsuspecting programmers, but this third place had the same high turnover the other two had and in no time I was maintaining undocumented software whose intended function nobody even fully remembered.
I moved on to my fourth job in as many years. It was no better. We put together a desktop application and it worked pretty well, but they wanted us to port it to Citrix so that they could distribute it. They expected that to happen in a couple of weeks. Everybody but me quit.
It was then that I realized one of two things were true: either every software organization is ridiculously unreasonably dysfunctional, or the types of software organizations that would hire me were ridiculously unreasonably dysfunctional.
> It was then that I realized one of two things were true: either every software organization is ridiculously unreasonably dysfunctional, or the types of software organizations that would hire me were ridiculously unreasonably dysfunctional.
... or you never invested enough effort to look for your right team.
There is more than one team out there thats exactly what you're looking for.
It might take time and effort on your part to find them, but with enough effort you will.
There absolutely are people who want to build a solid business.
Part of building a solid business is building solid relationships
Two cents - do vent in public, and do share salaries. These things actually help other engineers, though I'm sure they don't help career directors and VPs. Let's not pretend to be stupid when we aren't.
After leaving a certain well known tech company, I also wanted to reflect honestly on the experience of working there. I tried to be honest, in a blog post you can probably find, about the problems with the place as well as moments when I wasn't at my best and could've done better.
Later, when I decided to go back to work, a prospective boss found the post and basically didn't hire me over it.
In this case, I felt fine about it. I could stand by what I wrote, and this person's not getting it was a signal for me that he wouldn't be a great boss.
But if I had written a rant and dropped some f bombs, I might have felt more silly.
Great respect for Rachel, I love her blog and she's clearly an amazing person and I wouldn't presume to tell her what to do. But, other readers, you're not Rachel. Consider your actions.
This is going to sound cliched, but I'm doing this in part for the people who can't do this. I have the flexibility to do this, and I kind of figure "from me, according to my ability". If it improves the situation, then I've succeeded to some small extent.
Everyone else: if you can't stick your neck out, DON'T.
(Also, some people want to hire you because you're a straight shooter and you don't stand for bullshit. It's not burning bridges, it's finding the ones that weren't worth a damn in the first place. The good ones will still be there, and will be even stronger for it.)
> I'm doing this in part for the people who can't do this
A serious heartfelt THANK YOU for doing this.
> Also, some people want to hire you because you're a straight shooter
Absolutely!
Life's too short to work with people who are not looking out for you.
Life's too short to work with people who think they are pragmatic by being deliberately ambigious or outright misleading.
Just move on, if you can. There is more than one team out there thats exactly what you're looking for.
It might take time and effort on your part to find them, but with enough effort you will.
There absolutely are people who want to build a solid business.
Part of building a solid business is building solid relationships.
Evidence? Every company, that failed to build solid relationships, no matter how big to fail they were in the past, are nothing today.
And... if you are thinking maybe you should leave a job, leave yesterday! Those of us who solve problems solve them by stubbornness, by not giving up. But problems with a toxic workplace can be solved only by giving up.
If everybody suffering also left, the problem people they are all supporting would drop right through the floor.
I believe this highlights a very important reality of office politics. Most ICs, even Principal Engineers, are just not in a position to fix significant technical-cultural problems...you just won't have enough influence.
If your goal is to influence the big picture at a corporation then your title probably has to be Sr. Director, VP, SVP, or something similar. Even then it won't be easy. Political and cultural inertia will conspire to prevent change.
I had a boss in a big corp. He couldn't fix the techno-cultural problems but he could and did hold an umbrella over his team. It'd be raining down shit and we were dry.
Not necessarily. I think the key is not to take a job that is defined as being a technical resource. Because as long as you do, you will be a member of the techie caste that exists to be plugged in to the existing cultural problems.
What you need to do to break free is simple, but not necessarily easy - get a job with no technical requirements, but which has the potential for technical/cultural solutions.
This is the direction I eventually went in, and one thing I find interesting and notable is that even after solving all sorts of things through programming, people aren't letting me withdraw into just being a programmer - which I think is a good thing. Once I write a program to do something, then I have to document it, then I have to train other people to use it, and then we have to develop contingency plans to do without it if I should be hit by the proverbial bus. And maybe figure out how to get another developer up to speed to maintain it. If I were an actual programmer/developer, then all the different jobs would be pretty much left to other specialists and managers.
Maybe some people would say, just join a startup or make your own, and you will become more well-rounded, but I'm not swamped with offers to do that and have worked in larger organizations.
I'd take this with a grain of salt. The problem she was trying to "fix" is describe very generically on purpose, so that you'd never guess what the actual problem is and whether it's a problem at all. Then, it looks like "problems that don't get fixed" is a pet peeve of hers (I found this talk she gave: https://youtu.be/rJJAxQjZ-uE). There is always two sides of the story. We're hearing one side, and not even a good version of it.
This article is showing an important lesson: no matter how valuable you are as an IC, changing the culture at a toxic company is very difficult alone. The one thing that has been proven to work for these situations is collective action by employees. One IC is replaceable, a team of ICs quitting is a disaster, the threat of such action is enough to make any manager/director shit their pants. You don't even have to come out guns blazing and do a full union right away, creating a simple demand on paper with all members of a team signing that demand is often enough to make management scared.
This person had a terrible experience at work, and you telling them "don't vent" is condescending. Our industry has a problem with toxic work environments, and we need to talk about it.
> This is good advice for those who can't afford to be honest
Indeed. It's very sad that a lot of expenses are borne by the employer (in reality actually paid by the employee) who get to treat that expense in a special manner that the employee cant'.
For example: the employer provided health insurance you and I pay. Yes, you and I pay for it but the employer gets a tax writeoff on it as a OPEX.
This makes health insurance premiums in the US a real deal breaker for entrepreneurship.
I don't know, this post was so vague that, although it was technically in public, it's impossible to figure out exactly what's being said or what happened (other than that Rachel by the Bay quit a job after about a year).
imho, it's just better to more or less part amicably - maybe you don't agree with management, that's fine, move on and do what you want to do at another company; but it's probably best not to flame them out on the public internet.
I left the first job I got out of college because the place was so horribly broken. The code was awful, impossible to debug, broke almost randomly, and if a customer asked for a feature - even one that didn’t make sense - they were promised they’d get it in a few days (which meant we’d be working nights and weekends… again).
I stuck it out for about a year - after a year I was the only person left who was there when I started. I followed one of the other exiting programmers to my second job. I was hoping it would be better. It wasn’t. Similar problems: nobody could describe what they wanted, but they knew they wanted it by the end of the week. Just a year out of college, I was saddled with a huge legacy codebase and nobody else to help.
I stuck it out for another year before the constant criticism and ridiculously long hours got to me. But this was the late 90’s, jobs were easy to find. I found another one. It was somehow worse than the first two. I had managed to refine some of my people skills and learned how to avoid a few of the landmines that the “business people” laid for unsuspecting programmers, but this third place had the same high turnover the other two had and in no time I was maintaining undocumented software whose intended function nobody even fully remembered.
I moved on to my fourth job in as many years. It was no better. We put together a desktop application and it worked pretty well, but they wanted us to port it to Citrix so that they could distribute it. They expected that to happen in a couple of weeks. Everybody but me quit.
It was then that I realized one of two things were true: either every software organization is ridiculously unreasonably dysfunctional, or the types of software organizations that would hire me were ridiculously unreasonably dysfunctional.