Live data from Hacker News

The Staff Engineer's Path – Book Review

smyachenkov.com

91–100 of 251 posts

Re: The Staff Engineer's Path – Book Review

#91
One resource I always wanted to have was how does one figure out the responsibilities for a new role that one is interviewing for and is advertised as mid level:

1. Writing, reading, reviewing software most of the time.

2. Some amount of planning on medium sized projects(2 engineers) you are handed over. You can thus iterate on new small(ish) features pretty easily.

Like assuming a team of ~5 engineers, how does one go about quizzing the interviewer about different aspects of the role based on prior experience?

Re: The Staff Engineer's Path – Book Review

#92
post #22
post #9

Earlier quoted context omitted.

Unpopular opinion: With quickly growing organizations and therefore more inexperienced people managers, promoting someone to staff engineer is an easy way out of responsibility. How often have I heard "you’re at a point in your career now where a people manager will only hinder you" to justify not being capable of supporting me.

Curious your thoughts on who a Staff should report to. I've been at a handful of places where there were Staff Engineers (some of them even deserved it!) and it always seemed like the promotion from Senior to Staff came with a change in reporting structure, where now instead of reporting to a Manager you're reporting to a Director or a VP, even the CTO in smaller orgs. I think this is a good indication of increased a…

Staff engineers that report to directors or whatever the equivalent 2nd or third mgmt level is are most effective in my experience.

An important part of the job is to “borrow” your boss’s authority and for that to work they need to have some. I’ve seen staff engineers be ineffective because of their boss’s position many times.

Reporting to someone higher than director you start getting too disconnected from on the ground stuff (architecture astronaut syndrome) and lower the ground is all you can see.

Re: The Staff Engineer's Path – Book Review

#93
post #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…

> 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."

I would define that as "software engineering". What else are any of us doing all day? The compiler's job?

Re: The Staff Engineer's Path – Book Review

#94
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…

The thing that separates those guys from everyone else is simple.

Its stamina.

No there isn't some higher level of understanding or deep perception. Every one of the all time great programmers had 1 exact thing in common with no exceptions. Stamina. You will not find a single outlier.

They did their craft every day, for many hours, year after year.

So sure, any of us could have taken the individual small steps. But when you look at a whole body of work, you'll see they're cranking through these "small steps" like the Juggernaut running through walls for decades

Re: The Staff Engineer's Path – Book Review

#95

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…

Doug Crockford was "Distinguished Fellow Engineer" or some title like that at Paypal.

Re: The Staff Engineer's Path – Book Review

#96
post #74

Earlier quoted context omitted.

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…

I could have a really cool time-travelling database to sell you, but I can't because I signed away my right to invent. So, if you really want to

> built by the engineer who decides to venture on their own and replicate what they were building as a stand-alone product.

We need to change our contracts.

Re: The Staff Engineer's Path – Book Review

#97

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…

As someone who has worked at a "Project/Service" company for way too long, I wholeheartedly agree. It's a horrible way to build software and will drain your soul. Good software is both much more expensive and much more valuable than most people realize, and one contract or client is never enough to give it the attention it deserves. Your clients will wonder why your $200k custom software doesn't work like Excel / PowerBI / some other product with tens or hundreds of millions of dollars of investment. It will wear on you that you simply can't give your software the love it deserves solely on the tab of one single client.

Re: The Staff Engineer's Path – Book Review

#98

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…

The only time I've seen anyone really do half of what this books describes as a "Staff Engineer" was at a small(ish) hardware company, PowerVR, where the OpenGLES driver team was 5-6 people, the team lead was a developer and architect who also did a bit of management, rather than the other way round. Then there was a manager on top of them in turn for multiple teams, but they weren't involved in the technicals at all, not even in the loosest "architecture design" ways, they purely did the people management.

In a larger company now, still working on GPU drivers (AMD, but not the "main" platform), there's a couple of people who might do a bit of this, but feels more like you get specific domain experts rather than anyone designated by the company. The team is notably larger than at PowerVR, and there is a "Manager" who is more involved in doing things like placating customers and prioritizing work and issues, but again completely uninvolved in the actual development.

In none of these examples does the job title have any relation to the differences in their work, both used completely different stacks of terms and difficult to compare cross-company.

But I guess it's all "Hardcore Engineering", and even the newest members of the team are expected to design systems themselves. Hell, straight out of university at PowerVR I was designing and implementing my own stuff, and significant systems not just following an already concrete architecture. But it was a small enough team everyone was involved in feedback, and I did feedback to them in turn. So I guess GPU drivers are still greaybeard "Hardcore Engineering"?

This may be helped by driver development often being pretty well defined, you have a spec (which you may have been involved with designing, but very much a large collaboration), you have hardware architects and another team trying to figure out the next generation might look (are they the "true" architects here?).

Re: The Staff Engineer's Path – Book Review

#99
post #25

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…

> Most companies seem to be consumers instead of creators and only offer Jr.-to-Sr. level roles around making a CRUD API micro-service collection. That's because this is what 90% of companies need. Even at big tech or any nationally-known tech brand, I'd bet at least half the work in maintenance, support, incremental improvement, and integrations.

Sure: nobody wants the car, they just want faster horses.

> Even at big tech or any nationally-known tech brand, I'd bet at least half the work in maintenance, support, incremental improvement, and integrations.

That's because they are extremely inefficient. Most people build software badly, most companies expect software to be bad, and they hire a bunch of bullshit jobs to do inefficient things to support that bad software badly. The gap between what software could be vs. what it is is so overwhelmingly massive that it's crushing my soul. These people do stupid CRUD API micro-service bullshit because they're blissfully ignorant of how tremendously amazing their software could be if they fired 90% of their boot-camp dev ops and replaced them with a handful of 10x staff-level developers.

Re: The Staff Engineer's Path – Book Review

#100
post #74

Earlier quoted context omitted.

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 th…

> People have recreated that core game many times with fairly trivial code

Yes, because they have something to reference. It was like Notch took a level editor and made it into the game itself. That isn't an easy thing to figure out and takes time.

> Sometimes there are just really great ideas.

Ideas are easy and usually it's really stupid ideas that turn out to be great ideas. Who would think that an FPS level editor would be a good idea? Or a text box that anyone can edit on a profile page would be popular (facebook)?

There are not great ideas, just ideas that are executed well.

Post reply on HN