Live data from Hacker News

The Staff Engineer's Path – Book Review

smyachenkov.com

81–90 of 251 posts

Re: The Staff Engineer's Path – Book Review

#81

This cult of staff engineers really need to go away. People read it and all of them like to act like a staff engineer when in fact there are only available slots for a fraction of the engineers. Now nobody wants to fix bugs and improve product quality. Why? Because those tasks are not staff-level work. The reward system and the definition doesn't work.

Alternatively, I've worked with Staff Engineers who are still fixing bugs, and also building (maybe staff-level?) tooling and project improvements. The most significant issue is the lack of standardization of expectations. "Staff" doesn't mean anything in a vacuum because it doesn't mean the same thing between any two companies.

Personally, I love doing senior stuff. I don't know if I even want to be staff at any point, maybe I'll want a different challenge someday, but I still get a lot of enjoyment out of churning out high-quality code and shaping things at multiple levels. But if I stay where I am, I'll eventually be promoted to staff with minor shifts in the work I do.

Re: The Staff Engineer's Path – Book Review

#82

Earlier quoted context omitted.

So are we saying that software engineering can be at odds with your ability to write code? I'm not sure most people would say they are quite the dichotomy you present here. While I agree it's often a team-sport, being able to create amazing things yourself (i.e. Git, Redis, RollerCoaster Tycoon, Rust and other single-person projects) that others struggle to replicate or contribute too shouldn't mean you're a bad soft…

I’m assuming Rust here refers to the game and not the programming language?

Graydon Hoare created Rust as a personal project while working at Mozilla Research in 2006 - https://en.wikipedia.org/wiki/Rust_(programming_language)

Not many devs create the core of what is arguably the best programming language available today as a personal project. However, it's true that what it has become today is now the work of many.

Re: The Staff Engineer's Path – Book Review

#83
post #66

Earlier quoted context omitted.

> I've been bothered by the fact that most advanced engineering roles like "staff" actually mean "manager who does system design as well" The definition I have generally seen for "staff engineer" is an engineering leadership position without direct reports - I see "manager" as generally meaning "has direct reports". I think this is important: leadership and management are not the same things!

Can you explain better the difference? I am trying to figure this out myself for a while...

A Staff Engineer doesn't really have to care about for example people that have a rough patch, or about notorious assholes ruining the team's morale. That's mostly a people's manager problem.

On the other hand people's sense of who they should really listen to always skews to their manager (the person that can fire and/or promote them, or at least has the most say in the process).

Re: The Staff Engineer's Path – Book Review

#84

Where do all the hardcore engineering jobs live? I've been bothered by the fact that most advanced engineering roles like "staff" actually mean "manager who does system design as well" Where are the docker/redis/next.js/linux kernel/qt/roller-coaster tycoon creators? Where are the people creating amazing software and do they get a special "advanced developer" title? I guess, I'm curious if there are actual roles in c…

It's up for debate, but I would define "staff" as "here is a vaguely understood problem we believe has to be solved; find out what it is, whether it actually is a thing, why it happened, whether it is worth the time to solve, and finally guide others to solve it for us." It can get manager-like, but the lack of direct person oversight is distinct enough IMHO.

The creators of the software you mentioned are rarely in a role defined as such. If you really want to go the hard-core coding path, the startup scene is the best place to look.

Re: The Staff Engineer's Path – Book Review

#85
post #66

Earlier quoted context omitted.

> I've been bothered by the fact that most advanced engineering roles like "staff" actually mean "manager who does system design as well" The definition I have generally seen for "staff engineer" is an engineering leadership position without direct reports - I see "manager" as generally meaning "has direct reports". I think this is important: leadership and management are not the same things!

Can you explain better the difference? I am trying to figure this out myself for a while...

To my mind, management is about having direct reports and doing a lot of work around things relating to that responsibility: quarterly reviews, compensation and promotion discussions, assigning work and suchlike.

Leadership is about leading: helping the company make strategic decisions about what problems to solve and how to solve them, mentoring and inspiring and educating others, generally up-leveling the wider organization but without the direct responsibility of managing individuals.

Re: The Staff Engineer's Path – Book Review

#86
> Your company might have a written definition of what good engineering means - written values, and engineering principles. But the clearest indicator of what the company values is what gets people promoted.

This is really the takeaway you should have. Be observant of what is actually rewarded. Companies are made of people. Unless you're in some ultra bureaucratic government position that is 100% impossible to get around - the guidelines are not really that important.

Instead, it's all about your relationship with your management chain. If your management chain likes you (the reason why doesn't matter) then that's all that really is important to your progress in your career. You can be more impactful than any employee, add to the bottom line of any business meaningfully, and still get fired because your management chain doesn't like you. And vice versa - seen folks do nothing to add to the bottom line or make any impact and yet - promos come their way.

Getting to staff and beyond is entirely about politics. It has little to do with your actual work. I'd highly recommend finding an organization that aligns to you. If you feel like an outsider in your company - switch companies until you find one where you feel accepted. If this is not possible (and it often enough isn't possible) - then ask if it's worth it and start wearing a costume and play whatever part you think will get you further. (Even with this attitude - it might still not be possible to advance. We live in a unjust world.)

Re: The Staff Engineer's Path – Book Review

#87

Where do all the hardcore engineering jobs live? I've been bothered by the fact that most advanced engineering roles like "staff" actually mean "manager who does system design as well" Where are the docker/redis/next.js/linux kernel/qt/roller-coaster tycoon creators? Where are the people creating amazing software and do they get a special "advanced developer" title? I guess, I'm curious if there are actual roles in c…

