Of course some places I've known sooner, but those are the exception.
If it wasn't for the quality of life my current jobs is providing, I'd probably find something else. I just can't find anything right now that is intriguing enough and pays enough for me to make the jump without losing benefits.
Nursing is known for lifers on single units, and personal growth doesn’t happen unless you are cognizant and strive for it.
Honestly every job has huge up and down swings. I've been at my current place for about a decade, which seems like an outlier in this industry. Also roughly 1/3 of the people I started my career with (roughly 40 or so) are no longer even in the industry. Another 1/5 or so have transitioned to adjacent roles like project management, etc.
I make it a point to evaluate whether I want to stay where I'm at every six months and only leave if I want to leave two evaluations in a row.
I get the salary optimization done by the 2-year hoppers, but it bites you down the road as a senior engineer and onward because you've never had to live with the consequences of your engineering choices. Hanging around for longer teaches you that even the seemingly-best decision made at the time can seriously bite you years down the road.
Interestingly my current job I'm at the 48 month mark and sands definitely shifted after new management stepped in and slowly but surely gutted the culture, though I actually thought I wanted to leave almost immediately when I joined. It took me a little bit of adjusting initially to come to like the company at first, but it's been the longest place I've stayed since far.
Every time.
I don't care about your stack; obviously I have taste and preferences but I'm a professional, I'll work with whatever, as long as it isn't Rails. (Because there is no good work in that world.) But it will not take me a full day with access to your repos before I know whether there's anything you can do for me past signing the checks.
What is your thought process here? Is it the notion that you can ship as fast as possible, and that creates a shitty environment given that you're a hamster on a wheel getting measured by output since "you should be able to ship fast?"
It matters, far more in this ecosystem than others. If today there seems to be a history of pervasive testing culture in the Rails ecosystem, I can only assume there must exist some quiet mutual agreement to keep some history swept under what must be quite a large rug. Oh, I remember the same enormous amount of lip service about testing that you do! And I also remember what it was like to try to integrate a dependency into a Rails project in 2012, because that was a fair bit of what swore me off the platform. Rails was famously the home of dogshit engineering practice in its day, every bit as much as PHP, excepting only among the coterie of too-good-for-finance Boston hipsters who invented the thing, and benefited from all the same traditional software engineering training and practice they built a culture (and, coincidentally, a reputedly quite lucrative consulting practice) around decrying. Just saying "I saw good Rails back in the day" thus really isn't dispositive.
They were young, so was I, we all make some bad decisions at that age, it's fine, I don't care. But none of us is young any more, and as an aging hipster once said, there's nothing more contemptible than an aging hipster.
I do wonder if Rails is so bad compared to other frameworks that it deserves such a distinct treatment.
Over the decades I’ve worked with at least half a dozen popular frameworks that fit this description, is the same for you or is Rails truly unique in this regard?
I'm not actually averse to a programming environment where the only ground truth is the running image. I love that kind of environment! In my editor, where worst case I dump some state when I restart, and I can just not play such dangerous games when on call or there otherwise exists a risk of winning such stupid prizes. Production has rules. Or it had better.
That said, if you want me to go back to dynamic typing, there's a fee. The grass really is a lot greener over here.
Debugging can be extremely hard when there are multiple complex frameworks/libraries doing magic stuff, plus extensions by the current team.
In practice this is all very convenient when you're writing the code, but not so much when you have a production issue.
The best of the best developers may have the resolve necessary to ignore their emotions and stick to writing 'magic-less' code when they move past the one thing Rails does well, but most projects are going to land in the laps of most developers who aren't that. I am sure we can find counterexamples of where exceptionally skilled teams have been able to wrangle Rails, but the exceptions do not make the rule.
On the other hand, when beginning in a place where writing ugly, boring, but at the same time usable code is the norm, even the average developer tends to stick with it when they need to do things that are "off the Rails". They don't have the original enamourment to get caught up in. There are plenty of developers who can still manage to screw this up too, but, again, exceptions do not make the rule.
Rails is just a tool, of course. The outcome ultimately is down to the operator. But there is a certain psychology at play that introduces difficulty. It is kind of like giving the average daily commuter, who is a perfectly fine driver under normal circumstances, a supercar with features they can fall in love with. In theory it's just a car to drive as they normally do, but they're bound to do something stupid with it when the emotions take over.
1) Rails and Ruby will gladly let you make an absolute garbage fire out of your codebase, while it still technically works, and discovering how exactly the garbage fire is structured so you can start trying to put it out is unusually difficult in Rails. You don't have to make it a garbage fire, but they won't do a single thing to discourage it, and once it's bad, it's hard for an outsider to show up and figure out how to fix it, because of how the framework and language are designed.
2) Rails is often chosen by very price-sensitive companies trying to move fast, as cheaply as possible. This means high turnover, lots of enthusiastic juniors, outsourcing (often passing through multiple outsourced teams...) and often mediocre or poor management oversight.
The result is that a high proportion of Rails codebases in the wild are both remarkably terrible and impractically difficult to restore to some non-terrible state (i.e. they're the kind of cases where the right call really is to just start over—one of the things that makes them hard to work with is that a bad rails codebase is especially hard to rewrite-in-place, it's just a ground-up replacement job usually, but you won't actually be allowed to do that because see again: price sensitive, so you'll just live with an awful pace of development and poor application performance while management gets increasingly frustrated by the outcomes of their own choices)
The worst code I've ever seen by a country mile though was a huge Python 2 code base written on an old version of Tornado circa 2012, a library that basically hacked the Python language to get code to run asynchronously, but you had to contort yourself into knots to get it. You couldn't just call other async functions/methods, you had to `yield func()` when calling them. To return from a function, you couldn't use `return` you had to throw an exception of type Tornado.Return. Absolutely insane way to write code.
Then all the business logic written on top of this bizarre framework was terrible. Half of the code broke the rules I just mentioned but still half-worked sometimes, but would perform terribly or have mysterious problems.
One of my greatest accomplishments was getting it all to Python3 then onto more sane async-style code.
I'm with you on the general lack of discipline enforced by Rails; this codebase isn't fun to maintain, precisely for that reason. All the same, I don't think your critique is fair or even that accurate.
But that's from my POV working at bigger companies. Maybe it looks different as a freelancer for smaller shops.
If you think my critique is unjust or inaccurate, then attack it, not my standing to speak on the subject. Especially not when I'm the more forthcoming of the two of us when it comes to professional history, anyway; mine is findable from my HN profile, while you prefer true pseudonymy. To argue from authority as you've tried is quite risible with none of that even in evidence, don't you think?
Not sure what I said that came off as an attack on you or your standing. Not my intent.
I been in this field for almost 30 years and have worked with whatever tech the job required. Still I learned more at a Rails shop with more than 200 engineers all working in the same monolith shipping to production multiple times every day.
Bottom line is it’s about the talent and the discipline. At the end of the day it’s not bad languages that are the problem it’s bad engineers.
Did it several times over a period of 15 years and they were always a wreck and unreasonably painful to work with. Every single time.
I'd start a green field one, no problem, provided I get veto on gem choices ("Let's use some twee fucking template language that's a ton worse-performing than the default and doesn't let you programmatically control nesting levels / end tags because it's terribly designed" yeah how about we don't do that because it's going to make my life a living hell) without charging a premium. But no more onboarding to rails codebases without enough money to make it worth my hating every second of work for the (assuredly short) duration.
... and I like Ruby!
I'm glad static typing came back
Rails should have incurred some kind of criminal indictment.
I wish I hadn't mentioned either, because now no one will talk about anything else.
Hell, just finding out what methods can be called from a given code location is something that most Rubyists I’ve met answer either with a runtime debugger or hard-fought and non-transferable memory about a particular piece of code.
Like, I don’t need perfectly accurate programmatically-available answers to those questions in my IDE (though that would be nice). I’m fine reading code and working it out if things are added via reflection/metaprogramming. But if the domain of code to read to determine those things is “who knows/could be anything in the codebase or dependencies”, this is a poor quality tool and/or community.
If you read that and think I’m complaining about one specific instance, codebase, or Ruby community habit, I promise I’m not. It’s not about the 2014 obsession with “DSL”s (that aren’t really DSLs); it’s not about method_missing, open classes, pervasive monkey patching, and so on. It’s about all those things, and more, and the overwhelming enthusiasm (with no small side of smugness) with which the Ruby ecosystem doubles down on them constantly.
Is it the language itself? The community? I don’t know, but I know there are plenty of equivalently capable alternatives to both, and that’s enough for me to avoid the hell out of Ruby and Rubyists for a long time to come.
Is Ruby the worst? No, that honor goes to a multimillion line Perl monolith worked on by far too many not-as-clever-as-they-thought-they-were people over far too long. But all the Ruby I’ve worked on is close enough to that experience to make me question the choice of tool.
I can write perfectly legible and readable Ruby if I want to. But I also could just write Python and it would be easier to maintain.
So, yeah, I look forward to the cycle tacking in the other direction but today ain't it
1: to say nothing of the fact that model servers exist so why the fuck are you writing business logic in a language that DGAF just because your data scientists have a hard-on for pytorch
My perspective on this is that of a working engineer who made a deliberate choice, now nearly 15 years ago, to avoid ending up stuck in the same decreasing-radius career spiral I saw Rails leading me toward - so I went and did some other things, then spent a decade building modern TypeScript instead, mostly on Kubernetes, without losing the ability to knock out a quick one-off script or architect a system top to bottom as I need. It's worked out splendidly for me! I suppose I might have done as well if I decided differently, but I admit I don't see how.
My pet theory is that LLM coding is going to give the upper hand to more verbose languages like Golang or Typescript because more of the execution flow will end up explicitly in the LLM's context. Convention over configuration-type frameworks ruled when one-person code bulldozers shipped MVPs but Continue is upending this paradigm.
It's a game changer for human devs also, and not really one I would expect a serious Rails habitué to necessarily evaluate in a way that's reliable. What did someone call that once, the "Blub Paradox?" Silly name, but that's this industry for you.
Edit: I see your other replies, nvm!
I've had decades like that in my career, which began in the nineties. It would be nice to have another such decade; I don't enjoy always keeping one eye on the exit and my back to the wall, rather than being able to count on a given environment to stay stable enough long enough with enough upside to really repay my investment.
This doesn't feel to me like such a decade, though. Too much is changing too fast.
IMO it completely depends on the company you're working for. I've seen job ads targeting my skill level offering $200k/year, and others offering $130k or even less. There will always be companies out there either trying to lowball people, or who genuinely don't operate in a vertical which is profitable enough to pay top-band salaries.
On the developer experience side, I haven’t worked extensively with the latest versions of Rails, so I don’t have a strong opinion yet on whether Hotwire provides a better frontend experience than React. That said, people I respect in the Rails community speak highly of the Hotwire approach to building modern, interactive UIs without the overhead of a full SPA. I’m sure I could pick it up with a little effort, but it’s not a top priority for me right now.
From a technical perspective, my sense is that teams adopting or reverting to a pure Rails stack, especially with Hotwire, tend to be more conscientious about keeping versions up-to-date, and generally more opinionated and deliberate about tech choices. A few years ago, replacing Rails views with React SPAs was not uncommon. But now that Rails has caught up with tools like Turbo and Stimulus, some teams are intentionally moving back toward server-driven UIs.
In terms of employability, most of the job listings I came across during my recent search were still Rails + React. And given that being fluent in multiple tech stacks broadens my opportunities, I plan to stay in the Rails + React camp for now.
The thing is, people can lie about all of those, but whatever social problems exist in the environment will invariably be evident in the code.
What's the old saw about how if you have four teams working on a compiler, you'll get a four-pass compiler? Conway's law [1], that's the one. That one works in both directions. When you're reading code that seems like it would be 0.1x as complicated if any of the people involved in writing it ever spoke to one another, the wise engineer new to this environment begins asking, why do these people never speak to one another? But not too loud!
If it's that vitally important to you to only work at jobs with tech stacks that will "advance your career" beyond that job, why would you even apply to a job that doesn't show one you consider worthy?
I made an exception for one specific technology that in my experience draws a particularly intolerable crowd, while offering peculiarly poor pay to make up for the unusual degree of tolerance for abuse that is required to navigate the social dysfunctions such people invariably create and foster. What gets so up your nose about that, anyway?
Yeah, yet their job listed a bunch of shiny "modern" cloud stuff they were doing, but they actually have three busted serverless functions and some dusty Java IBM Websphere things floating around running the whole business, while the job description listed 432 different things they were "looking for".
What is you reaction to the kind-of-shitty company that gives you an opportunity for great personal growth and creativity?
Great colleagues but a real monoculture?
///
I liked most of TFA but the end where the author claims that management is more committed than IC's seems really strange to me. Is that something people look for? It seems like it would come across as totally fake cheerleading. Anyway, outside my experience.
Question is what is the value of suffering these fools? New skill? New perspective? What's the result of this transaction?
That to me is what defines staying power. If there's just no value, or a bad imbalance of toil to value, it's time to go.
You might never know for sure if a job is right for you though.
The only "bad" job that I had was with a very good company (wonderful people, great benefits, just the code absolutely sucked), so that was making the decision very hard to quit. In larger corporations, one might be able to engineer moving departments if that helps.
I'm sort of in this situation right now
Lots of good things about the people, the pay, the benefits
But man
We are a "microservice" architecture with something like 5x more git repos than software devs
It's a nightmare
part of my problem is that I get unhappy (or bored) with a job but sit in denial for too long. so by the time I start looking for a new position, I'll desperately jump headfirst into a new gig instead of lining up the perfect gig.
Or maybe not. maybe it's impossible to tell if a place is a good fit from the interview.
FWIW I have several shorter gigs in my resume. A combination of me being still young and not evaluating things correctly, and employers not being honest about working conditions. I even once stayed at one job for less than 2 months, but to be honest I have left that one out of my CV.
One more thing: I've been on the hiring side a few times and I have observed that candidates with very long gigs (5+ years in the same job) are often seen negatively (Why did they stay in the same job for 6 years? Do they lack ambition? Don't they like a new challenge? Etc.)
Even so, there's some companies with notorious reputations for culling staff (often only loosely correlating with performance). I'd be wary of hiring someone with long tenure from one of those places, to survive, you have to be a certain type of ruthless.
I'm in this situation right now. Just passed the three year mark and the new executive team is starting a rodeo
I honestly feel very down on myself, as if I'm incapable of staying at a job more than 3 years. Like I'm making excuses for moving on, not reacting to a change in reality
If I'm not learning new things that will get me the next better job that's a rung up the ladder, there's no point in staying. I've never had a job where that's the case three years in.
Also the company I'm currently at boasts a lot of engineers who have been with the company 10+ years, some who have for 20+. It's an abnormal software company for sure
I can’t help but feel like I’m being some soft and prissy when I switch jobs after a couple of years. Previous generations worked jobs they hated for decades and got paid way worse than I do. Why can’t I just deal with it? It’s a job, it’s not supposed to be fun it’s supposed to be a thing I do in exchange for money.
I visualize this alignment like two boats travelling on the ocean together, with a rope that runs between them, connecting them.
When the alignment is strong, the tension on the rope is low, and it's a great place to work at.
But over time, the direction of either party can change, and it results in a better alignment, or a drift from each other that starts to put the rope under increasing tension.
It's possible that the tension on the rope is good, and your trajectory will adjust. But due to the size of the company it's unlikely your small boat can adjust the heading of the company, but you might succeed, if you try.
The key is to know when the rope is about to break, and then disconnect from that company and start the process again with another company, aligned in your direction.
This post helped me a lot tonight, thank you
I've been feeling this tension building like crazy over the past few months as my employer has been pushing AI mandates and metrics hard. It's been making me miserable, my productivity is crashing and I wish I could ask them to just lay me off already so I can move on
I am very discouraged about the job market right now and I do not relish jobhunting at the moment, but I think you're right. It's time to move on for my own sake and try to find something new
You control when to disconnect from the company, that's 100% in your power.
Happy sailing!
If one has a choice (that means if there is no case of clinical depression):
At least anecdotally a bit of optimism improves my life quality a lot and results in a higher productivity, proactive solution finding and a more pleasant work environment. Constantly looking at the negative side of things (with a healthy serving of snark) contributes, in my opinion, to burnout and fatigue.
If you have a false impression of a person's character because you've jedi mindtricked yourself into not thinking the worst of people, you might end up trusting an untrustworthy person.
If you are in a toxic work environment, and you convince yourself it's not so bad, you might end up staying in a situation that is actively harming you.
We are speaking in the abstract and I can't comment on anyone else's experience. But I personally find toxic positivity and the endless drive to be more productive much more dangerous than being too negative.
This isn’t to say, be foolish. But on the other hand, the mindset that leads to this kind of deprivation can be more difficult to cure, since it always appears from a place of rationality.
I hate a toxic work environment too, but let’s be real, everything is fake at software companies, so there is no “harm” happening if you stay. So what if leadership is terrible, if you can play their little games, take their money, and not tailspin into a depression… congrats?
If you have to repeat thought eliminating clichés to justify this, it seems like there's a level of self deception going on. The chickens will come home to roost eventually.
The issue with all of these is that if something is a problem, it’s probably because it’s maladaptive to the actual circumstances someone is in.
And for the same reason ‘no one can tell if you’re a dog’ online, no one can tell if what you’re feeling is actually useful/adaptive or not, especially if the common root to many of the actual disorders is various degrees of bias/delusion
I think things could be great, but there are many obstacles along the way to be aware of.
It is like making the argument that the most accurate view of life is doing nothing because we are all going to die anyway.
There exists another subset of people that merely tolerate the overly optimistic general populace and don’t need that as a coping mechanism to understand and mold the world
The more limited studies with different methodologies have found their judgement of other people's behaviour and performance is wrong. And that if you ask them after a delay (e.g. forcing them to use recall) instead of immediately, they are also wrong.
This is called the “depressive realism” hypothesis and there’s more evidence against it than for it.
The studies don’t show “more accurate model of the world” like the depressive realism pushers claim. They show isolated things like depressed patients performing slightly better in some arbitrary gamified task. There are studies that have the results going the other way, too.
It’s well understood that depressive episodes cause cognitive distortions that lead to overestimating the effort required for tasks, underestimating how easily things can be changed for the better, or ruminating on things that don’t matter.
For example, a depressed person might think: "this company is shit and will go under in 6 months because my coworkers and management are so incompetent and malicious"
Let's say their prediction was true. Good job!
What if the depressed person missed that there were a couple of people at the office who actually were not incompetent and malicious, maybe people they would enjoy to get to know. What if there were opportunities to learn interesting things while the company crashed and burned.
To determine what worldview is most realistic you have to weigh what aspects of reality are most significant.
I can’t back it up but recovering from depression by simply putting “rose colored glasses” is a recipe for bouncing back later. Happened to me.
In HN’s case: admitting that companies are quite toxic and more often than not working against you, that most people around you is probably an incompetent if put under a microscope and that the things you’re working on aren’t exactly changing the world for the better.
The trick perhaps is not letting those things make you cynical, and not acting on them. And forgetting yourself because you’re also a bit incompetent too, so you can let you and everyone else off the hook.
It would be so much easier to deal with if I wasn't surrounded by people, especially management, that act like we're on a mission from $DEITY. Seriously, I can get over on working on whatever inane unimportant thing. It's the entire circus acting like we're not that drives me nuts.
Maybe I'm wrong, but I can't imagine plumbers get talks along the lines of "We're top-notch leaders in our industry for fitting pipes! True innovators. Pushing the envelope. We are world-renowned for our culture and are continually pushing the limits of what's possible. Every day we inspire people to live their best lives and be their true selves. " Add on to that, plumbers are actually important! And they know it.
Related: did you do anything specific to help with your depression? I've been getting into TMS / ketamine / whatever else territory for mine.
It is the same with religion. Even though gods objectively do not exist, at least not in a literal sense, it can still help people to cope better with their life and be an overall positive force. Or extremely harmful when abused.
The world is pretty depressing. Everyone is telling themselves little lies one way or another just to be able to function. And no, Atheists are not more rational than religious people per se, they tend to have other delusions.
Personally I think striving to have a realistic model of the world is still the best long term strategy and that those little lies are like drugs that will help you in the short term but wreck havoc in the long term but who knows. It is complicated.
That's myopic. There's only so much "reframing" you can do before the tension begins to rear its head. Serenity now, insanity later.
> Personally I think striving to have a realistic model of the world is still the best long term strategy and that those little lies are like drugs that will help you in the short term but wreck havoc in the long term but who knows. It is complicated.
Though to be fair much of CBT can also be getting rid of false believes that hold you back.
Ultimately CBT has a lot of empirical research backing it up that shows that it is very effective for certain conditions. Though people should also be more aware that it works less well or can be harmful for certain people. It is not a silver bullet but nothing to sneer at.
Ultimately we all cope one way or another. If you believe that you have no delusions, you are more delusional than most of us.
This is the opposite of "do what you love".
I wish I understood where he learned this.
It's very profound (and true).
One is love what you do - which assumes regardless of what you’re doing, love it.
The other, do what you love - means choose things that make you love them.
They’re completely opposite in what choice they’re telling people to make.
Both of these sayings can of course be applied to evil as well as good, and be either positive or pathological in impact depending on the situation.
I've tried this with programming. After 15 years, I'm only mildly positive about programming. That has more to do with the culture though, not the activity. I wish there was a business analyst/entrepreneurial programmer hybrid role. Spot opportunities from data, then build out a solution. Or if a solution doesn't need to be built out but it's more of a human/political thing, then do that.
I'm currently a data analyst and get some room (informally) to do just that. It's a really fun role, and I'm programming way cooler things than I ever did as a software engineer.
[1] Mentioning this detail because I don't think I could've learned this any other way. Well, parents maybe, but they didn't have this attitude.
The bad ones identify solutions that work for huge orgs and try to apply them to everyone and don’t implement them. This is your typical architecture astronaut. Or, they get bogged down in perfection and are massively hands on when they should have stopped long ago. Also your typical micromanaging vp of engineering.
But one or two good ones can be utterly enormous force multipliers.
Companies that gave me the chance a bit, it seems that I always fulfilled those expectations.
If you love what you do, you didn't necessarily get there by doing what you love.
Reminds me of: a duck is a bird but a bird isn't necessarily a duck.
I agree it's not the opposite.
While it is possible to both do what you love and love what you do, often if you do what you love you are apt to find out that you don't actually love doing it. Hence the common refrain that cautions against turning your love into a job.
There's significant skill overlap, but little passion overlap.
Maybe it's useful to some who are in objectively good circumstances which they haven't learned to appreciate. I'd still advocate for getting other perspectives from trustworthy folks about ones specific situation.
And not taking advice from billionaires who think their fruity diet will cure their cancer.
The quote doesn’t suggest “the job/career you have now is perfect for you, ignore all red flags”.
Example: a rapist could be an EXCELLENT plumber as his occupation. One has nothing to do with the other. Pretending like they have no useful plumbing advice to give just makes one look silly.
Steve jobs was a shit human being. But i won’t sit here and pretend he wasn’t a visionary product person, or a person that thought deeply about work, our relation with technology, etc.
For what it’s worth I agree it’s reductive. Most 1-2 sentence life advice is…so not too surprising. :)
This isn't general advice or anything, but I'm glad I didn't quit a year earlier.
The bad emergencies tend to be scenarios where I'm told OMG we need to fix A, it's an emergency, only to be told a short time later that actually never mind problem B is the real emergency, and then jumping to problem C after that, and so on. That kind of scattered direction can be soul crushing, where I invest in a problem and get far along on a good solution, only to be told that oh actually that urgency was BS, but trust us this new emergency is totally important.
That freedom was absolutely key. The same job could have been frustrating and stupid if someone else had been ordered to do what I did.
>> Zero. You should give it 0 time. You already know, and you’ve known for a long time;
Oh boy, how developers are clinging to the illusion this is still 2021.
How long till they interiorize that they are now immigrants crowding at a day laborer site, hoping some farmer with a truck will pick 10-20 of them for a round of picking strawberries.
So when you're penniless with no perspectives and the countryman picks you out of a crowd of hundreds hungry and desperate, you arrive at the strawberry farm and realize instantly: nah, this is not for me!
I don't want to correct you on your stance, your pov may vary, but i haven't noticed any downsizing in orders and i don't want fearmongering happening here for youngsters.
If you design a clean product and maintain it you will be totally fine - some social skills and experience are ofc what you learn along the way.
There is no data backing up the ever repeating horror stories of mass-layoffs or people not getting hired because some magic AI now does all the job and if you learn the matter you can understand how to leverage these tools and why they will not make you "penniless and desperate" anytime soon.
For me as freelancer what actually was replaced was the farmer - i can have bookkeeping now, marketing and even legal assistance from AI, but i cannot have it do anything over a simple morphism or terminal object without it carrying technical debt 10x what you get when you just code down some manager-wanted functionality (and you may not want to work in places that operate on these hierarchies anyway)
https://www.marketplace.org/story/2025/05/19/can-ai-take-you...
You can keep your fear-first stance here no problem, but it's either misunderstanding of what AI can do or what software engineering is about.
Will it help me get my n+1 job? Will the technology I’m using look good on my resume? Will I just be a code monkey who pulls well defined stories off the board?
Does it pay me market rates?
Is the bullshit/pay ratio worth it?
Post 2020 the rules have changed for me.
Is it remote and is it a remote first culture?
Does it pay “enough” to take care of my short and long term goals?
And funny enough, I would rather get a daily anal probe with a cactus than ever work for any large company or BigTech (again).
These days, I don’t care if the company is a shit show. I do 40 hours a week and money appears in my account - that’s the deal. I don’t work for “passion”, “alignment” or the “mission”. I work for the paycheck.
I do like the company I work for now. It’s the best job I’ve had in 29 years across 10 jobs.
Would you be open about this in an interview? The majority work for the paycheck but preferred the job had less BS or shitshow.
It doesn’t take long to figure out.
Simple as that.
I once took a position at a company that I had known because they were a customer of my then current employer. We'd always gotten along, they were nice folks, had a good interview.
In a very short time, I wondered what the heck was going on. There was so much drama, infighting, and backbiting, and it was the complete opposite of the company's external persona. People were constantly being moved to different desks with no rhyme or reason- as in, a whole department rearranged 4x in the 8 months I was there. I had 3 or 4 different desks in that time.
People were regularly worried about their jobs and whether the company would even be around after family fights. And when they no longer needed me they started playing games with me, writing me up for things I hadn't done etc. Anything to avoid having to pay unemployment.
I knew in the first couple of weeks. But a bit of me died at that job. Eventually they fired me. In retrospect, I wish I hadn't given them the opportunity and fired them instead. But I had mouths to feed besides my own.
The two that did it both were great, the one that did not turned out to not be for me.
I'm with the last employer for the last 9 years, and not looking to quit :))
Colleagues, tasks, compensation - if at least two of the three are good, it's fine to stay. If not it's time to look for something new.
The first year is a learning year, the second is a productive year, and the third is a "what else can I get out of this place" year. If nothing changes in the third year, then there's not much more to learn from the company and it's maybe time to move on.
Currently working towards the end of a contract/earn-out at a company where people just toss stuff they don't want to deal with over the fence for others to handle with usually zero communication about why/what/how. Just suddenly get a new project with no context. Also, three different bosses in two years because they keep leaving.
Second worst company I've ever worked for.
The worst one involved multiple c-suite executives that would throw objects at employees when they didn't get the answer they wanted. Thankfully I wasn't under contract there and got out ASAP.
This was purely because of the legacy stack and poor management. The boss wanted to scale but did not care about tech, so we just never made real improvements. Sure, a feature got implement at least a week. We saw revenue grow a ton. We never saw time to improve our stack.
Safe to say I felt like I was adding nothing to that company. They just didn't want to grow despite saying the opposite. I get that the shiniest framework will not improve the project, but there were some serious bottlenecks that just got shoved under the rug
> The boss wanted to scale but did not care about tech... We saw revenue grow a ton.
Sounds like the boss was largely getting the scaling they wanted?
Every situation is different and there are people with way more experience than me here, but in general terms I've seen the "we need to rewrite / write a component library" from immature tech. Problem is, they're never satifised, so after they're happy and they've moved on, the next person will say the exact same thing.
That's not to say your code didn't have real problems.
But experience tells me that there's tons of well written projects with no users or revenue, and lots of broken shit making money hand over fist. All else being equal, unless you're in a bubble, you're better off with the money.
( Not intended to imply the job wasn't terrible and the product didn't have real actual scaling problems making your life terrible, I've seen that too ).
I got my next job through a headhunter. The first weeks I had a really good feeling of the company I liked it there after a few months it got worse and worse like they couldn't hide all the bad things anymore. I quit, next job was more or less the same. I quit. My current job? The first month I thought to my self "oh my god, where do I got here?", but now a six months in I really like it.
Maybe also other factors have some plays here like my move from consulting into an internal role, colleagues, the overall freedom, but imho it's hard to generalize something like that.
Over time, I begin to see how I feel about the work itself, how I get along with coworkers, and how the daily pace and expectations fit me.
Curious if others have their own rule of thumb for figuring this out.
I'm just not at the stage in my life where I'm willing to onboard to a transformation that starts with a half a day call authenticating so you can login to a remote VM to do your development.
Similarly I had a 2 week gig where they send me some shitheap of a windows laptop that takes 20 minutes to login, where they wanted future engagements.
Nope. Nada. No way.
You can see the value of your productivity straight out the gate. It's not valued and you will never be able to change it from your vantage point of IC or middle manager.
It doesn't really matter that they say otherwise, the evidence tells the story.
Shortest perm job was about 5 months. Tiny office, 4 other people on the phone all day, impossible project (writing software for unreliable hardware), not a difficult choice.
[0] actual crypto, not currency.
[1] not just because of the bait-and-switch but because crypto is miles out of my wheelhouse.
It takes a lot longer to tell if the job is right than if it's wrong. Six months is orders of magnitude longer than you need to give a bad job. Don't rage quit, but if it feels wrong it probably is, so start looking.
Had one job with a guy I had worked with for years elsewhere, and within my first couple weeks we sat down for a coffee and I said "so this isn't it a 5 year gig is it?" and he shook his head in agreement. Unfortunately COVID & life caused us to both overstay a bit.
You early don't owe anyone anything to stick with a bad gig.
I have opinions about it based on funding stages, but what it really comes down to is that culture is a function of growth. as an employee with a career success comes from hunting growth. the only real growth is from market fit, and even if you have market fit, if you aren't growing non-linearly you're going to get into a negative sum attrition game in the org culture (e.g. linear long term private equity returns).
questions to find answers for on the way in are:
- does anyone actually use their product and like it?
- how is that number growing? (non-linear, linear, attritive)
- what was their last funding round or change in equity ownership? (e.g. who runs it and what do you have to do to satisfy their investment)
- what's their staff turnover and where do they go?
Ironically, the skills (devops / cloudsec) I picked up in those three months have helped me double my salary.
I was still a student and I immediately had to fix a bug they had about hitting the memory limits with an awful SQL query. I fixed the query and they said "no we will just keep patching sqlite to increase the memory limits forever instead". So I quit because I didn't want to be the most senior person when I was still a student and I didn't want to be ignored.
It helps me because I have a habit of fixating on the team’s mission and ignoring my own happiness, so the monthly check-in keeps me from staying somewhere longer than I should.
- 6 years
- 3 years -> triggered by matrix
- 3 years -> until acquisition
- 5 months -> acquiring company, triggered by matrix
- 2 years, on-going
- Am I free from feeling frustrated/stressed at work once a week or more?
- Am I free from work stress/anxieties outside of work hours?
- Am I keeping up with my hobbies?
- Do I feel respected and valued, with the ability to influence my work environment?
- Do I feel proud of my work and confident discussing my job with others?
- Am I learning/growing?
- Am I excited about the company's direction and secure in its stability?
- Do I feel like my job is secure?
I score each item 1-5 (1 = rarely, 5 = always) and track the total. If that total stays below my cutoff for a few months in a row, that would trigger me to start looking. Sometimes I include notes beside any low/high scores for context.Friends have challenged this, asking if I can't just feel when it's time to move on, which I can, but I've found this leads to me being more thoughtful and proactive about it.
Recruiting gives me an idea of how much the company generally cares about their processes. I like when am I given a timeline of the process and steps and now when I get a random call from the recruiter in the middle of a meeting at my current job because the new co didn't ask when I'm free.
Onboarding tells me how much the team is haphazardly shipping vs actually owning their product. The teams that have sucked are the ones where the onboarding doc is heavily out of date (like all covering a now-unused access request system) or I can't even get help from the team within my first week to have someone send me access requests to copy for the things that are missing. The good teams are where my manager already provisioned my access before I joined and immediately addresses any misses when I flag them. Or if they have good enough docs for me to quickly handle it myself.
Career development is another one that takes a little longer to suss out, but if I can have a good first-week chat with my manager where they will explain what my baseline performance expectations are and what I need to do to overachieve and get on promotion/raise track, that's a good flag. The teams I haven't been able to get that early from are the ones where manager usually doesn't care not only about your career but also about app maintainability or anything past their next meeting with their own manager.
This is the same advice I now dispense to anyone I'm mentoring in software. I didn't for a long time because I had to learn this lesson the hard way a few times.
JohnFen•3d ago
mxuribe•1d ago