> In fact, a reliable engineer ought to be comfortable working on products people hate, because engineers work for the company, not for users.
I prefer to take pride in my work. This sounds like hiding ones neck to collect a paycheck.
I prefer to have hard discussions about pivoting or making changes so that we can improve the product, or company, for our users. Anything less is simply "not doing the job", or at least making a serious consession, in my opinion.
Along our career we often make compromises. I don't on something hostile to users but I surely stopped having pride on my work, partly to keep collecting a paycheck. Management, team dynamics.. are all influencing the path your product will take. Politics, economics are all factors in this too, few years ago people could jump ship easily, now a lot less so.
I'm coping through HN Hiring threads to find additional gigs that align with the need to contribute for others with less constraints.
This applies to more than just product engineering. Part of one of my former jobs (retired now) involved writing marketing copy and news releases. I never quite got over how one of my bosses, who would also write some of this material, often told visitors or other company execs that, where our textual output was concerned, “We have no pride of authorship here.” Speak for yourself, I always wanted to tell him, but never did because I needed the paycheck.
Interestingly, he lasted there only a year while I made it to nearly 17 years. Go figure.
thanks a lot for the story. I used to spend a lot of time trying to figure out how to create work groups that didn't force people into hiding their true needs, pride, creativity and efforts... but I really didn't have a minute left to pursue that goal. I know that some groups have healthier culture where people can live and work in a happy mental place .. but it seems they are a rare kind of exception.
Saying that "engineers work for the company" is a very reductionist take, taking away personal conscience, judgement and moral compass, leaving only "get in, do work, collect reward, go home" cycle. This what robots do. This is what algorithms do. Humans shall and are much more than that.
When I was the tech lead of a Linux distribution, I fought my teeth to make that thing work for the target audience who will be using it, and developers who wanna work and develop on this thing. It was not volunteer work either. It was my paying, day job.
This is why software devs are not professionals. A professional engineer will not sign off a bridge that he knows is liable to collapse. Software devs will build whatever dangerous immoral garbage their boss tells them to, and then rationalize it to themselves.
A professional has an obligation to a code of professional ethics that supercedes loyalty to their employer. Nothing of the sort exists in software.
You're mixing up the words engineer and professional.
A professional can still be a mere subordinate who just follows orders.
I don't know why it's so poulpular to conflate the word engineer and developer to the point where simonw decided to drop the most important word "software" and started calling AI assisted software development "agentic engineering" which is the most absurd oxymoron you can come up with.
The person prompting for code is delegating the majority of decision making to the AI. This is the antithesis of engineering. Hence the operator cannot be the "engineer", at best the AI can be the "engineer", if it is smart enough.
The word engineering implies a task with trade offs, guarantees and expectations about the finished product. The vast majority of software isn't important enough to even know what the specifications are or what features it should have ahead of time. You throw something at the wall and see what sticks. "Agentic engineering" just accelerates the process of throwing things onto the market.
Then there is the fact that "engineering" has become a euphemism for software and nothing else. Anything physical is excluded from the start.
Finally "agentic engineering" implies that you're engineering the agent, but you're not doing that either. You're just a user who set up a sandbox and is letting the AI loose.
Engineers are only one type of professional: doctors, lawyers and accountants are also professionals who have obligations to their profession before their obligation to their employer.
The title 'software developer' is correct. We are not engineers and we are not professionals. Pretending otherwise is a grasp for unearned status.
I believe software developers don't have any kind of paperwork to be considered professionals. Professionalism is a kind of attitude to begin with and can be tied to your conscience and moral compass.
Any paperwork certifying this is just a label and external anchor. In essence, it starts from within.
A licensed engineer who signs off on a bridge that collapses will not remain an engineer, and may be open to criminal prosecution. Their employer knows that, and therefore doesn’t ask them to make that choice. In the rare cases where they do, the engineer doesn’t end up blacklisted across the industry for saying no.
Some skilled jobs are called professions, and this special label indicates that they are more than merely jobs. The professions involve a special set of services to society, and people who join these professions are expected to uphold high ethical standards in their professional conduct.
Although many professionals have their own private businesses, and many others are employed by businesses, these occupations are misunderstood if we equate them with businesses. In fact, the growing tendency to treat professional work as nothing more than a paid jobs is the source of many ethical challenges.
- The primary goal of a business is to make a profit for the owners, and it does this by providing some product or service to customers.
- The basic purpose of a profession is to provide a service to the community. Here, the primary goal is societal well-being, not profit.
This distinction reflects a higher level of responsibility, expertise, and commitment to maintaining standards that sets professions apart from other occupations.
But... what if the users are mere vessels and true users are actually the people paying for it. I am saying it half-jokingly having watched big short. I dunno man. I know by now I have a line, but I know that line differs from person to person.
To your point, some of this stuff is loosely defined its no small wonder management is able to play word games.
I don’t know. I agree with the point that indifference is worse than hate but I would not take a lot of this article’s advice.
I’ve spent my career finding and working on things people love. I’d join a less stable company to know I’m actually putting products out that are worth spending time on.
This article comes across as coping to me, “it’s okay to ship junk, just comfort your tears by rolling in your pile of money.”
There is a kernel of truth here: programs like CMake, Wordpress, or Electron get insane volumes of hate because they tackle extremely hard, extremely valuable problems half-assedly in a field of competition where no one else manages even a quarter of an ass. The hate stems from usage * not being that good, the usage stems from being the best.
I do worry that applying this heuristic at microsoft is unwise, because microsoft is so famously good at getting people to use software against their will- if usage decouples from being the best, then the hate becomes shoved-down-throat-factor * not being that good, which is a very different place to stand and declare onesself to be helping.
I don't know about the others, but I "hate" Electron more because I don't think the the devs of the software I use should have chosen it. It doesn't have anything to do with the Electron team (I think).
For instance: MS Teams. Microsoft has the skill and resources to develop cross-platform desktop software. They should have done that for something as widely used as Teams.
The nature of feedback is that the most vocal express their dislike of a product more loudly and are noticed. The people who like the product won't often take time to express it. So it would certainly help you to take the criticism with some salt.
Sean, I wonder why people are so negative here. I think they’ve never worked in big tech.
As a staff swe in big tech your blog posts resonate strongly and reflect my own experience. But I can see if I didn’t have that experience I’d be unable to relate or even understand.
Maybe it is nihilism - but I think that’s also a natural result of working for big corps.
"Their experience is different from mine; therefore, they haven't worked in big tech" is a bit reductionist.
While it's true that in large companies you typically have much less agency than you think and sometimes have to work on things that don’t resonate with you, large companies also have many different teams you can switch to.
So saying this should be the norm is what people have a problem with. Plus, moving to a different workplace is always an option.
If you decide to collect the paycheck and do the work, that’s okay too. But touting it as the norm and saying everyone should do it is gaslighting.
Yeah it was a bit reductionist. I guess it was my reaction to the negativity.
I think his experience is
quite common in big tech, and even swapping teams doesn’t seem to help in my own experience. It’s the rare teams that have any agency, or even clear ownership over the code. It seems by design but as a craftsman it is very frustrating.
I haven’t read anyone put it in words quite as well as Sean’s posts. This really is the nihilistic side of big tech that is rarely written about.
So I think it’s a unique insight - hence why I’m kind of baffled at the reaction. I think if you can relate to what he’s saying (it hits really close to home for me), it’s easy to sympathise with.
Everyone's circumstances are different right? It's not always so simple.
Big tech was a bit of an experiment for me in my 40s, I always worked at small/med size companies before. I think it was worth it (for the learnings and comp). I get a lot more choices in the future when I'm financially secure.
I work on a platform that a lot of customers "hate", or at least get frustrating experiences from. With many vocal on reddit, or in the reviews.
As software engineers, we are nowadays actually expected to handle customer service escalations (ie: when customer service cannot resolve a given situation, and the client is persistent enough, or borderline threatens legal action).
Strangely, I found dealing with those these customer escalations some of the most rewarding work. It feels very real as I read the long winded customer support ticket, feeling the user frustration, and finding the root cause and resolving the issue, or at least being able to understand and explain. Afterwards, internally trying and pushing for changes that would prevent the frustrations and escalations is also very rewarding.
I found this more rewarding than some other initiatives we have internally as they sometimes feel less connected to actual problems that are happening and that nearly everyone ignores.
That didn't use to be the case. In the US many laws were approved in the 1930s that forced businesses to keep stakeholders in mind, not just shareholders. That led the US to become the global powerhouse it became, and its middle class to boom. Then in the late 1970s came deregulation, and those laws were all reversed, resulting in the new two-class system Americans are learning to hate, a new robber barons era very reminiscent of the previous one.
Too bad most everyone is lost in the artificially engineered "culture war" to notice they have a common enemy, one who benefits from the proles fighting each other rather than uniting against them.
The lesson is that the general definition of success is warped. Say instead, for example, “the most profitable businesses are the most harmful to society”. One word change. Decouple “success” from being rich.
And yet... if survival isn't part of success, how meaningful is it?
It can be a bigger picture survival: successfully fighting Nazi Germany still got a lot of key people on successful missions killed.
But if you freely redefine "success" to be independent of the most basic parameters of longevity and ability, is it even meaningful? Without money, most ventures immediately fail. With more money, they have more options to react.
We may not like it, but money is a very handy, correlated metric with most useful definitions of "success".
Honestly I don't see a big difference between that sentiment and "I was just following orders".
That kind of mindset eventually leads to situations like yesterday's headline about the Artemis astronauts finding out that their computer inexplicably runs two instances of Outlook which both do not work [0].
Situations like Windows updates causing data loss by updating and rebooting without the user's consent.
Or situations like one year ago when I had to help an elderly person after MS suddenly replaced the easy to use Mail app with an enshittified one that wasn't just much more complicated, but also had an untranslated English interface because MS couldn't be bothered to translate it before forcing it onto users worldwide.
The problem with the article starts with wording. If I hate a piece of software then almost by definition it has failed to do its job well as I believe software's job is to help me do something. But I usually don't hate and with age I even accept and appreciate that there are trade-offs to be made.
The problem is.. that software today seems that the trade-offs made are akin to "will use accept invasive pattern A or invasive pattern B". That is not a technical real trade-off. It is not structure c vs structure d. Rather, it is an intentional making world a worse place to live in.
And I still don't hate it.. I hate the people who make it.
I spent a couple of years of my career working on a multiplayer / social game. We definitely got some angry feedback on that, but overwhelmingly the users loved it. Our game hovered around a 92% approval rating. I even got fan art! I think I’ll always look on that period as an absolute highlight of my career. I shifted industries to renewable energy driven by a personal mission to work on a greater cause. It’s B2B so I’m back in the familiar place of having users who I imagine would rather be doing something else than using our product. If my work means they get to spend less time at their computers then I’m happy.
Don't attach your pride to how well a product you work on is received. You can still take pride in improving a poorly received product, or even in just trying.
Most software is just there to get the job done. I’m building compliance tools that most users would very much like to never use as they’re just adding overheard over what they consider real work. You can still strive to make the software in a way that makes the unpleasant task of having to use it as painless as possible.
It is extremely possible to work on a product people don’t hate, and still maintain a realistic perspective on your engineering abilities or impact or whatever.
If you’re toiling on a product that’s actively making the world worse, quit now. There are better gigs out there.
In a perfect society, companies would find that the more negative externality they create, the more difficult a time they'll have finding people willing to do it for them. One case in point is when a civil-oriented software company starts taking on military contracts and putting their people to work towards death and destruction. In a perfect society, the reaction we would get is the employees going "wait a second; I liked this company when I joined, but I never signed up for this." … and even in our less-than-perfect society, we do get some of this; what we need is more of this, not less.
The user/company misalignment described here feels like a symptom of scale more than an inherent truth about software work. In small or niche software—a team of two serving a few hundred operators, say—you simply can't afford to build something your users hate, because there's no insulating layer of sales cycles, contracts, or switching costs. The feedback loop is too direct. The article seems like genuinely useful guidance for navigating a large org, but it's describing a very specific structural condition rather than software engineering in general.
There are different kinds of hated products. Some are hated because they have bugs. Some are hated because nobody wants to use them at all. And some products are entirely a net negative for the world.
IDK why these vacuous corpo tropes appear on the front page of HN every now and then. Sounds like exactly what a quasi-technical, management-leaning staff engineer would say.
Sure, in the end we work for these faceless, meat-grinding machines. But more or less, we all have some semblance of autonomy, and I absolutely can choose not to work on a product that people hate. I can switch teams before switching companies.
To some extent, I also just do what leadership asks, keep my mouth shut, and collect paychecks. But whenever that happens, I don’t gaslight myself by writing a post on why it's supposed to be this way.
To me, this seems like someone who is married to their paycheck and would do whatever necessary to protect that.
> The worst products are not hated, they are simply ignored
False. Ignored product are not used by anyone thus they don't demand any love or hate at all.
The worst products are those into which users are forced against their will. Things like KYC providers are the stuff that everybody has to use and everybody hates.
> working on an ignored product is much worse
False. Working on an ignored product can be extremely cozy because nothing happens except the paycheck.
All of this guy’s takes are so funny to me. He’s clearly been forged in the fire of utterly cursed and corrupt companies like Amazon, and it bleeds into his entire world view. He can’t even conceive of the idea of actually wanting to create a good product, it’s all seen through the lens of promotions and self-furtherment.
I had an epiphany about the software industry when I stayed at my parent's place and used a microwave that had the worse UX of any machine I had ever seen. Basically there was no start button, there was no way to increment the timer after you started, there was no '10 second or 1 minute preset' like every other brand and the only way I could figure out to make it 'work' would turn on a super loud fan which would keep running even after the Microwave had been stopped; I had to pull the plug on the thing to make it stop.
It was a popular brand and I suspect it probably sold well. The mind-boggling dysfunction may not have been obvious at a glance when the consumer made the purchasing decision. The UX was so bad, I still have nightmares about it.
As I was trying to use the damn thing as a user and kept running into one hurdle after another, it triggered a flashback of my experience of debugging complex software as a software engineer and I thought to myself "F***, I chose the wrong career. I'm cooked. The user doesn't care. The user doesn't care AT ALL." In that moment, I understood that getting replaced by AI was the least of my problems. Far bigger problems had been there since the beginning. I just didn't notice them.
I just thought about the software engineer who had to implement this retarded UX... I imagine they would put on their resume "Wrote the firmware for <popular electronics company>" and it would sound really good. The worst part is that it's probably not even their fault that their work sucks.
Anyway it just made me realize how unmeritocratic this industry is. We could do a great job or a horrible job and most of the time it has nothing to do with career progression and opportunities.
“Almost every engineer will work on a product people hate.”
No. Forcing people to use a product they hate is privilege. It’s about power. Monopolists like Microsoft and Google can do it, companies that face market competition can’t.
I worked a lot of food service jobs when I was younger, and as much as those jobs can suck, one big thing that is nice is delighting customers.
Assuming of course that you aren’t working at Slop Burgers, but even then… almost everyone is happy to get an ice cream cone, or a hamburger with fries, or just food in general.
It’s a shame that white collar professions typically have such a distance between make thing and give it to customer, who’s excited to receive it.
I work on a product that is so loved and hated at the same time. With some people it’s almost set off its own subculture, and they will roll with nostalgia if they ever used it.
On the other hand some other people will claim it’s the hallmark of enshittification, overchurned with features and a sinking mess.
I agree with both. It’s a strange situation and very difficult to move the needle towards more love at this point
I prefer to take pride in my work. This sounds like hiding ones neck to collect a paycheck.
I prefer to have hard discussions about pivoting or making changes so that we can improve the product, or company, for our users. Anything less is simply "not doing the job", or at least making a serious consession, in my opinion.
reply