My single tip is: look for Product companies, not Service/Project companies.

This means looking for companies who build and maintain a product, SaaS or not, which they offer to customers, and avoid all sorts of consulting, offshoring, nearshoring, whatevershoring third-parties.

Project/Service companies draw little value from engineer familiarity with the systems they work on. Contracts and projects come and go, and everyone needs to learn new systems, processes, and technologies all the time. Experienced people end up as Project managers because that's the only path to career growth.

Product companies, on the other hand, suffer a lot from engineering turn-over, since they have this one complex system they need to babysit forever, and ever time someone leaves, the accumulated knowledge built on that person leaves with them (likely to a competitor who really benefits from that knowledge as well).

Re: The Staff Engineer's Path – Book Review

#88
post #74

Where do all the hardcore engineering jobs live? I've been bothered by the fact that most advanced engineering roles like "staff" actually mean "manager who does system design as well" Where are the docker/redis/next.js/linux kernel/qt/roller-coaster tycoon creators? Where are the people creating amazing software and do they get a special "advanced developer" title? I guess, I'm curious if there are actual roles in c…

Where are the docker/redis/next.js/linux kernel/qt/roller-coaster tycoon creators? Something I learned relatively late in my career was that really impressive work is the result of iterations in tiny steps. When you see something that makes you go "WOW! I could never do that!" you're seeing the final result of a long journey, and you probably could have taken each small step with a bit of effort. There's no need for…

When I worked at mega corps, I'd see a "new" tech emerged that was always very similar to a software that our company had developed to solve similar issues. I remember terraform getting released and seeing that it was just an inferior version of the Cloud Formation Template generator someone at my company had invented years prior.

I've seen this happen so many times and every time, I'm surprised that more businesses don't spin off cool internal projects like this into startups. Hashicorp's market cap is roughly 10% of the market cap of the megacorp I used to work for. And right now, my team is working on an internal project to fill the gaps left by various authentication providers we use. But instead of spinning this off into it's own business, they are just kind of waiting around for someone else to develop a better product so they can buy it instead.

It was explained to me that investors generally don't like spinning off internal projects because it can be a distraction, but it does feel like investors are leaving a billion+ dollars on the table. Especially given the absurd P/E multiples software startups enjoy.

To circle this comment back, I think a lot of staff engineers are working on the next generation of cool technology right now. But they might be working at boring old companies, like a massive retailer, and eventually that internal project will get replaced by one built by the engineer who decides to venture on their own and replicate what they were building as a stand-alone product.

Re: The Staff Engineer's Path – Book Review

#89
post #74

Where do all the hardcore engineering jobs live? I've been bothered by the fact that most advanced engineering roles like "staff" actually mean "manager who does system design as well" Where are the docker/redis/next.js/linux kernel/qt/roller-coaster tycoon creators? Where are the people creating amazing software and do they get a special "advanced developer" title? I guess, I'm curious if there are actual roles in c…

Where are the docker/redis/next.js/linux kernel/qt/roller-coaster tycoon creators? Something I learned relatively late in my career was that really impressive work is the result of iterations in tiny steps. When you see something that makes you go "WOW! I could never do that!" you're seeing the final result of a long journey, and you probably could have taken each small step with a bit of effort. There's no need for…

That's an unfair characterization. You are low-balling the creativity, discipline and bureaucracy management ability these individuals bring to the table. The right circumstances are only part of the acquisition. Aptidude and attitude are the other parts.

Re: The Staff Engineer's Path – Book Review

#90
post #74

Where do all the hardcore engineering jobs live? I've been bothered by the fact that most advanced engineering roles like "staff" actually mean "manager who does system design as well" Where are the docker/redis/next.js/linux kernel/qt/roller-coaster tycoon creators? Where are the people creating amazing software and do they get a special "advanced developer" title? I guess, I'm curious if there are actual roles in c…

Where are the docker/redis/next.js/linux kernel/qt/roller-coaster tycoon creators? Something I learned relatively late in my career was that really impressive work is the result of iterations in tiny steps. When you see something that makes you go "WOW! I could never do that!" you're seeing the final result of a long journey, and you probably could have taken each small step with a bit of effort. There's no need for…

> Something I learned relatively late in my career was that really impressive work is the result of iterations in tiny steps.

I think you are right. Really impressive work is generally the result of a longer journey than you realize. The time and effort put into it is probably underestimated. But my mind immediately tries to think of exceptions (which totally prove the rule). I'm curious if others would agree with this one: Sometimes there are just really great ideas.

Minecraft comes to mind. And I don't mean today's Minecraft. I mean the alpha and beta versions which were wildly popular and essentially just an engine and sandbox world with a tiny fraction of the features today's game has. People have recreated that core game many times with fairly trivial code, which is why I attribute this more to "great idea" than long iterative process that most people cant replicate. And a totally anecdotally and subjective reason (although I've heard others express it too). I found the game immediately nostalgic. It was new but it felt old - like it had existed in some form before but had just now taken shape. That to me seems like a great idea.

Ironically, I find myself questioning if I underestimated how long Notch took to create it. A cursory search says a week for the initial version, but this timeline shows more like 1 to 1.5 years from nothing to alpha: https://minecraft-timeline.github.io/ Even still, the fact that the core game can be recreated without too much effort does suggest that that it was more about being a good idea than being difficult to implement. I don't look at Minecraft and think "wow I could never do this." Instead I look at it and think, "Wow. That was a really great idea."

Although I suppose you could says that great ideas are an iterative process too. But at that point you have to decouple "really impressive stuff" from "I could never do this".

Post reply on HN