[HN Gopher] What makes a senior engineer? Writing software vs. b... ___________________________________________________________________ What makes a senior engineer? Writing software vs. building systems Author : fagnerbrack Score : 172 points Date : 2022-09-12 13:24 UTC (9 hours ago) (HTM) web link (codewithstyle.info) (TXT) w3m dump (codewithstyle.info) | VyseofArcadia wrote: | There's a meme I've seen making the rounds that is something like | - junior engineer: screenshot of code, engineer: screenshot of | code, senior engineer: screenshot of zoom. | | To me, what a non-senior engineer and a senior engineer do are so | different that they ought to be different career tracks, but this | progression seems depressingly organic and inevitable. The more | experience you get, the more people come to you for answers. The | more people who come to you for answers, the more involved you | are in the big things. The more you involved you are in the big | things, the less time you have to code. | | It seems crazy to me that you would spend so much time and effort | mastering the arcana of coding only to let it go unused later in | your career. It's like if a virtuoso musician were told that he | can't play music anymore. He needs to move on to conducting, and | after that composing. And he can't just stay at his current level | and keep doing what he's been training for years to do. If he | wants a future with this orchestra, he needs to exhibit career | growth. The expanding business has no place for stagnant | employees. | | Some business somewhere ought to make an effort to let the | virtuoso coders keep doing their thing, and break out the | engineers who want to go into system design as a separate career | track. | onlyrealcuzzo wrote: | At FAANG, I think it would look like: | | Junior eng: screenshot of code (with some help chat) | | Eng: screenshot of code (with no help) | | Senior eng: screenshot of design doc | | Staff eng: screenshot of calendar with a wall of meetings for 5 | days | yodsanklai wrote: | In my team, there are a couple of very senior engineers who | still do a lot of coding. They are extremely good. Fix all | sort of problems very fast, lot of code review, some design | (it's not everyday we design new systems), a lot of useful | feedback, communicate very well on what they do, anticipate | risks and so on... They manage to keep the number of meetings | reasonably low. They are very knowledgeable for sure, but I'm | more impressed by their throughput and resistance to stress. | JimmieMcnulty wrote: | The problem is that "just coding" isn't all that valuable, | relatively speaking. | | College grads can do it barely, and 5 years in they're fine. | What do you do with the rest of the people who, 10 years after | that, want to do the same things but get paid 50%+ more? | | "Virtuoso" coders aren't worth much (relatively), because it's | not _that_ rare, and honestly bugs aren't really a big deal. | Heck, you can write some pretty terrible code, and as long as | it's not some specific flavors of bad, your company will be | totally okay for a very long time. | tekkk wrote: | It depends what you are building. Make a simple CRUD, sure | any code-monkey can eventually build one from ground-up even. | Move on to something more arcane and complicated, you really | need a specialist with eye towards simplicity and | maintainability rather than having bunch mediocre coders | building some buggy monstrosity. That's how you end up with | these bloated and inefficient systems that go millions over- | budget. | | Single virtuoso coder - or just a coder who just actually | puts the effort to keep the mess contained - can be the glue | that keeps the project actually usable and who in-turn | educates others to be better programmers. | | They may not produce +50% more code than their less senior | peers but the code that's in total written will be of much | higher quality. That's how I see it. It's like having a great | musician in a band - everyone will strive to play better to | meet their standard. | JimmieMcnulty wrote: | epgui wrote: | This! | | My dream job is to have none-to-few meetings and to have my | head in code all day. | | I do have something close to this right now, but I really hope | that in 10 years I can still be writing code. | zasdffaa wrote: | I'm a dev and I see my job very much in contrast to what | you've described. My job is to solve business problems, | typically using code, but it all the things around it like | requirements gathering etc. | | It also definitely includes trying to solve business problems | by not writing code; by saying "this is a business problem | not a technical one, how about trying <some non-coding | approach>" | | Not to disagree with you, just giving a contrast. | VyseofArcadia wrote: | Frankly, I see it as my job to write code. That this code | happens to solve business problems is a lucky coincidence. | | Of course, this attitude may be a reflection of the fact | that I have never written software for a domain in which I | have expertise. Maybe if I were working on a product that I | myself used, I would be able and happy to help solve | business problems. As is, that is better left to a SME, and | I am happy to solve technical problems. | rconti wrote: | I'd say "your day is spent writing code. That this code | happens to solve business problems is why someone pays | you to do it". | epgui wrote: | I don't disagree, but saying my job isn't to write code is | like saying a surgeon's job is not to fix people up, or a | bricklayer's job is not to lay brick. | | Anyone's job can be described as "solving a business | problem" or "adding value", but that's not usually the best | way to describe it unless you're in a room full of MBAs. | (And even a bricklayer's job goes beyond "merely laying | bricks".) | | IMO, it goes (or should go) without saying that my work | output is valuable, and that I do what I do for a reason, | and that "writing code" does not encapsulate everything | there is to know about the job. | idontpost wrote: | > saying my job isn't to write code is like saying a | surgeon's job is not to fix people up | | A surgeon is a perfect example against your argument -- | the surgeon's job is to achieve a positive patient | outcome, not to cut someone open. Sometimes achieving the | first is best done by cutting someone open, but when it | is not then it is the surgeon's job to say that a | different approach is needed. | epgui wrote: | That goes without saying, and is not incompatible with a | reasonable reading of what I said. | zasdffaa wrote: | I once solved an urgent business problem (related to | interfaces FYI) by realising there must have been a 3rd | party solution. A quick search and I found it. It went | onto client sites soon after. | | To be fair, the problem had to be solved using code | anyway (why I was originally brought in), so another team | wrote that, but it took several man-years. My interim | 'fix' bought the company a lot of time. | | This isn't a great example as the code had to be written | anyway, but you get my point I hope. | epgui wrote: | I do, and oftentimes as a professional, not taking action | (or taking some alternative action, or referring to | another professional, etc) is the best thing you can | advise a client. | | A good surgeon will also very often advise a patient that | surgery is not indicated. | unity1001 wrote: | You will likely get bored eventually. For you'll start to see | patterns, you'll start to see much further ahead after some | time. You'll be able to see things from a much wider | perspective. You will see that there are many things that can | be done, must be done, and must be avoided. Many potential | opportunities and pitfalls. Your horizon will broaden. You | are now able to think and plan much further ahead and you are | able to plan much bigger things. | | But you will notice that you are just one person. Its | impossible to do all of that alone. Then you realize that you | need to work as a team. | epgui wrote: | Most engineers I hear say this ("you get bored and after a | while it's all the same") don't seem to share my interest | for learning very-different languages or academic computer | science theory. I am interested in all of that, and I am | pretty confident I will never run out of things to learn. | epolanski wrote: | You say that with few years under the belt. Come in a | decade. | epgui wrote: | I studied biochem for 12 years and know what it's like to | reach the edge of human knowledge on a very very very | narrow and specialized topic. | | I know enough about the breadth and depth of computer | science to know how insane it is for any one person to | think they've run out of things to learn. | fuzzy2 wrote: | I actually like solving other people's problems because even if | I fail to solve them they're still other people's problems. :-D | | I find distributing knowledge just as important as using it. | Help others help themselves. It's not for everyone! But if you | enjoy it, you should consider going that way, even if you still | enjoy coding. Or maybe not "even if" but "because". If you stop | coding, you'll quickly get out of touch. | | I (also) code in my free time. The most interesting | technologies I learn when I'm not coding for work. | twblalock wrote: | > It's like if a virtuoso musician were told that he can't play | music anymore. He needs to move on to conducting | | That's because coding skill, once you reach a certain baseline, | is _good enough_ and other things like architecture matter far | more than raw ability. | | Unless you are an outlier like John Carmack, improving your | coding ability really does not improve your ability to provide | business value. The difference between a junior and senior | engineer is really the difference in knowledge about what can | go wrong, and that knowledge is fundamentally about | architecture and edge cases, not coding ability. | | > Some business somewhere ought to make an effort to let the | virtuoso coders keep doing their thing, and break out the | engineers who want to go into system design as a separate | career track. | | That does happen, mostly at large companies that can spare the | resources. I know a number of people who have been around for | decades and make a _lot_ of money doing that. | bcrosby95 wrote: | > The difference between a junior and senior engineer is | really the difference in knowledge about what can go wrong, | and that knowledge is fundamentally about architecture and | edge cases, not coding ability. | | What do you define as part of coding ability? | | You're making design decisions anytime you code things. | Sometimes its smaller scale but sometimes it's larger. Edge | cases and consequences of your code are abound in every line | you type. | | Trying to divorce these things from coding ability feels | really artificial. If they aren't coding ability, what is? | Raw typing speed? | twblalock wrote: | The difference is understanding the architecture at a | higher level: how programs communicate with their | dependencies, how to do resiliency and failover, how to | scale an entire system of such programs, how to react when | something is wrong in such a complex system, and crucially | how to design your programs so they can behave as expected | when things fail. | bee_rider wrote: | Perhaps we should come up with different job titles for people | who do design, and people who do implementation. | lhorie wrote: | There _are_ two different career tracks, namely IC (individual | contributor) and EM (engineering manager). The latter revolves | almost entirely around people management. For the IC track, I | 've found this writing[0] on staff engineer archetypes useful. | The gist is that there are archetypes that involve a lot of | people management, but there are also some that are highly | technical / coding oriented. | | One analogy that comes to mind is wuxia/murim novels (i.e. | stories set in ancient times east asia, involving martial arts | sects). Among the strongest characters, there's the sect leader | type that is involved in politics most of the time, but there's | also the recluse master training in the mountains type. | Naturally, there's also plenty of characters clinging to | titles, overconfident fools, etc. | | I think this analogy is interesting because there's a clear | parallel between the two worlds in terms of how titles are | perceived, the craft that they purport to represent, and their | place in the world. Titles can represent both status and | mastery, but only loosely at best, the craft can be honed | irrespective of both titles and the state of the world, and | it's only through increasing a sphere of influence that one can | have a sizable impact in the world and its citizens. | | [0] https://staffeng.com/guides/staff-archetypes | PuppyTailWags wrote: | Something to note about leader-types and recluse-types: the | recluse-types very rarely if ever have influence over the | broader org, and if they do, only in limited critical | circumstances unique to them (often in the enablement of | critical leader-types). | | I think this is critical to note because an additional | complaint by many senior engineers I know of is that they | don't have enough influence when managers make dumb decisions | or their opinions about the direction of the product aren't | valued more than less-experienced product people. That is to | say, I don't think the deliniation between IC and Manager | work in practice because the influence of even a lower-level | manager will often supercede an experienced IC, much to IC | chagrin, except ICs also don't want to be in all the meetings | managers are in where such influence is exerted. | VyseofArcadia wrote: | I have been a senior IC. I spent no time training in the | mountains by myself. I spent all my time in meetings | attempting to do system design but actually just getting | bogged down in politics. | | There needs to be a third track. IC (training in the | mountains), EM, and IC (planning and design). A lot of orgs | would call that last position a PM, but I have never worked | with a PM competent enough to actually carry out that kind of | work without ICs stepping up to do most of the PMing | themselves. | | In my experience, PMs are the corrupt bureaucrats that serve | as antagonists in wuxia stories. | ilc wrote: | In systems: Politics is as much a constraint as budget, and | technical constraints. | | If your manager will not accept way X. It really doesn't | matter if X is optimal. You'd better find Y, or convince | the manager. | 8note wrote: | Imo, the politics is the design. | | Who is going to pay for what? Who's responsible for when a | certain part goes wrong? | | If you figure out the politics well, you've mostly | constrained the system design to something straightforward | kkirsche wrote: | Or, you built a poorly architected piece of software that | replicates your organizational structure. | jrockway wrote: | It's basically a law of the Universe that your software | will look like your org structure. You have to treat it | as a hard engineering constraint, just like you'd treat | seek latency on a spinning disk, or the speed of light | between two data centers. You can't increase the speed of | light, but you can still function. Treat org constraints | like that. | zamfi wrote: | In many of these organizations, PMs serve to insulate the | "planning and design" ICs from conversations with | customers. | | Not ideal either, IMO, ICs involved in planning and design | should get out there and talk to customers themselves! | jacobr1 wrote: | Or Architects | scruple wrote: | The most successful software project I've ever worked on, | in terms of our utility to the business and our | customers, as well as personal satisfaction to the team | members, was one where myself and a _technical_ PM | handled "planning and design" in lock step with each | other. My (former) management tried to build a template | out of our success and failed, horribly, because you | cannot account for the personalities that sit behind | these titles/roles. | glomgril wrote: | > you cannot account for the personalities that sit | behind these titles/roles. | | This is an important point, and should be more obvious | than it is. Projects succeed or fail more as a function | of individual personalities than of whatever their job | titles are. Easy to forget given that people who share a | job title are usually treated as interchangeable | components of the machine (at least in big companies and | at least in my experience). | tkzed49 wrote: | Yeah I mean this is a cool concept assuming that you get to | choose which "archetype" you progress into, rather than it | being dictated by the organization you're working in. It's | less cool when you get forced into the people management | archetypes, which I feel are way more common in many places, | because of the natural progression that GP described. | scruple wrote: | Starting in 2018, I was a tech lead (at the time, my title | was Senior) for 2 teams spanning ~4 years. I have a Staff | title today. | | Here's my problem with these roles. Going by the definitions | from Will Larsen in your link, I am currently expected to be: | a tech lead, an architect, and a solver. I engage primarily | with tech lead and solver work. I also frequently have to dig | in to "regular" IC work tickets. No single individual has the | capacity to do all of these things well but the business will | see you succeed in some degree with tasks associated to these | different roles, fail to recognize that these roles are | distinct from each other, and unrealistically expect you to | do it all. | | I am working with my management on this problem, specifically | about expectation setting (because it's a mess, everyone, and | I do mean literally almost everyone, has a different idea | about what my role confers), but it's frustrating. | tunesmith wrote: | Yeah, you've described my challenge exactly. I'm all three | and it's annoying. My title is Architect or Principal | Architect. Boss sees me and uses me as Tech Lead across | multiple teams (and the teams have really needed it). For | me it's more about coding standards, best practices, and | education than it is about interpreting product needs into | stories - we have others for that. Boss's Boss doesn't | appreciate that stuff and wants me as Architect, which puts | them into battles. And in practice, I get pulled off both | to be Solver - they call them "emergent issues", and the | hard ones come to me. There isn't anyone technical above me | that I can ask for help. Meanwhile I get dinged at | quarterly reviews by our scrum-master for not having a | predictable velocity. | vhold wrote: | I get the impression that John Carmack has achieved this, and I | bet it required him to forcefully take control of his schedule. | | Which reminds me of this game: https://www.saynomo.re/ | nitwit005 wrote: | That's essentially the Peter principle. Skilled people being | promoted to a role they are not skilled at. | jakey_bakey wrote: | It's all about leverage - regardless of if you're a brilliant | engineer, you can't have the same impact coding vs exerting | soft power on the business to architect a system in the optimal | way. | | And most companies want the brilliant engineers to be the ones | making those decisions, hence the pay incentives guiding the | brightest towards that direction. | ilc wrote: | For a programmer: Coding is like being fluent in a | spoken/written language. | | Some of us are even polygots. | | But really... As you go on in life, what you do, and why you do | it matter more... because everybody knows how. Duh. /s (But | this is really the way of thinking.) | wppick wrote: | The same is true in other industries. For example, most of the | cooking in a professional kitchen is done by the more junior | cooking staff. The head chef doesn't actually cook much, but | handles more logistics like the ordering of the food/wines and | dealing with suppliers, planning the menu, maintaining a high | level of service. | alistairSH wrote: | My employer attempts to solve this by offering several | overlapping tracks. | | Engineer (junior through principal) - screenshot of code | | Architect (mid-career through principal) - screenshot of system | diagram alongside code that implements part of the diagram | | Technical Fellow (principal+, considered equivalent to | directors, but still IC) - screenshot of system diagram | alongside overbooked calendar | | Manager (mid-career+) - overbooked calendar, maybe an IDE on a | light day | | And also product managers and business analysts and others. | spaetzleesser wrote: | "overbooked calendar": the ultimate status symbol | mywittyname wrote: | > What makes a senior engineer? | | Nothing in that article. It only means the person (probably) fits | the 8 or so bullet point skills that management has said a senior | engineer needs to have. And it's company specific. | | If you want to be promoted, then either, ask your manager, or | apply for a senior job somewhere else. | | I don't get how these articles get so much traction. They are | like fortune telling, just spout off some non-specific high-level | items and let the audience fill in the blanks. | epolanski wrote: | I don't think the article is as bad as you make it. | | I too find that seniority should involve understanding systems | and business e.g. and the author layed it down nicely. | greatpostman wrote: | In big tech, I see a lot of "senior" engineers get there by | virtue of being on the team 5+ years. Rarely are they | substantially better, but they are very good at attending | meetings, gate keeping domain knowledge, and using their | political connections | bluGill wrote: | They also have experience on what doesn't work. This doesn't | mean they are great at the job, but is often a big advantage | over someone who is otherwise better but doesn't have | experience. | chrisweekly wrote: | > "They also have experience on what doesn't work. " | | This. "An expert is a person who has made all the mistakes | that can be made in a very narrow field." - Niels Bohr | rconti wrote: | I've kind of found the opposite. I'm at a bigger / reasonable | well-known tech company now (FAANG types would probably call it | a 'tier 2 company', and there are rigorous standards for | proving your worth at promotion time. | | It's a huge change from my 25 years in industry at 'smaller' / | less prestigious companies where most promotions happened | because it's the only way my boss could get me a 5% instead of | 4% raise, or whatever. Or in other companies where they gave | you a promotion INSTEAD of a raise. In all my previous | companies, it happened just because somebody gave it to you, | not because you met any real standard. | ZephyrBlu wrote: | In most companies being "rigorous" seems to mean "checking | the correct arbitrary boxes". What does it mean at your | company? | rconti wrote: | There are boxes, for sure! | | There's a rubric of requirements. Technical proficiency, | leadership, mentorship, cross-functional impact. If you | want to be cynical about it, sure -- it can mean you drive | projects just for the impact, you lead internal | conferences, you hold meetings, you mentor, whatever, all | for the self-serving benefits of promotion. | | And you definitely get the whiff of that occasionally from | certain initiatves people take on. | | But I generally find it pretty positive and inspiring to | see how it encourages people to grow, and how it drives the | tone of the organization. For example I've never worked | somewhere where it was so encouraged to take on tasks | outside of your comfort zone. To suck at things, and learn, | and get better -- versus staying in your own little hole | and getting very good at your specific role, but no more. | NAHWheatCracker wrote: | Not in big tech, but most of the senior engineers I've worked | with were hired to the position. | | I agree with your assessment for the ones who were promoted to | it. | lagrange77 wrote: | Some time ago in another HN thread, someone said, that library | consumer vs. library author is a much better metric for | differentiating coder's skills, and i think he was right. | bbarn wrote: | Unless you work for an incredibly benevolent company, "library | author" means you're doing that on your own time, outside of | what provides for your income. | | Many of us are quite capable of writing libraries, and likely | do so in an internal-only fashion, but have no interest in | trying to be the nth new library that accomplishes the same | thing during our free time. | | Skill vs. effort vs. drive are all very different things. | lagrange77 wrote: | I'm not sure, if i get your point. | | What i'm saying is that, from the perspective of an employer, | i'd be rather impressed by someone who can show me one or | more libs, that he wrote and people are actually using, than | someone who was given the title 'senior' by whoever with | whatever motivation to do so. | epolanski wrote: | Even assuming it's great original code for an interesting | problem, I don't think it says much about the candidate and | how he will do in your company. | Cerium wrote: | The library does not need to be public to be authored. In my | experience there are far more people using internally written | libraries to accomplish various goals than writing the | library that provides the leverage. | [deleted] | mkl95 wrote: | At most places I've worked being a senior engineer mostly meant | being patient and being good at countering management's bullshit. | Those two traits can get you far. | bigmattystyles wrote: | I don't want to give the impression that I'm knowledge gating, | I'm not, in fact, one of my mottos is to try to make myself | redundant. Even if I succeed there, more work will find me. With | that caveat out of the way, when you're Senior and paid | accordingly, I agree that day to day you may not be more | productive than someone else, but the pay delta, and it can be | significant is like a retainer. At least that's how I've come to | see it. I'll give you my 40 hours a week, but if a critical | situation comes up, I, the senior, am there, knowing which levers | to pull to resolve the situation quickly. | [deleted] | nitwit005 wrote: | As someone promoted to senior software engineer three times in my | career, in a rather short interval, I can tell you with | reasonable certainty that the title means nothing. | ChrisMarshallNY wrote: | I always take these "If you don't pass this litmus test, then you | aren't an _XXX_ ," or "Only an _XXX_ will pass this litmus test " | articles with a grain of salt. | | In my experience, the litmus test is frequently one that the | author of the article can easily pass, which makes them an _XXX_ | , by default, and the article is really just about how awesome | _XXX_ s are, or the author assumes they have the authority to | bestow the mantle of _XXX_ unto others. | | The word "senior" means "Has more responsibility/experience." | That's about it. It _can_ mean "Manages/directs others," but | doesn't have to be that. It _can_ mean "Is an architect," but | that doesn't mean they are. | | I have watched senior blacksmiths at work (awesome, BTW), and | they got their hands dirty, and their aprons spotty, just like | their juniors. | | I was a "Senior Manager," but was only a first-line manager. The | title was really just there, so I could have an office, and the | folks in Japan would take me slightly more seriously. Banks can | have hundreds of "Vice Presidents," that work in cubicles, and | don't have any direct reports. It's really just a title. | | I'm definitely a "senior engineer," these days, and I architect | stuff, but I don't manage or direct others, and the scope of what | I do, is smaller, because, every time I count myself, it comes up | "1." | | It's really up to each organization to define "senior," and to | set up a professional environment that implements their | definition. | | Litmus tests are fine, I guess. I fail them all deliberately, | because I'm an ornery sumbich. I won't join any club that would | have me as a member. | dim9000 wrote: | Software development is not a regulated field like civil or | mechanical engineering. The term "Senior" is complete BS. I | prefer SDE I, II, etc | rodenmonte wrote: | Why are numbered SDE ranks less "BS" than junior/senior? | epolanski wrote: | Because they are bs faang titles, so in his opinion more | relevant. | dim9000 wrote: | Its all bs, but I prefer numbered ranking since faang uses | them. | revskill wrote: | To me, it's ability to build good abstraction that differentiates | senirority of an engineer. | analog31 wrote: | I think the problem is that the title is a multipurpose tool. It | might signify an actual change of responsibility, or a way to | push a needed salary increase through the approval process. So it | doesn't have a single unifying meaning, even within a single | organization. | JoeMayoBot wrote: | I totally agree with the premise that while technical knowledge | is crucial, it shouldn't be the determining factor of whether | someone is a Senior Engineer. What is also important is the | ability to communicate effectively and mentor other developers. | AlotOfReading wrote: | _Everyone_ should be able to communicate effectively, | regardless of their role. I 'd argue that one of the primary | differences between a junior and senior in terms of capability | is their prior experience and the degree to which the skills | required for their job are developed. | lbriner wrote: | I think there are lots of things that a Senior should be better | at, in fact anything that is part of the job: | | * More emotionally mature | | * More pragmatic | | * More business aware | | * More recruitment aware | | * Better at whatever process you are running | | * More security aware | | * More performance aware | | But more than all of this, ideally there would be an objective | progression ladder to ensure they have actually done all of | these things not just assume they have because they worked | somewhere for 10 years and was called "Senior" | rconti wrote: | Agreed. The "value" of the senior engineer is not that they | write code faster than a junior. The value they bring is that | they level up a team. They hire well, they provide | mentorship, they help the team avoid making time-and-money- | wasting mistakes. | activitypea wrote: | That makes Uncle Bob a junior engineer :^) | g051051 wrote: | > I'm a Frontend Engineering Manager | | So this is a _managers_ view of it. | angarg12 wrote: | Senior Engineer is one of the most abused terms in the industry. | Depending on the company it can mean anything from "literally not | a novice" to "leads the delivery of complex systems involving | several teams". Without context the term has become almost | useless. | zwkrt wrote: | Or even worse: an indicator of time spent in the industry | firstSpeaker wrote: | One of the few companies that I have seen to have constantly | kept the bar is Amazon. I have seen many other who have just | inflated the titles to keep folks happy. | wildfire wrote: | The bar is per-team at Amazon, which is one of the bug hiring | problems. | | Worse, your title - and your quality of life at Amazon - is | entirely dependent upon what your manager thinks of you. | | It matters _way_ more than at other companies. | knightofmars wrote: | A "senior" title often equates to a pay range in companies. | This can lead to employees that want/need to get paid more (and | leadership wanting to retain/hire them) getting a senior title | without the expected experience. | naet wrote: | My title was recently changed to Sr Software Engineer. I only | have about 3 years of experience (though I would say they are | some good quality years spanning a ton of different properties | and projects). | | I just happen to be at the top of our small (less than 10) team | of in house developers, so tricky things are escalated to me | and I do my best on them. | TrackerFF wrote: | I think the title has seen some inflation in the past years. | | When talking with my oldest collogues, those that started out | in the 70s, "Senior Engineer" was apparently reserved for, | well, very senior engineers. People could have worked 10-15 | years, before getting promoted to that. | | These days, it's almost something which happens automatically | after 5 years. I've even seen people get angry and frustrated | if they haven't gotten that promotion after as little as 2 or 3 | years. | | But to their defense, A LOT of companies just use the various | titles to place them in the correct salary bracket. I've seen | examples of hiring more junior people than the title would | indicate, simply because they were good candidates / seemed to | have potential. And then they were stuck without salary | promotions for 2-3 years, as their work output didn't | necessarily warrant any higher salary. | | Lots of weirdness in this industry, compared to the others I've | worked in. | ZephyrBlu wrote: | It's because companies got liberal with titles. Probably in | part due to how fast pay has increased. It's seen as | commonplace now, so people expect this fast progression. | 0xB31B1B wrote: | To be fair, in the 70s it was much harder to be productive as | an engineer. You weren't writing javascript, you were writing | fotran, or cobol, or assembly code, or C. Everything was much | less "standard" than it was today, from processor instruction | sets to compilers to system calls to source control, etc. It | took A LOT of work to understand all the arcane knowledge and | become productive. Nowadays, you can read some books, deploy | your code to AWS where it runs with 99.99999999% x-platform | consistency. The benchmark of being a senior engineer is not | "p85 engineer" its "has demonstrated ability to deliver value | at specified scope" and its just takes less time to learn | everything you need to do that now. Can a person with 3 years | XP be a senior? No, they can be a sophomore (think they know | it all but mess everything up), but do you need 15 years | experience to be a true senior, no you do not. | zeroonetwothree wrote: | I don't see why there is so much emphasis on years. I have 15 | years experience myself but I've met people with 5 years that | were clearly superior to me at leading large scale | engineering efforts. | eikenberry wrote: | Skills and experience aren't the same thing. The second | amplifies the first. If you aren't good at/don't like | leadership then finding less senior people who are better | at it is not going to be hard. Fortunately leadership is | only one skill among many that are valuable in engineering. | zamfi wrote: | "Senior" the title is different from "senior" the role. The | former is close to irrelevant; the latter is what's | interesting. | TheYahiaBakour wrote: | Plasmoid wrote: | I've heard it said that comparing levels across companies is | like comparing salaries across countries. | tayo42 wrote: | reading around the internet, people put way to much emphasis on | titles like senior. people also seem to act like there is a | standard for senior across companies. even in a company i've | seen senior titled people doing work with the same scope or | have the same responsibility as junior people. | | ime the only thing you can count on the term senior meaning is | that you're in a different pay band then other levels. other | then that the term is meaningless. | NAHWheatCracker wrote: | At my employer it extends to staff/principal engineers. | | They do the same low-level code work, but I'll hand it to | them that they are some of the best engineers at the company. | | The difference is that principals left the company for a | couple years to come back for the higher pay. Staffs were | promoted while staying at the company. | epolanski wrote: | So does any corporate and non-corporate title since 3 decades. | automatic6131 wrote: | This. I hate hearing people whine about "still a junior | engineer at 25" or boasting that they "reached senior engineer | at 24 after 3 years" or whatever nonsense. It's apples and | oranges between companies. | dgfitz wrote: | To take it a step further, I've been in the industry for | closer to 15 years than 10, and while I am considered | "senior" I don't consider myself as such. 15 should be the | minimum cutoff. Spending 3 years doing __literally anything__ | doesn't make someone an expert. You could argue 10 years but | I'd argue back. | epolanski wrote: | I would argue time is a poor metric. | | It's about the value you are able to bring, not howmany | days you worked. | deathanatos wrote: | It's not direct time, but experience, which is incredibly | hard to measure. I've met several engineers that have | been working for years and years ... and yet seem to have | little to no experience. Things like, "why are you | writing a parser, in a language you claim to be an expert | in, for a language for which the language you're writing | in has a parser in its standard library?" | | I'm less clear on if it's value. There's "direct value", | like, I literally helped make $X, or so. And then there's | "what my employer wants done", which might very well be | worthless. For the latter, I could argue that I am | valuable to them, from their perspective, as I am doing | what they _desire_ ... even if ultimately it is not worth | something. | | That is, I've plugged away at many valueless projects, | things that the company wanted done, but ultimately won't | bring value. Nonetheless, I can bring my experience to | bear on the problem and move a mountain or two. | | The times I _have_ brought value have usually been quick | and unexpectedly. Like, just by being aware of what 's | running & catching a $20k/month mistake. Or understanding | how something is done, to unstick / enable someone else. | But it is often not part of my goals, what I am doing | day-to-day, or something I get to claim/matters in | performance reviews. | | And sometimes, you don't get to know what your value is. | I remember at one company we had this really onerous | customer: completely custom thing was built for them, it | was always lots of back and forth, weird corner cases, | just lots and lots of custom stuff. We thought we were | mostly bending over backwards for someone for little | gain. Turned out they paid quite well, but for the | longest time, we had no idea: finance didn't share that | information with us. And this is true of most companies | I've worked for: the financial details are completely | opaque, unshared, and I couldn't tell you if I'm bringing | value or not, ultimately. | orangesite wrote: | As long as we continue to associate systems-level thinking with | high status and ridiculous remuneration it will be impossible to | identify the folk with the skills to actually do this work. | p1nkpineapple wrote: | As a junior with the regular high aspirations for career growth | to Staff engineer/leadership, am I doing myself a disservice by | orienting myself early in my career around "Systems thinking" | (NFRs, requirements analysis, testing, observability etc as the | article discusses), instead of focusing on the technical "code | quality, best practises and cutting edge qualities"? | hosh wrote: | They synergize together. | | As an example, what's beyond code quality is writing library | code where doing the right thing is easier, and is aligned with | the system. If, for example, one uses a design pattern whose | anti-pattern is misaligned with the overall system, then it is | easy to do the right thing locally and the wrong thing | systemically. | | As another example, the "best practices" are actually sound | engineering principles applied specifically and locally. In a | different architecture, with a different constraint and use- | case, how those principles applied may sometimes look different | than what "best practice" says, but not so strange if you | understand the engineering principle underlying the "best | practice". | | Lastly, I would say, "systems thinking" always includes people: | the people writing the code, the people making sure the | infrastructure is running, the people using the system as end- | users, the people supporting the users, the people running the | business, the people paying the business, the people depending | on the technology. Incorporating that means dipping into a | product perspectives where people talk about things like, ux, | or "job to be done", or "lived experience" rather than | "requirements analysis" or "observability". | 0xB31B1B wrote: | My biggest suggestion to anyone looking down this path is, in | addition to your normal SWE responsibilities, really understand | production engineering concepts (testing, reliability, | alerting, monitoring, running an on call rotation, capacity | planning, etc). At a smaller company being the one SWE who can | do these things in addition to their normal job roles is | probably the fastest skill set to develop to unlock staff | promo. It's less important to be the quickest arcane bug solver | and more important to be the person who can see all of the | problems with a system and work independently fixing them. | CiPHPerCoder wrote: | Not really. | | Systems thinking is broader in scope and responsibility. You're | going to have to cross the rubicon eventually (unless all the | software projects that hire you fail gloriously before they | achieve any significant scale, I guess). | | Code quality, best practices, etc. involve the same values and | priorities as systems thinking, but is scaled down to a bus | factor of 1. (i.e. the code you, personally, write or review). | | Going beyond n=1 requires building mechanisms and guard-rails | to prevent a failure of the individual level from affecting the | larger system in a bad way. Thinking about it early won't | significantly kneecap you from writing good code. | | If it interests you, go for it. | | The only reason you might _not_ want to do so is if it doesn 't | interest you right now. You'll likely get there one day, once a | project you care about scales up enough. | unity1001 wrote: | Being able to understand other people is a big item on that list. | That makes you able to understand the needs and perspectives of | your teammates, other teams, the organization at large, and most | importantly, your user/customer base. | | A larger view of things, considerable foresight are second, but | close companion. They tie into being able to understand people | and things. They give you the ability to avoid things that would | be problems in the long run. And allow you to build stuff that | will last. | | I'd say that everything else trails behind. Technologies come and | go. Fads come and go. Anything can be sorted out as long as you | can build things for the purpose at hand without straying outside | the scope and build them in a way that will last. | egberts1 wrote: | Yeah. When I was tasked as a senior software engineer to choose a | file system for one of our embedded device, I used bonnie+ and | iodisk to evaluate and on a 10GB SDD disk in 2005. | | I gained crazy insights but was unable to published because it | was done on company's dime. | | We call that "Trade Study". | | Good times, good times. | | (This was before Phoronix's popularity) | | What's crazy was that ReiserFS came out ahead for the read/write | data flow composition modeling that we were using. | donretag wrote: | I have found that there is very little difference between a | senior, junior and even intern engineer. The responsabilities are | the same, but a senior generally completes tasks faster and is | paid more. The same JIRA tickets. | | It is not until you get to a lead/architect level that the | responsabilities change. The system building comes into focus. | Test0129 wrote: | Yeah this has also been my experience more or less. Senior | engineers _do_ get some tasks (scope the work, design the | implementation, etc) but generally "building systems" is in | the purview of the principals and architects. I've had some | companies that let seniors do more as they get closer to their | next rank but generally these opportunities are fairly isolated | and triple checked by the actual shot callers. At senior you're | still a code monkey. Just typically very experienced and | capable of managing a small team of juniors. | | > To them, creating software is just one of the steps. First of | all, they question whether the software needs to be built in | the first place. They ask what problems would it solve and why | it's important to solve them. They inquire who will be using | the software and on what scale. They think about where the | software would run and how they're going to monitor whether | it's working properly. They also decide how to measure whether | the software is actually solving the problems it was supposed | to solve. | | Based on this definition I would suggest the author is using | "senior" as a modifier to include all positions above junior | rather than the typical titling. Moreover, the amount of times | I've been given any time at all to actually think about the | system things will run on, or how we will determine if it's | performant, I can count on one hand. If this is the author's | experience he is very lucky to have a company that cares about | end-to-end performance. | didibus wrote: | I believe the article was using Senior Engineer as equivalent | to lead/architect, because at big tech companies like Google or | Amazon, that's what a Senior Engineer is, they act effectively | as team lead/project lead, and as team(or multiple teams) level | architect. When you become senior at those companies you also | start to report directly to the skip level. ___________________________________________________________________ (page generated 2022-09-12 23:00 UTC)