Live data from Hacker News

Staff Engineer Archetypes (2020)

lethain.com

251–260 of 269 posts

Re: Staff Engineer Archetypes (2020)

#251
post #10

Avoid all these other types except Solver (we call it Fixer at FB). Anyone who calls themselves these things is weird, and will be hard to rely on. Disregard levels. Disregard titles. Fix what needs to be fixed. Unit tests, CI, docs, there's no such thing as grunt work. Real leadership happens in the IDE and only code matters - everything else is overhead.

> only code matters

Code is just an implementation detail that solves a business problem. I can't disagree more with this take.

Re: Staff Engineer Archetypes (2020)

#252

Earlier quoted context omitted.

Ian Buck wrote the initial version, right? I'm sure multiple teams polished the aforementioned software. It's just that it was this one or two engineers came up with the idea, built the the first working version that the other fellow engineers thought impossible or too expensive or unworthy to build, and the rest was the history.

> that the other fellow engineers thought impossible or too expensive or unworthy to build This is not an exhaustive list and you have just picked the points that support your weak argument.

I thought $\exists$ does not require an exhaustive list, but $\forall$ does.

Re: Staff Engineer Archetypes (2020)

#253
post #63

Earlier quoted context omitted.

Solvers don't fix the problem. They tell you how to fix the problem. :) That's how they make sure the problem stays fixed.

they should be able to do both. In case a high severity issue is ongoing, and someone knows how to fix it very fast - they should probably do it. Or guide another engineer in realtime on how to do it. If it's not that urgent, they might guide others in a more asynchronous fashion on how to get to a fix

They most certainly can do both, and do. But as a solver, I prefer to give it back to the person to solve.

1. I may know enough to know the problem and the rough fix. I may not know how to fix it in their codebase as quickly as they do.

2. See above. I want them to internalize the fix.

That said, I ain't afraid to dive in and get it done. I remember not understanding some Java build system somewhere. So I fixed the code, tested it quickly, and hand deployed the jar... then I asked how to fix it for real ;)

My boss was amused.

Re: Staff Engineer Archetypes (2020)

#254

Earlier quoted context omitted.

I think as systems get more complex and bogged down, it's harder to innovate. As innovation is stifled by build problems, dependency problems, political problems, operational problems, the amount of code you have to read to do anything problems, etc, I think engineers start to say "could I be more productive, and therefore theoretically get more reward, elsewhere?" I think as soon as the innovators start to jump ship…

If Twitter has a sane architecture and all indications is that it does now, creating a new feature shouldn’t require back end refactoring. You have core shared services and you build another service on top of it. I know how at least one of the newer services work at AWS and how many existing back end existing services it depends on and that if anyone outside of AWS had the resources, they could build it themselves by…

https://thenewstack.io/how-airbnb-and-twitter-cut-back-on-mi...

> Originally, Twitter ran their public APIs through a single Ruby-on-Rails application (“Monorail”), which had grown into one of the largest Rails codebases in the world. And so it was increasingly difficult to update. By 2014, Twitter went the route of microservices, migrating the API service to a set of 14 microservices, running on an internal Java Virtual Machine (JVM)-based framework (“Maccaws”).

> “While the microservices approach enabled increased development speeds at first it also resulted in a scattered and disjointed Twitter API,” Cosenza said. Independent teams designed and built endpoints for their specific use cases with little coordination. This led to fragmentation and, inevitably, a slowing of developer productivity.

Microservices don't make a lot of sense to me unless you can print money or have a public infra offering. It points to an engineering org that doesn't know what they are doing. Turning O(N) code complexity (virtual complexity) into O(N) operational complexity ("physical" complexity) points to an org that doesn't understand where their complexity is coming from or how to minimize it.

> creating a new feature shouldn’t require back end refactoring.

The argument I was making is that it doesn't matter if it gets better. Once momentum is stopped by poor architecture, inertia is too high to get moving again.

> I know how at least one of the newer services work at AWS and how many existing back end existing services it depends on and that if anyone outside of AWS had the resources, they could build it themselves by calling publicly available APIs.

Yes they product-ized their services which is absolutely brilliant. I think the fact that amazon can print money plays a very key roll in why they won while other companies lost. They scaled early in the game rather than scaling too late and reaped incredible rewards for doing so.

> And let’s not pretend that Google for instance is any better at product development.

Google is famous for developers "just shuffling protobufs between services." While it's generally said derogatorily, that means that developers are generally not in the weeds and minutiae of what they are trying to accomplish, but are actually working on the higher level concept they are trying to achieve.

