Hacker News new | past | comments | ask | show | jobs | submit login

I worked on the infra team for a TypeScript-based product downstream of the author. His and his team's approach and writings influenced at a lot of my thinking about core development, and I'll always be grateful for having had the opportunity to learn from them by osmosis.

The success or failure with which any companies hires and retains folks like these is a mystery to me. As the evidence shows, Google (and I suspect almost any >100-person company) is far too much an amorphous glob/slime mold to even have a single coherent approach to this problem. But what are the successful strategies here? How important is it even to retain this kind of talent? How do we know how a company is even doing in this regard?

In my meager-in-comparison 6.5 years at Google, while I certainly saw many amazing SWEs come and many go, I'm far from knowing what the real trajectory was. But I can imagine that for many folks, the perceived trajectory would be a major motivating or demotivating factor to stay or to leave themselves.




Retention of very senior people really comes down to those people and their personal reasons. I don't think it's a group of people who all want the same thing, so it's impossible to make a general retention plan.

And realistically, the reason you want them to stay is because they are someone who has figured out how to operate and impact the organization without needing too much guidance or direction.

But I think it's why there are all the generic lifestyle perks and competition for titles like "Best Place To Work".


Any large corporation needs to eliminate the bus factor of individual contributors (those who don't pay the management and politics game). You can't have an universally respected engineering legend contradict the board of directors; and the CEO it installs and influences.

Thus, you could argue that faceless, kafkaesque, "out of anyone's control" systems for talent management are a feature with trade-offs, not a bug.

While I have not worked at Google, simply being a user of its products for the past two decades has taught me that so much of its company culture and values have changed; and rarely for the better.


Of course, you don't want a bus factor with executives either although it generally becomes more complicated as you get higher up at a company. You're not going to casually replace a CEO though you're not going to just shut down the company if they get hit with a bus either.


> His and his team's approach and writings influenced at a lot of my thinking about core development, and I'll always be grateful for having had the opportunity to learn from them by osmosis.

Would you like to share with the rest of us a few wisdom here?


There's no secret sauce. The typical aphorisms of software development are generally correct and apply here:

* internalize the cost of core changes and don't push them downstream unless you have a really good reason * staff a core team to take care of high ROI horizontal efforts that have high fixed cost to do efficiently, e.g. TypeScript migration of a massive codebase * be careful of what you take on * complexity and code are costs and not end goals

Reading them is one thing but seeing the principles play out in detail amidst the mess of reality was illuminating for me. The author's blog[1] touches on these themes a bit more and I think are a good glimpse into their stewardship of the TS/JS codebase.

[1] - http://neugierig.org/software/blog/


Wow saved. I miss the amazing blogs and thoughts of people at Google, but unfortunately I don't miss the bureaucracy


This is quite simple:

- pay. These companies may be paying more than average and amazing if you compare to non-technical jobs, but as an engineer committing your best years to become great at what you do, you find yourself still not being able to afford even a small flat in the area where you work. Meanwhile you hear your company boasting about another record year and billions flowing in. Unfortunately they won't share those with you. That's demotivating and you feel being taken advantage of.

- lack of flexibility. For example managers pushing for pairing at all cost and with disregard to neurodivergent people. At the same messaging about equality, support for various social issues and so on. That creates dishonest image of the company and makes you think this is all bs and cheap PR rather than genuine care.

- Exploitation. Some companies expect you to do unpaid overtime or that you'll answer your phone outside of work hours. If you want me to work, you pay - I am not a charity.

- Rules designed to appease insecure managers, like having to be in person in the office so the manager can "watch you" and be "hands-on" with his or hers team. Again, company is boasting how great they are for the environment and at the same time they drag hundreds of people each day to the office for no reason. We have great tools to do work remotely, there is no longer a need to be in the office. Sell the office and give employees a bonus.

- open plan office. I just can't focus in those. There is only so long I can stand wearing noise cancelling headphones and I don't want to hear people behind me chatting loudly what they had for lunch, with occasional bursts of laughter that is piercing my ears. I found that often I actually done the work in the evening at home, whereas the whole time in the office I had to pretend I am busy. One time when I was offered a promotion I asked for private office. The CTO said it's only for him and the board. Well, I quit next month.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: