Hacker News new | ask | show | jobs
by guhcampos 2838 days ago
I don't want to sound an asshole, but I will sound an assholle nevertheless.

I was damn happy as one can be at 3.5 years in my career. 10 years in, I feel like my happiness and awesomeness has been slowly consumed by corporate politics, unfair promotions and layoffs, bad work ethics and the such.

I still like my work. I really really enjoy it when it's productive, and I still feel amazed to see the green checkmark on my CI after a long and challenging git push - but after so many years and a couple companies it's just work.

There are some real cool places and projects to work though, you just need to dig through the "look we're cool let us enslave you" crap.

14 comments

Yeah, I feel the same way.

What hurts is when you decide to switch to another company, which has good rep, and finally find out: it's the same. Everywhere. After the big bosses do stupid shit, they get promoted elsewhere, leaves you fix the broken plates, rince and repeat until a merger, bankruptcy, or major reorg. Meanwhile middle management gets bigger and everything gets slower. Good employees leave, bad one get promoted to middle management, and you wonder why you're stupid enough to stay there.

That's why I'm a private contractor.
Likewise.

And I've reaped the rewards from it, but there's still plenty to be miserable about. What was that Nietzsche quote?

To live is to suffer, to survive is to find some meaning in the suffering.

I'm not sure I've found much meaning in my work life.

I've got 5 people brought in for the latest contract, folks earning a living because together we provide a much-needed skill to a company in a tight spot. Its been a great few months, and we continue to execute on a 6-month work list and bring them back in control of their process.

Work from home but I'm having a lunch meeting with the major players today which is always a great time getting updates and planning the next week!

So, my work life is great.

I'm considering the same, but I recall reading something someone said while I was in uni - "Why would anyone want to be a consultant when you are mainly brought in for the 'gone to shit' situations?"

Any thoughts on this? Is there any difference?

Getting a situation from 90% optimal to 91% is very difficult and produces an improvement few care about.

Getting a situation from 20% optimal to 50% is usually relatively easy; getting to 75% is a giant pain, and either result will get you hailed as a hero.

You also deal with the politics with the disengagement of an outsider, and you're gone before it can suck you in too deep.

A missionary is quoted as saying

"Some want to live within the sound of church or chapel bell; I want to run a rescue shop within a yard of hell."

It takes all kinds

Some days, I am just like a zombie - I still get work done, but just don't enjoy it. That said, my colleagues are nice and I have some freedom in my work (though the work itself is boring) which is more than what most people say. So I feel guilty complaining about it (I can't easily change jobs).

After working so long, I've come to the conclusion that the best way (and maybe the only way for most people) to enjoy work is just work for self. This is easier said than done.

Those "real cool places" you mention, there are very few of those.

lots of places can appear to be "Real cool places" but I find no matter how cool the place is - the stuff you don't like about working in corporate companies - is almost universal - especially if you're not particularly fond of playing the career ladder/dog eat dog games.
I was there at about 10 years, now after 12 years I'm happy again because I realized that when I was happy it was because I was ignoring the corporate politics, the unfair promotions and the bad work ethics. Now I learned to be vocal about it when it impacts me and delegate the responsibility of fixing it or giving feedback, and ignore it when it doesn't affect me... maybe give a heads up there, like, "hey maybe they are just spewing bullshit to keep you busy and really need to solve some issue between them! be careful!" and then get back to what I need to do.

Yes my work now as senior whatever or whatever whatever manager is not as easy as Jr. Sysadmin, but it's rewarding if the organization is functional, once I learn the ins and outs and after figuring out what to worry about and what to not worry about.

"figuring out what to worry about and what to not worry about"

I think that is the "know when to hold 'em, know when to fold 'em" skill which is totally necessary to be content while working in an office environment.

Oh absolutely, never worked/lived in the US so I'm not familiar with how the engineering culture there calls this workplace mental higiene stuff but yes, it's totally that skill.
I feel exactly the same way and also just hit the 10-year mark. I'm literally working at the worst place I have ever worked at in my career. Next Friday will be my last day.

I'm seriously considering trying to get out of tech forever after this last gig. I'm moving to Asia in a few weeks to try to work on bootstrapping a small company.

Sounds like a good plan. No sure if it helps, but I thought about changing domain as well after a horrible gig (actually two in a row...). Following a short sabbatical / studies break I just changed industry. Turned out I love logistics simply too much to do anything else.

