There are countless kidding-on-the-square jokes about projects where the innovators left at launch and passed it off to the maintenance team, or where a rebrand was in pursuit of someone's promo project. See also, killedbygoogle.com.
There are countless kidding-on-the-square jokes about projects where the innovators left at launch and passed it off to the maintenance team, or where a rebrand was in pursuit of someone's promo project. See also, killedbygoogle.com.
I think the hiring and reward practices of the organizations & the industry as a whole also encourages this sort of behavior.
When you reward people who are switching too often or only when moving internally/externally, switching becomes the primary goal and not the product. If you know beforehand that you are not going to stay long to see it through, you tend to take more shortcuts and risks that becomes the responsibility of maintainers later.
We have a couple of job hoppers in our org where the number of jobs they held is almost equal to their years of experience and their role is similar to those with twice the experience! One can easily guess what their best skill is.
What do you think these technical ladder climbers become..? Technical leadership. The truth is, there’s no one technical in big tech leadership. They pay lip service to “tech” to keep up appearances and to satisfy the pleebs that work under them. The only things leadership cares about is the stock price and profitability, literally nothing else matters. If anything the tech itself is a nuisance that pulls their attention from where they’d rather have it, which is anywhere else.
I work as if that ideal is true, and can’t stand playing the game. But others are still playing the game and eventually they win whatever B.S. position it is that they aspire to, and I get removed from the board.
If a particular kind of "career managers" hate this system (and perhaps thus quit): great.
Why does promotion need a new feature? Reward for maintenance over time. Build on existing features / components. Reward for helping and up-skilling others.
Reward people based on (# who listed them * average salary of those who listed them).
i.e. if you hire 1000 new people, even if only a small fraction will vouch for you, on average you -and everyone else- will benefit by seeing the # of people who listed you in the "top 5 who helped you being productive" increase
The old Google performance review was arguably similar (the managers could still punish their reports, but peer feedback was valued a lot more), but I think that Google swelled in size because of other effects (probably because managers might've been indirectly rewarded by having more reports, despite managers rarely being among the people who others would list as "making you more productive")
Yes. People are incentivized to do very stupid things to grab this years bonus or promotion.
See Google intentionally degrading search results for example. The resentment and loathing for Google is at all time high.
It seems to be more on a spectrum of 'Haha, only joking' where the joke teller makes a statement that is ambiguously humorous to measure the values of the recipients, or if they are not sure of the values of the recipients.
I think the distinction might be on whether the joke teller is revealing (perhaps unintentionally) a personal opinion or whether they are making an observation on the world in general, which might even imply that they hold a counter-opinion.
Where do you see 'kidding on the square' falling?
(apologies for thread derailment)
Hmm. Can't say I agree here - at least not with the literal text of what you've written (although maybe we agree in spirit). I agree that _simplistic_ strong opinions about languages are a sign of poor thoughtfulness ("<thing> is good and <other thing> is bad") - but I'd very much expect a Staff+ engineer to have enough experience to have strong opinions about the _relative_ strengths of various languages, where they're appropriate to use and where a different language would be better. Bonus points if they can tell me the worst aspects about their favourite one.
Maybe we're using "opinion" differently, and you'd call what I described there "facts" rather than opinions. In which case - yeah, fair!
See, we can all generalize. Not productive.
Only thing I ever saw from Golang devs was pragmatism. I myself go either for Elixir or Rust and to me Golang sits in a weird middle but I've also written 20+ small tools for myself in Golang and have seen how much quicker and more productive I was when I was not obsessed with complete correctness (throwaway script-like programs, small-to-mid[ish]-sized projects, internal tools etc.)
You would do well to stop stereotyping people based on their choice of language.
That's pretty much another way of saying that stuff becomes a whole lot quicker and easier when you end up getting things wrong. Which may even be true, as far as it goes. It's just not very helpful.
FWIW I very much share your exact thoughts on Rust skewing metrics because it makes things too easy and because stuff almost immediately moves to maintenance mode. But that being said, we still have some tasks where we need something yesterday and we can't argue with the shot-callers about it. (And again, some personal projects where the value is low and you derive more of it if you try quickly.)
What do you think all programming discussions about languages, typing systems, runtime, tooling etc. aim for?
EXACTLY THAT.
If it was as easy as "just give me thing" then programming would have been a solved and 100% automated problem long time ago.
Your comment comes across as "if only we could fly, we would have no ground road traffic jams". I mean, obviously, yeah, but we can't fly.
Your comment also comes across a bit elitistic and from the POV of an ivory tower. Don't know if that was your goal, if not, I'd advise you to state things a bit more humbly.
I stated an opinion. You can reject it silently. Having the last word is not such a badass move as many people think. :)
(Mostly .Net, PHP and Ruby)
Even simple requirements can rule out languages for me. Like, if you need async or concurrency, Python is awful. If you need SQL in your code, Golang isn't great. If you are building a simple CRUD backend, Java is waste of time. If you aren't doing anything compute heavy or embedded, why even consider C++ or Rust. The list goes on.
I might personally love to kick off a greenfield project with Elixir, and it might tick all the technical boxes and meet the requirements. But then I have to pay a premium for senior engineers that know elixir or have to price in the time needed to upskill.
Or I could just do it in Rails where I can dip into a much larger talent pool and still meet the requirements. Much more boring but can get the job done just as well.
But in reality it rarely matters. If you were only allowed to use Java as a backend and your competitors could use anything your company would succeed or fail based on marketing and sales. The backend doesn't matter as long as they both have the same features.
I understand developer preference and different languages make things easier and make programming funnier. Languages have different limits.
As you become more senior you realize getting around those limits is part of the magic. If you come on to a project where the existing developer wants to write the backend in javascript because that's what they know I would rather use Javascript then wasting time trying to push a more 'pure' choice. Because in the end I am capable of writing it and what we will be judged on is if it works to achieve an objective not if it was the best language choice when using differentiation.
If speed of execution matters, then the language and tools you use for something also matters.
Hard to take you seriously when you do such weird generalized takes.
While it's a sad fact that fanboys and zealots absolutely do exist, most devs can't afford to be such and have to be pragmatic. They pick languages based on merit and analysis.
You should search for headlines on HN that say "written in Go" or "written in Rust" and then compare that to the number of headlines that say "written in JavaScript" or "written in Kotlin."
I’ve seen the more cynical hype-driven stuff, but it’s inevitably superficial on first glance, where I have seen some real curiosity and exploration in many “Project X - Built In Rust/Go/Cobol/D/Whatever” and I think they’re exploring the dynamics of the language and tooling as much as anything else.
You do seem to say Golang and/or Rust devs are zealots which, if it is indeed what you are saying, is boring and plain false.
I am especially valuable because I am fine reading and writing any of the languages involved. The management likes that, but there's a lot of difficulties solving the tribal problem, as the leads are basically all crazy zealots, and it's not as if purging one or two factions of zealots would avoid further zealotry from the survivors. The fact that I can work across all their tech doesn't make me many friends, as my work across systems shows their arguments have little merit.
For most work, in most cases, most languages are just fine. The completely wrong tool for the job is pretty rare, and the winning argument in most places is "we have the most people that have experience with tool X, or really want to try exciting new thing Y", for whatever the problem is, and whatever X might be.
Rust projects immediately become “done”??? They don’t also having changing requirements and dependencies? Why aren’t everyone at the best shops using it for everything if it massively eliminates work load?
" Version 0.2 - Unstable/buggy/slow unless you use exactly like the example - not going to get updated because I moved on to something else"
Rust is another programming language. It's easier to write code without a certain class of bugs, but that doesn't mean version 0.2 of a casual project is going to be bug-free.
It's easy to have no defects in functionality you never got around to writing because you ran out of time.
Doesn’t look like a con to me :)
I didn’t realise that the only requirement for well-written code is to have an expressive type system and memory safety.
Those people, if they really exist, are right.
Rewriting something in Go or Rust and announcing it is not being a Zealot.
Being enthusiastic about something shouldn't be a cause for us to judge them like this. We should be happy about them.
When companies do what the market expect we praise them. When it's workers, we scorn them. This attitude is seriously fucked up.
When companies start hiring based on experience, adaptability, curiosity, potential and curiosity then you get to complain. Until that, anyone doing it should be considered a fucking genius.
The game doesn't exist without players. I could make more money if I worked at Meta or Amazon, but at what cost?
I understand the realities of Game Theory, but then one could argue that being blamed and criticized for one's choices is also part of the game. "Mr Wolfcastle, how do you sleep at night?" "On a big pile of money with many beautiful ladies"
It is, and this is highly judgmental and offensive. Nobody is doing this for "aggrandizement".
Also, all of this is just rationalization, and will keep being until:
1) People start blaming companies for not having the spine to say no to misguided projects by employees.
2) People start blaming Companies for not having the spine to hire people based on past experiences with the craft of programming itself, but rather asking them to have a certain box ticked in their CV.
If one wants to program in X in order to better feed their family and the market says they need to have used X professionally, it is in their right to do X at the workplace.
This is not only expected of them, this is how the whole industry is set up.
They're just following the rules, period.
For maximizing their gains in spite of wider consequences? Why? I thought that was genius level behavior in your book.
Why do you feel compelled to denounce this behavior on one side and praise it on another? That seems to be the very hypocrisy that you are shaking your fists against.
Learning new technologies on the go is pretty much the standard, but it's something that employers don't understand.
Worst one is the data pipeline we have. It’s some AWS lambda mess which uses curl to download a file from somewhere and put it into S3. Then another lambda turns up at some point and parses that out and pokes it into DynamoDB. This fucks up at least once a month because the guy who wrote the parser uses 80s BASIC style string manipulation and luck. Then another thing reads that out of DynamoDB and makes a CSV (sometimes escaped improperly) and puts that into another bucket.
I of course entirely ignore this and use one entire line of R to do the same job
Along comes a senior spider and says “maybe we can fix all these problems with AI”. No you can stop hiring acronym collectors.
I'd love to know if my superficial impression of Microsoft's culture is wrong. I'm sure there's wild variance between organizational units, of course. I'm excluding the Xbox/games orgs from my mental picture.
Zune, Games for Windows Live, Skype, Encarta, CodePlex, Windows Phone, Internet Explorer.
So maybe the difference is that Google kills projects that people love, while MS only kills unloved ones?
However, their documentation and support is really scant.
On the other hand "innovators left at launch and passed it off to the maintenance team" alone must not be a bad thing.
Innovator types are rarely maintainer types and vice versa.
In the open-source world look at Fabrice Bellard for example. Do you think he would have been able to create so many innovative projects if he had to maintain them too?
Google kills off projects because the legal liability and security risks of those projects becomes too large to justify for something that has niche uses or gives them no revenue. User data is practically toxic waste.
Even good honest motivated people can become checked out without even being aware of it.
The alternative is to lay off people as soon as they hit 1.0 (with a severance bonus on the scale of an acquisition). This would obviously be worse, as you can’t take advantage of their institutional knowledge.
You can go the hatchet way - I am strongly unconvinced it is indicative of anything resembling good management, mind - but most people and companies cannot rely on banks or investment firms loaning them 40 billion dollars and accepting passively a mark down of their mone~ to 1/4 of the value they loaned down the line. CEOs are ousted by investment firms for a far smaller drop in value all the time.
I agree with everything you said, though.
If you’re an exec who’s taken it upon themselves to evaluate, could use the hatchet, or you take some amount of time to figure out how things work. Whether this is okay depends on who is suffering the externalities. If it’s a private corporation, legally it’s the execs + employment law. If it’s a public service that measures toxin levels in water, uhhhhh.
No one works for any BigTech company because they think they are making the world a better place. They do it because a shit ton of money appears in their bank account every pay period and stock appears in their brokerage account every vesting period.
I personally don’t have the shit tolerance to work in BigTech (again) at 50. But I suggest to all of my younger relatives who graduate in CS to “grind leetCode and work for a FAANG” and tell them how to play the politics to get ahead.
As the Dilbert author said, “Passion is Bullshit”. I have never been able to trade passion for goods and services.
I'm sure there are plenty of people who work at big companies for precisely this reason (or at least, with that as _a_ reason among many).
Yes, much of the prestige has worn off as the old guard retired and current leadership emphasizes chasing AI buzzwords and cutting costs. But still, big companies are one of the few places where an individual really can point out something they worked on in day-to-day life. (Pull out any Android phone and I can show you the parts that my work touched.)
And it takes a while for a young dev to register that the goals that the larger organization pursues are going to win out in the end anyway.
It's always the same. People trying to make things better for the next developer, people prioritizing delivers instead of ego-projects or ego-features by someone playing politics, developers wanting a seat at the table with (dysfunctional) Product teams, people actual good intentions trying to "change the world" (not counting the misguided attempts here).
You are 100% correct, you gotta play the politics, period.
Congratulations, you’ve invented the HR department in corporate America.
The better the pay, the more you will attract the people who are there for the pay first and making good products ... second or third or never. How do you combat that?
Case in point: Tesla/SpaceX meets your first criteria: "I want a tech company where people are there to make good products first and get paid second."
Google meets your second criteria: "And the pay should be good. The lifestyle comfortable. No grindset bullshit."
Other than small time boutique software firms like Fog Creek Software or Panic Inc(and thats a BIG maybe) you are not going to get this part of your message: "But I am confident that if you only employ passionate people working their dream jobs you will excel."
There are tradeoffs in life and each employee has to choose what is important to them(and each company CEO has to set standards on what is truly valued at the company).
Tesla has never been a good product.
https://insideevs.com/news/731559/tesla-least-reliable-used-...
https://www.carscoops.com/2024/11/tesla-model-3-comes-bottom...
https://www.topspeed.com/tesla-reliability-and-repair-costs-...
Not to mention the infotainment system is much worse than CarPlay/Android Auto compatible cars
This is too funny to post alongside saying “Tesla has never been a good product.” Like “everyone that bought it loves it be car expert Joe from South Dakota ranks them very low.”
Common sense also runs very much against this nonsense narrative - you just simply do not sell that many cars, at those prices especially, year after year after year, if the product is subpar. Don’t fall for this “experts” bullshit. The CEO is the biggest tool this Earth has ever seen but cars are awesome
On another note, Apple also sold millions of MacBooks with butterfly keyboards.
And Tesla sells are declining, losing market share worldwide and sells 1/5 the number of cars as Toyota
and if you gonna compare tesla to toyota you should compare number of EV sales, not overall sales :) tesla is not a car company, it is (among other things if you care to believe Elon bullshit) EV car company. comparing toyota to tesla in terms of total sales is like saying “subway doesn’t sell nearly as many bigmacs as mcdonald’s does” :)