> It’s failed at everything it’s done not related to advertising

gsuite, maps, search, adsense, analystics, gcp, youtube, play, android, pixel, chromebook, news, docs, project zero, etc.

I don't agree that failure is the rule. Cutting lackluster offerings rather than pouring investment in them shows at the very least a sane short term strategy with the weakness of potential harm for long term consumer trust. That's a reasonable trade off to make with good arguments for both sides.

Re: Staff Engineer Archetypes (2020)

#255

Earlier quoted context omitted.

If Twitter has a sane architecture and all indications is that it does now, creating a new feature shouldn’t require back end refactoring. You have core shared services and you build another service on top of it. I know how at least one of the newer services work at AWS and how many existing back end existing services it depends on and that if anyone outside of AWS had the resources, they could build it themselves by…

https://thenewstack.io/how-airbnb-and-twitter-cut-back-on-mi... > Originally, Twitter ran their public APIs through a single Ruby-on-Rails application (“Monorail”), which had grown into one of the largest Rails codebases in the world. And so it was increasingly difficult to update. By 2014, Twitter went the route of microservices, migrating the API service to a set of 14 microservices, running on an internal Java Vir…

> Microservices don't make a lot of sense to me unless you can print money or have a public infra offering. It points to an engineering org that doesn't know what they are doing

A little company I’m sure you have heard of may disagree. This was way before AWS was thing and was an edict for Amazon Retail

https://nordicapis.com/the-bezos-api-mandate-amazons-manifes...

Your information about Twitters current architecture is way out of date.

https://thenewstack.io/how-airbnb-and-twitter-cut-back-on-mi...

https://www.quora.com/What-were-the-technical-limits-that-Tw...

> Yes they product-ized their services which is absolutely brilliant. I think the fact that amazon can print money plays a very key roll in why they won while other companies lost. They scaled early in the game rather than scaling too late and reaped incredible rewards for doing so.

That’s not the point. The point is that new internal initiative don’t start from a blank slate at any large tech company. There is already infrastructure in place to build on top of even when that underlying infrastructure isn’t publicly available.

> gsuite, maps, search, adsense, analystics, gcp, youtube, play, android, pixel, chromebook, news, docs, project zero, etc.

- gcp - losing money

- addsense - more ads

- GSuite - a distant second to MS

https://www.saasgenius.com/blog/why-office-365-is-overtaking...

- Android: it came out in the Oracle trial that Google only made $27 Billion in total during the first six years. Google gives Apple 18 billion a year to be the default search engine on iOS. Apple makes more money from Google in mobile than Google makes from Android

- Pixel: depending on who you believe, Google sells 1.2 million phones a quarter. If it were a separate company, it would be an abysmal failure

https://www.engadget.com/google-pixel-q4-2021-best-sales-qua...

That’s about the same number Apple sells in 2 days in a down quarter.

YouTube: while YouTube contributes 10% to Google’s revenue, most think it’s still not profitable once you take into account bandwidth, storage, and revenue share with creators.

Project Zero is not a profitable product - nor was it meant to be.

Re: Staff Engineer Archetypes (2020)

#256

Earlier quoted context omitted.

https://thenewstack.io/how-airbnb-and-twitter-cut-back-on-mi... > Originally, Twitter ran their public APIs through a single Ruby-on-Rails application (“Monorail”), which had grown into one of the largest Rails codebases in the world. And so it was increasingly difficult to update. By 2014, Twitter went the route of microservices, migrating the API service to a set of 14 microservices, running on an internal Java Vir…

> Microservices don't make a lot of sense to me unless you can print money or have a public infra offering. It points to an engineering org that doesn't know what they are doing A little company I’m sure you have heard of may disagree. This was way before AWS was thing and was an edict for Amazon Retail https://nordicapis.com/the-bezos-api-mandate-amazons-manifes... Your information about Twitters current architectur…

> This was way before AWS was thing and was an edict for Amazon Retail

Yes, you are telling me the point I was making. Product-izing your microservices is a justification for microservices.

> 5. All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.

That is the property that makes microservices make sense. Without that property, technical leadership is setting themselves up for failure.

> Your information about Twitters current architecture is way out of date.

The only point I was making about twitter architecture, of which I know far too little about, was that as you stated previously "Every indication is that the code base was horrible" leads to loss of momentum and inability to innovate, so it's not surprising their growth stagnated for, what I believe, are primarily technical reasons. It doesn't matter if they got better if they went through a period which stopped momentum.