And yeah, there is no need to waste time for a job that is only driving one crazy. Enjoy Asia!

Same here. Ten year check, worst company ever check. I never ever walked out during the trial months but this time I did and it was liberating. I will stay in tech, but after this "experience" my expectations just went down to zero. Whatever will be, will be.
It's quite funny how many IT persons I face when dancing (in my case Argentine Tango). But I start to believe that it's because it gives you another dimension/mindfulness of life than putting bits in the right order does, but at the same time is quite nerdy. I do recommend it immensively though, especially if you get of a gig and have a bit of spare to learn the dance intensively for a few weeks. Game changer.
Good for you and good luck!

just curious which Asian country?

Thailand first. Then maybe I'll roam around. Vietnam, Cambodia, etc.
I've had a similar experience. So much hype about each new place I've joined only to find the same levels of corporate political crap. What kills me is the lack of care about the quality of the product. "Good enough" is never actually good enough for me and when you are the only one (or at least in an extreme minority) in the entire company that cares about that, it's incredibly demotivating.

I've recently joined a very early stage startup at a pretty high level. I'm in charge of an entire class of product (mobile native apps) and it's been the best experience of my career so far. It's stressful and tough but I'm 100% in charge so I can care as deeply as I want and it's up to me to make it work. Very rewarding vs the typical Corporate slag.

> the quality of the product. "Good enough" is never actually good enough for me

I hear you loud and clear. One way to get a higher standard of quality may be to switch industries. In aviation, where bugs can cost lives, there tends to be a higher standard. You may still find the bar of your co-workers isn't as high as yours, but it will definitely be higher than at a consumer-products or web-facing company. I know, I've interviewed at a few of those and turned down follow-up interviews and offers because they don't care enough about quality to do QA.

"Devs push to prod; rollback and page someone if it breaks" isn't acceptable when the customer isn't able to take 300 aircraft out of service every week to load your latest release.

The only places I found where this was not the case were companies / teams in a state where their existence and viability depended on churning out high quality software. Crisis situations with pressing needs have the doubly added advantage that they are irrational choices for those consumed by corporate politics.
Crises are amplifiers of both positive and negative. I previously worked at a company in prolonged existential crisis, and while my team (working on a potential way out) and immediate management was great, there was a whole lot of backstabbing and irrational/incompetent/powerplay decision-making happening elsewhere in the continually shrinking org as people played musical chairs.

In the end, we delivered the project, but the company was acquired and everybody got laid off anyway...

~10 years here too, it's not so much corporate politics that bugs me, but the apparent futility of what I've done. I've had a number of assignments but it's all roughly the same - rebuild this existing thing over the span of two years, but this time in $technology.

It's often rebuild projects for rebuild's sake, and not because the old one is bad, but because the old one's developers are gone and nobody wants to invest the time and effort it takes to get to know the codebase.

~5 years ago I was probably at my most productive, churning out something like 5000 commits a year or thereabouts; thinking back, I realize that nobody in their right mind would even try to understand everything that I've built during that time.

Last year we were asked back to that customer again, this time to rebuild the application but in $new_tech_of_the_month. That really gave me a sinking feeling - like, I and my colleagues spent over 2.5 years on that application, and now it's just getting thrown away (we're talking >100 application screens here) because someone higher up decided Angular was no longer cool and everything had to be done in Polymer?

I mean if they had only properly maintained the application since I left. But nope, bumble along for 3 years and just toss the lot.

TL;DR, a lot of software is throwaway and effort is wasted.

Could be perhaps because Angular 1.x is not going to be maintained in the next 2 years so there are some security issues with that. And obviously, effort was not wasted since people used the application during those 2 years and you hopefully learned some stuff.
No code lasts forever. 2.5 years is a pretty good run for anything. If the company grew in that time, then they need to revisit all their processes including all those application screens. This sounds pretty normal.
I don't think the effort was wasted; you made money and hopefully had fun while doing it. The system was probably useful to the customer either directly or indirectly (by testing a hypothesis, for example).
Same here, not in the tech industry but it is everywhere the same to a certain degree. Now, also ten and something years in, I try to push myself into the direction of NOT looking at the career ladder anymore. Shocking how haed that is actually.

The thing I relized that is helping a lot is doing stuff that a) builds on my interests and experience and b) is a intellectual stretch.

