It’s kind of a miracle engineers are treated as well as we are compared to most traditional office jobs. IMO there’s probably a good reason for it, namely some institutional memory of when engineers would just defect en-masse and literally destroy your company if you pissed then off enough. But it also makes me a little sad that other white collar jobs don’t have the same benefits.
There are probably a ton of jobs where people work just as hard as engineers but are treated as little interchangeable boxes by the money people.
> It’s kind of a miracle engineers are treated as well as we are compared to most traditional office jobs.
Other office jobs are treated better. They don’t get pinged at random times outside of business hours. They don’t have to attend late night meetings because of foreign time zone
I know a bunch of AWS people and have heard worse things from them
Frankly, I love programming but would rather have a regular office job. This industry is predatory
I think you're glossing over how much people in other office jobs get gaslighted (gaslit?) into showing up at odd times too. To finish a report. To coordinate with an offshore accounting team in a foreign time zone (not unique to Engineering). To be always reading their email. Not for nothing are some states and countries writing rules against being "always on" into their laws, recently. So, sure, a small contingent of Engineering folks might be on-call, but you should be able to make good working agreements about that, put boundaries around it, and keep your sanity. If not, you're maybe being gaslighted like any other old regular office worker.
I replied to your other similar post too, but why not look into working for smaller companies or contract/freelance work? Not all tech jobs are big tech type work. You’ll make less money perhaps but it sounds like you might be happier based on what’s important to you.
Not a miracle. Things fuck up extremely quickly when you the systems are
not maintained and it takes competence. A lot of businesses value (most perhaps?) goes to zero in a flash sans - IT. There is a developer behind all of that.
That combination of needing talent which is in short supply and being essential.
Even comparing traditional sysadmin work — where operations are even more crucial — to software engineering, it’s easy to see that engineers tend to get paid more, get treated better and have more freedom.
Obviously there are reasons for this, but it seems to boil down to broad generalizations in how the C-Suite sees your role, and very little in the particularities of the org or employee.
You're treated well because you have the potential to deliver multiples of what you're making in revenue.
Other office jobs rarely can do so.
That means that sensible places will happily pay you a lot and make money on you, and that will prop the entire market up, which means even crap places will have to pay more just to get some developers.
Name another white collar job that’s simultaneously as complex and as creative as being a programmer.
Architects build houses.
Software engineers build whole cities, and they exist only in their minds! (i.e they can’t even see them, they’re just abstract concepts of enormous complexity)
I'm very thankful to my high school self for choosing computer science. I feel lucky I happened to be interested in computers. If I was born 5 years earlier, I may have made a different choice.
They're paid in proportion to how much unique value they gatekeep.
Hence why Silicon Valley's masters were so keen on everybody learning to code in primary school and getting more women into the profession. They dream of making us more of a commodity, so that as the chief gatekeepers of the tech economic engine, they get to keep a larger slice of the pie we create.
That's good, in fact. People should be compensated for the value they generate. Why should a fast food worker be compensated equivalently to a doctor or engineer? I do not want to live in a world where that could exist.
You can always rely on Gergely to cut to the heart of the matter with his articles. What he's written largely chimes with the (many) diverse engineering environments I've collected a paycheck from. Some, usually the worst ones, have that "just stick to shipping PRs code monkey" mentality based off zero wiggle room in terms of defining the problem scope. At these kinds of companies and teams, the seeping lethargy and disillusion has otherwise talented folks building out code they know has limited impact on the business.
The best places, in fact my current role in an SV-adjacent tech company, encourages a kind of consulting approach to help define and solve business problems, not just JIRA tickets. This results in much better engagement with engineering overall, and getting better things built quickly.
This is the reason why I am trying to move away from being a software engineer.
I don't like to complain but it is honestly degrading how SE are treated in some places. I've been on teams with 4 project managers/analysts and 3 developers. They will expect you to do all the real hard work while they sit in meetings all day making UI mockups and architecture diagrams. There is just no way in winning this.
> They will expect you to do all the real hard work while they sit in meetings all day making UI mockups and architecture diagrams
You could also look at this the other way.
They are the ones doing the real hard work i.e. making tough decisions, dealing with stakeholders, incomplete and poorly conceived requirements whilst you just get to build what's written down on a page.
Everyone plays their role in companies and assume they are the indispensable ones.
I think the point of the article was that to be valuable as an engineer you have to do things like "making tough decisions, dealing with stakeholders, incomplete and poorly conceived requirements". My problem is that a lot of people have your attitude and pretend that they are doing me a favour by having this being written down all the while limiting the actual design space for a problem, and in the same breath patronise me on what teamwork is really like.
Mostly they just pass those things on to the developers to deal with. Then we have to figure out how to bypass them and communicate with the stakeholders ourselves to figure out what the real requirements are and what we can build which solves their problem and yet is still broadly recognisable as the specified deliverable.
Yes PM roles seem to be exploding at certain companies and it's a bad thing for developers. There's not enough engineers to meet demand so just hire more PMs seems to be the strategy.
Of the three places I’ve been a full time employed dev I only enjoyed working at the first.
This was a UK retailer, the other two were “tech” companies.
The retailer operated in the way the article describes, direct contact with the business, ability to unearth a problem and run with it, understanding that dev work isn’t just fingers on keyboard and sharing of full business context.
The other two had strict comms lines, not allowed to stray from the Jira board, rarely any contact with the business or users and no sharing of business context because “we don’t want to distract you” - completely missing the point that without the contact you rarely understand what the point of the work is.
I've been in the first type of work my whole academic career. I'm definitely more of an informatician/sysadmin than a scientist, and despite being entrenched in the science for almost a decade I can tell you that I never developed a 'feel' for it - it was too specialised, and I lacked the ground knowledge to bridge the gap. A smarter man would have found the time, but in my defense even in a single field has too many subfields to delve into, and you simply cannot master them all.
The best projects, and when I'm most efficient at work, is when someone explains the input and describes the desired output in as most abstract way possible.
I think, though I'm not sure, that some people prefer the latter environment.
Having worked with teams which have preferred to work in as pure a technology environment as could be constructed while still providing value, I think this might be the "product focussed" (or not) distinction that people make about themselves on their CVs.
Like everything from pragmatic engineer so far, that is an insightful article. As someone with a more traditional, read half mechanical, engineering background who is working for quite sometime now at the interface between mechanical, electrical (hardware basically) engineering, commercial and software (because no modern piece of machinery works without that), I'd like to add some things.
At the core of the difference between "traditional" and SV type companies is a fundamental difference on how they view software developers (and I am firmly in the non-SV camp myself): are they engineers or not? In SV, yes. For almost everyone else definitely not. And there lies the problem traditional, engineering heavy companies have integrating software.
that does cut both ways so, most of the SV-software engineering practices are simply as incompatible with hardware engineering as hardware engineering practices are with software development. And for most non-SV-pure-software companies, any piece of software is just another part number in the final product configuration, in that environment, software developers are nothing special. And it takes a special kind of software developer and company culture to properly manage that.
That being said, I agree with the articles conclusion. And I'd add that hardware engineering could benefit a lot from treating their engineers the way SV does their software devs. I do have a question so, where does all that significant horsepower of SV companies go nowadays? From the outside, it seems to go into ad tech, social media (with the aim to sell more ads), crypto (nothing to show for besides bitcoin and ethernum as new stuff to speculate with when gold isn't fun enough anymore) and "AI" (the latest hype which still has to show some real world benefits).
The true innovation to come needs a combination of software and hardware, each bit for itself got as far they could. There isn't much world left software can eat without some allies, at least until the next cycle repeats.
At (traditional) this is causing me to develop feature and then throw it again and then implement it again slightly differently because someone said something in the chain without thinking and sometimes to fight with management teams for doing something insane. And in one case why throwed out 3,5 months of development work, because some exec was mistaken.
But at (SV startup company) this caused at least for my team complete chaos, what should we do, who should be doing the integration, talking to customers, why are we doing this.
Usually at SV startup company I was like 2-4 times more productive, but often output of my work wasn't really significant, as in traditional company so small dumb feature was raking in money and really improved large customer base.
This article was somewhat revelatory to me in that I can now see that the source of my frustration with the direction my career has gone in recent years is that I spent much of it cutting my teeth at a SV-style company during the 2010s before it was bought out by traditionalists, and that subsequent companies ended up being more solidly traditional, even if they initially appeared SV-like on the surface. I think I had naively assumed that SV-style was the norm, and the experience of discovering this to not be the case has been a little alienating.
There is only one central difference of "Silicon Valley" type companies with "the Rest of the World". It is the recognition (or not) that we are in an accelerated information processing age where the wiring of information flows in society is upgraded dramatically. While this realization is not new (from Negroponte's Being Digital [1] to the perennial VC cry "software will eat the world") the disruption story is for at least two decades broadcast to deafening volumes. But it is by no means universally adopted.
For most organizations "IT" is just a utility. While information flow and processing is vital for most businesses, the control of these particular "means of production" is not deemed central to the business model. Like the provision of electricity, water etc, it is a stylized something that happens in the basement or outsourced. The C-Suite is clueless of digital tech and will at best include some tech consultant types rotating in and out.
In fact the very strange period of tech we are going through is a testament to how the alien forces of this new landscape have turned everything upside down. Google, Amazon, Meta are not "tech" companies. They are advertisers, retailers, publishers that have made information flow and processing central to their business model (and for now at least, have cornered the market).
What is mildly interesting though is that there are many major sectors where information processing is 100% what they do (finance and insurance the easiest example). A universe where the information market is cornered by, e.g. banks is actually less absurd than one cornered by advertisers.
With the above framing, the role of developers in decision making etc. is in reality just an epiphenomenon and circumstantial. Form follows function and it is the functional difference (what the company does) that is the driving force in organizational matters, remuneration etc. This also gives you some hints as to when things might change: When senior industry personalities are equally comfortable both in digital technology and the details of the particular sector they are in.
I don’t think your analogy would not be true for Tesla.
My underlying theory is that software is how we map what is happening in the real world and represent a model of it in computer(s).
Great Software engineers have this amazing ability to represent this and write computations that can reason on top of it for effective decisions.
Whether it’s dashboards, social network, extracting patterns from data, advanced electric cars with autonomy, mobile phones etc.
If you can use the power of computers to do more of what is happening in the human brains to create economic value, then that is a highly leveraged engineer.
There are probably a ton of jobs where people work just as hard as engineers but are treated as little interchangeable boxes by the money people.
Other office jobs are treated better. They don’t get pinged at random times outside of business hours. They don’t have to attend late night meetings because of foreign time zone
I know a bunch of AWS people and have heard worse things from them
Frankly, I love programming but would rather have a regular office job. This industry is predatory
Just like I know lots of developers that don't.
What a weird generalisation to make.
That combination of needing talent which is in short supply and being essential.
Obviously there are reasons for this, but it seems to boil down to broad generalizations in how the C-Suite sees your role, and very little in the particularities of the org or employee.
You're treated well because you have the potential to deliver multiples of what you're making in revenue.
Other office jobs rarely can do so.
That means that sensible places will happily pay you a lot and make money on you, and that will prop the entire market up, which means even crap places will have to pay more just to get some developers.
Architects build houses.
Software engineers build whole cities, and they exist only in their minds! (i.e they can’t even see them, they’re just abstract concepts of enormous complexity)
Got some good examples?
They're paid in proportion to how much unique value they gatekeep.
Hence why Silicon Valley's masters were so keen on everybody learning to code in primary school and getting more women into the profession. They dream of making us more of a commodity, so that as the chief gatekeepers of the tech economic engine, they get to keep a larger slice of the pie we create.
The best places, in fact my current role in an SV-adjacent tech company, encourages a kind of consulting approach to help define and solve business problems, not just JIRA tickets. This results in much better engagement with engineering overall, and getting better things built quickly.
Would love to find a company like this again, past two roles were JIRA micromanagement shops and actively discouraged talking about anything.
You could also look at this the other way.
They are the ones doing the real hard work i.e. making tough decisions, dealing with stakeholders, incomplete and poorly conceived requirements whilst you just get to build what's written down on a page.
Everyone plays their role in companies and assume they are the indispensable ones.
Mostly they just pass those things on to the developers to deal with. Then we have to figure out how to bypass them and communicate with the stakeholders ourselves to figure out what the real requirements are and what we can build which solves their problem and yet is still broadly recognisable as the specified deliverable.
After that, coding it is easy.
This was a UK retailer, the other two were “tech” companies.
The retailer operated in the way the article describes, direct contact with the business, ability to unearth a problem and run with it, understanding that dev work isn’t just fingers on keyboard and sharing of full business context.
The other two had strict comms lines, not allowed to stray from the Jira board, rarely any contact with the business or users and no sharing of business context because “we don’t want to distract you” - completely missing the point that without the contact you rarely understand what the point of the work is.
The best projects, and when I'm most efficient at work, is when someone explains the input and describes the desired output in as most abstract way possible.
Having worked with teams which have preferred to work in as pure a technology environment as could be constructed while still providing value, I think this might be the "product focussed" (or not) distinction that people make about themselves on their CVs.
Those who don’t like that work environment (so would prefer the latter two of my three dev jobs) would be tech focussed in my book.
It’s all semantics though
At the core of the difference between "traditional" and SV type companies is a fundamental difference on how they view software developers (and I am firmly in the non-SV camp myself): are they engineers or not? In SV, yes. For almost everyone else definitely not. And there lies the problem traditional, engineering heavy companies have integrating software.
that does cut both ways so, most of the SV-software engineering practices are simply as incompatible with hardware engineering as hardware engineering practices are with software development. And for most non-SV-pure-software companies, any piece of software is just another part number in the final product configuration, in that environment, software developers are nothing special. And it takes a special kind of software developer and company culture to properly manage that.
That being said, I agree with the articles conclusion. And I'd add that hardware engineering could benefit a lot from treating their engineers the way SV does their software devs. I do have a question so, where does all that significant horsepower of SV companies go nowadays? From the outside, it seems to go into ad tech, social media (with the aim to sell more ads), crypto (nothing to show for besides bitcoin and ethernum as new stuff to speculate with when gold isn't fun enough anymore) and "AI" (the latest hype which still has to show some real world benefits).
The true innovation to come needs a combination of software and hardware, each bit for itself got as far they could. There isn't much world left software can eat without some allies, at least until the next cycle repeats.
But at (SV startup company) this caused at least for my team complete chaos, what should we do, who should be doing the integration, talking to customers, why are we doing this.
Usually at SV startup company I was like 2-4 times more productive, but often output of my work wasn't really significant, as in traditional company so small dumb feature was raking in money and really improved large customer base.
For most organizations "IT" is just a utility. While information flow and processing is vital for most businesses, the control of these particular "means of production" is not deemed central to the business model. Like the provision of electricity, water etc, it is a stylized something that happens in the basement or outsourced. The C-Suite is clueless of digital tech and will at best include some tech consultant types rotating in and out.
In fact the very strange period of tech we are going through is a testament to how the alien forces of this new landscape have turned everything upside down. Google, Amazon, Meta are not "tech" companies. They are advertisers, retailers, publishers that have made information flow and processing central to their business model (and for now at least, have cornered the market).
What is mildly interesting though is that there are many major sectors where information processing is 100% what they do (finance and insurance the easiest example). A universe where the information market is cornered by, e.g. banks is actually less absurd than one cornered by advertisers.
With the above framing, the role of developers in decision making etc. is in reality just an epiphenomenon and circumstantial. Form follows function and it is the functional difference (what the company does) that is the driving force in organizational matters, remuneration etc. This also gives you some hints as to when things might change: When senior industry personalities are equally comfortable both in digital technology and the details of the particular sector they are in.
[1] https://en.wikipedia.org/wiki/Being_Digital
My underlying theory is that software is how we map what is happening in the real world and represent a model of it in computer(s).
Great Software engineers have this amazing ability to represent this and write computations that can reason on top of it for effective decisions.
Whether it’s dashboards, social network, extracting patterns from data, advanced electric cars with autonomy, mobile phones etc.
If you can use the power of computers to do more of what is happening in the human brains to create economic value, then that is a highly leveraged engineer.