> That’s not the point. The point is that new internal initiative starts from a blank slate at any large tech company. There is already infrastructure in place to build on top of even when that underlying infrastructure isn’t publicly available.

The point I'm attempting to make is that if underlying infrastructure is poor, that's not a fertile ground to grow new product so innovation becomes stifled because resistance to new functionality is too high. If maintenance costs are too high resources must be spent maintaining rather than innovating. I've seen developers stumble around for a week because they put `30` instead of `10` in a config file. I've watched an entire team waste months of effort because production was not advanced enough for what they wanted to do. I've watched an entire engineering organization lose hours every day to a poor dev environment. Time was spent fighting infrastructure, not creating features, so it's not surprising when new products and features weren't created and growth didn't meet expectations.

> google stuff...

We have different definitions for failure. You said google wasn't able to develop products. Google is clearly able to develop new products/services, maybe not monetarily successful ones, but google as as a company has a disproportionate effect on my life and how my life works past showing me some ads.

Re: Staff Engineer Archetypes (2020)

#257

Earlier quoted context omitted.

> Microservices don't make a lot of sense to me unless you can print money or have a public infra offering. It points to an engineering org that doesn't know what they are doing A little company I’m sure you have heard of may disagree. This was way before AWS was thing and was an edict for Amazon Retail https://nordicapis.com/the-bezos-api-mandate-amazons-manifes... Your information about Twitters current architectur…

> This was way before AWS was thing and was an edict for Amazon Retail Yes, you are telling me the point I was making. Product-izing your microservices is a justification for microservices. > 5. All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exce…

> Yes, you are telling me the point I was making. Product-izing your microservices is a justification for microservices.

This was not about Amazon selling its micro services. This was only about AWS Retail developers internally.

> Every indication is that the code base was horrible" leads to loss of momentum and inability to innovate, so it's not surprising their growth stagnated for, what I believe, are primarily technical reasons

This was in the early days. They moved away from the Ruby monolith years ago.

> We have different definitions for failure. You said google wasn't able to develop products. Google is clearly able to develop new products/services, maybe not monetarily successful ones

For a for profit company, the only definition of success is does it make a profit.

Edit: I change my mind slightly. We are talking across each other. From a technical standpoint and being able to get products to market, Google is great. From a business development standpoint/program management standpoint, Google sucks. Google’s saving grace is that it has one great revenue stream.

Maybe if Twitter had better product development capabilities - not computer development, business development, they may have found something that sticks.

I also just don’t think Twitter is as compelling of a product for most people as a Facebook and an Instagram

Re: Staff Engineer Archetypes (2020)

#258
post #137

Earlier quoted context omitted.

This reminds me of an old essay: https://www.joelonsoftware.com/2005/07/25/hitting-the-high-n... The thesis is that the "10x engineers" don't output a linear multiple of the same kind of work their peers do. Instead, they implement solutions that their peers wouldn't or couldn't over any length of time. This matches my experience.

The 10x engineer identifies common subproblems across different problems, and then creates a layer of reusable code which becomes a library. Then uses this library to write code 10x faster. The 10x engineer tries to standardize problems and solve them en-masse. The 1x engineer sees every problem as a different problem that requires a different solution. The 10x engineer talks about abstractions, the 1x engineer talks…

As an 11x engineer that is also a rockstar engineer I approve the message

Re: Staff Engineer Archetypes (2020)

#259

I wasn't familiar with the term "Staff Engineer", and wikipedia was no help. I found this: https://careerkarma.com/blog/how-to-become-a-staff-engineer/ ...which seems to be saying that a "staff" engineer is indistinguishable from what I'd call a senior developer. As far as I'm concerned, "staff" is people that are permanently and directly employed. It doesn't mean "senior". If it's found it's way into the cycle of jo…

For a description of the other type of Staff Engineer, see this post that was on HN a few months ago: https://earthly.dev/blog/line-staff/

Re: Staff Engineer Archetypes (2020)

#260

Earlier quoted context omitted.

> I guess maybe the difference might have been that we (analysts) had degrees, and they didn't Interesting nomenclature given that in many countries you can't even call yourself an engineer without an accredited degree and being licensed by the proper regulator.

Does that apply to "Software Engineers" in Silicon Valley?

No. The US does not generally require "engineers" to be accredited and certified, but there are some exceptions, like particularly civil engineers.
Post reply on HN