Otherwise I run the risk of being bored and running out of patience with the politics around me. Lucky me for now this working out okish to fine sometimes.

Ah, and having colleagues that a fun to work with!

> I try to push myself into the direction of NOT looking at the career ladder anymore

I had the opposite thought. I never used to look at the career ladder, when recently I realized that I might need to, in order to get a more satisfying/challenging job.

I entertained that thought for a bit, but then realized that I enjoy my personal life and projects more, and that it would probably make me enjoy my work less if I were career-focused. Plus, I like my current team and job enough as it is, so it wouldn't be worth it. Now I just try to be mindful of doing things that will advance my career (basically being a valuable employee), but not at the expense of my personal life.

...my happiness and awesomeness has been slowly consumed by corporate politics, unfair promotions and layoffs, bad work ethics and the such...

You are not an asshole. Bootlickers gets promoted and stupid managers are biased towards them

Corporate and office politics are so frustrating the higher you climb the corporate ladder. I'd love to be able to show up to work and for everyone to do their job and leave emotions and what not out of it.
I don’t normally empathize with hackernews comments but I 100% agree with this.
You sound an awful lot like me. The first 3.5 years was great, maybe even stretch that to the first 5 years. All downhill from there.

I'm starting to understand why everyone says the best jobs are never on public display and you should network and making a brand for yourself. Working actively on that now, will see where that brings me. Also working on my own projects. The most important point for me is to try to make it better.

What do you consider bad work ethic?
Coming to work to fill the seat?
promoting friends over high achievers, nepotism, gaming performance metrics, gaming peer-reviewing systems, deny profusely blame for things you did, framing others for your mistakes, withholding key information from peers, installing hidden scripts to break things when you are not at work, closing unresolved support issues to reset SLA metrics, clock-in to work then take a stroll through the office until lunch, clock-in to work from home and go watch Netflix, take sick days off to undergo cosmetic surgeries...

just some examples from the past couple years that came up real quick =)

> I still feel amazed to see the green checkmark on my CI after a long and challenging git push

How is this "amazing"? Can you not build a branch locally to see if it works as you go? Have you no facilities to run local tests?

I don't know about OP's environment, but the larger the codebase, the less feasible running every test locally as you go becomes. You run relevant tests locally as you go, but depending on the change it might take a long while to run ALL tests that could possibly be impacted.
I'm still surprised that there'd be an element of uncertainty. Wouldn't you want to be sure that your code would pass before pushing it out for others to see? What if you pushed and the CI gave you a red X, wouldn't you then feel bad when your coworkers see that and think you are a poor coder? Seems to me it'd be best to be absolutely sure everything would pass before letting anyone else read the code...
"Absolutely sure" isn't an achievable level of surety, because everything has a chance of failure, however small.

You could go for "NASA sure", which is when you spent 100x the effort of the average tech company making sure only some of your spacecraft explode on launch, or you could go for "Github sure", which is when you spend a large chunk of your $200+ million ARR to ensure your core product only has a couple of major outages every year, or you could go for "startup sure", which is when your test coverage is 5% and you throw random stuff into production to see who complains, but you can't ever achieve "absolutely sure".

It's worth noting that you can absolutely apply every level of "sureness" within the same company - and such gradation can be very effective if applied smartly.
A failing CI build should not be taken as indication of being a "poor coder". As others have said, in complex systems running every single tests locally can be very time consuming, or even impossible. In my opinion, if you work in an environment where being seen as poor coder because of failed CI builds is a real concern, that speaks more to the potential toxicity of the work environment and/or insecurity of the coder.
I think you are missing the whole point of CI. It has nothing to do with detecting if you are a poor coder (though it will do that too). CI catches issues in the working of multiple components together in your app, presumably coded by different people, possibly but not necessarily geographically apart, as fast as possible - hence the continuous. The key point is integration - there might be issues that your unit tests that you run before pushing the code won't catch, which CI will.

I would go out on a limb and say that the dev teams you have worked with have cultural issues about openness and saving face, and/or you have not worked on big enough (in terms of devs, LOC, distributed-ness) codebases. I might be wrong.

All kinds of strange things happen that cause a build to Work On My Machine and not work on the server. The most common cause I’ve found for things to build on my machine and not the build server are external dependencies that were mis referenced.