[HN Gopher] Levels of Seniority ___________________________________________________________________ Levels of Seniority Author : arbhassan Score : 183 points Date : 2020-02-22 13:30 UTC (9 hours ago) (HTM) web link (roadmap.sh) (TXT) w3m dump (roadmap.sh) | camhart wrote: | "They know how to give feedback without hurting anyone." | | Should instead be they use tact when giving constructive | feedback. Too many people water feedback down--scared that they | might "hurt" people--resulting in the value of the feedback being | lost. We shouldn't be scared to be honest with people--even if it | means they might be hurt by it. It'll be better for them in the | long run to hear the truth now--even if it's tough to swallow. | Giving this type of feedback needs to come from a place of love-- | a desire to truly help, and should never be done with the | intention of hurting or trying to make them feel like they were | "wrong". | | It should also be added: "They can receive feedback without being | hurt" | tyurok wrote: | Second that. | | Pain is constructive in the right dose, and it's also risky | since you can lose trust if delivered incorrectly. It requires | maturity to give honest feedback and recognize that it might be | biased since we have a lot of limitations on how we perceive | others. | barrkel wrote: | What's not covered here is overlap between what an engineer knows | and what the business needs; and especially knowledge of the | business's existing codebase and architecture. | | If you know what exists and how it's put together (and this can | come from tenure or experience in a vertical) you'll be far more | productive. Tasks require less research and are implemented | leveraging more of the existing design, possibly with a few | tweaks in key locations, where an engineer with equivalent or | even more talent may rewrite or reinvent a whole module owing to | less deep understanding, and actually add less value. | | This can lead to an engineer deserving to be senior in one | company but not so senior in another. It's also a source of | technical debt and risk when employees turn over. Knowledge is | lost and merely hiring a replacement doesn't restore velocity. | Sometimes modules need to be rewritten and replaced to get back | to a good place. | scarface74 wrote: | I've seen this far too often. Theoretically, your pay should be | a combination of what you could get for your same skill set on | the open market plus getting paid over the market value based | on what you bring to the company based on your domain knowledge | and the relationships that you've built that allow you to be | more efficient than someone off the streets. | | If you're not careful, your marketable skills will become out | of date, but your salary keeps increasing because you're very | valuable to the company. Then when the company lets you go | after a decade, you will be out there competing with people | younger than you who have kept up to date and complaining about | "ageism". I'm 45 FWIW. | arcanus wrote: | This is a good read. Anyone have recommendations for reading on | the next steps past 'senior'? This is called various things, like | principal engineer, fellow, etc. at bigger organizations. | | Some people's careers might take them to the point where they do | not write much code, and act as a key interface between | executives and programmers. If they aren't a manager and can | still be on the IC track, where they provide technical | leadership, coaching, vision, etc. | hirako2000 wrote: | When a senior engineer sits on that role for too many years, | the promotion is honorific (and jumps in salary band and | benefits), or its a way to reward a very valuable senior | engineer before he hop to another job. At least that's what | I've seen in large organisations where senior has actually | become a mid level engineer. | | The tiers make me laugh sometimes, as the titled fellow, | principal, distinguished, or evangelist are attributed to a | few, sometimes even with the "senior" prefix added to those | titles. | [deleted] | ath0 wrote: | There are a bunch of great references for career ladders, | broadly speaking, that discuss the rollout process and what | each level means for that company. The best not only say | something about the levels, but about how the levels are | interpreted in line with that company's culture, whatever it | means. It's very hard to get to levels beyond senior as a pure | generalist: you're typically going to have to have worked on | projects with significant, company-wide impact, and that | usually means (a) doing something unique within a domain and | (b) working with many others, in different types of roles, in | your company, in order to have that impact. | | Two good intro readings on career ladders: | | https://labs.spotify.com/2016/02/08/technical-career-path/ | http://dresscode.renttherunway.com/blog/ladder | tyingq wrote: | My experience is that the fellow, principal, distinguished, | etc, positions are almost always appointed positions. So | there's little you can do, other than find opportunities for | broad exposure, to land one. | alpha_squared wrote: | Deliver industry-changing projects with proven results and know | your industry/domain; this could also be projects that open up | new markets for the org. While I think senior developer is | achievable without domain knowledge of the industry, I fail to | think of a single principal or fellow I've met who did not have | deep understanding of the field they're in. Some had patents to | their name, some didn't; all had 'proven' in some way that | they're indispensable for their respective domain. | mberning wrote: | This is a very good overview. One thing I would add for the | junior and mid level developer is "attitude towards work in | general". One thing I see commonly in many junior and some mid | level engineers is an inappropriate attitude towards work vs | their career aspirations. For example, they will treat their job | like an hourly employee with no skin in the game, and then | complain about raises, promotions and bonuses. You don't need the | best development skills to show up on time, be diligent, work | hard, and be a good teammate. | eropple wrote: | As somebody pretty firmly in the staff/principal firmament | (when not in a management role), I absolutely, positively do | not care in the slightest and at least low-key discourage | people I mentor from having "skin in the game." Unless you have | entire points in the company, "skin in the game" is a handle by | which people can manipulate you to do things that are bad for | you, your health, and your career. It's not that it should be | an adversarial relationship, and one of the really nice things | at my current job is that it it's the first I've ever been at | that _isn 't_ (it's a genuinely good place to work, with | empathic and decent upper management, and they get a lot more | out of us for it)--but most are and it's not a line employee's | fault and it's foolish to not recognize the game being played. | Professionalism doesn't require emotional attachment and it | shouldn't be expected or too generously given. Show up, do your | job, do it well. But make sure you are building towards the | next one and don't let the current one minimize your ability to | get the next one. | | As your manager I might and generally do care about your | personal growth, but it's not because it relates to your KPIs, | it's because you're a person and I'm in a place to help you | improve and I should do that because doing that is good. And, | selfishly, I want to find and build great people to work with | in the future. But at most places, me doing this is in tension | with what my bosses would like me to do. Which is mold you into | a _better employee_ over the expected time horizon of your | employee, irrespective of if that makes you a better developer | or technologist. (I 've learned that pushing people to be | better technologists makes better employees too, but my | experience is that most management doesn't get this and so we | are mostly to be not trusted on that score.) | scarface74 wrote: | I've been in this field a fair amount of time and my "skin in | the game" is not to leave my coworkers hanging. But too often | you hear employers talk about "we are family" and "the mission" | to convince people to work 60+ hour weeks. I do the best work I | can within a normal 40-45 hour week. | leto_ii wrote: | Many of the points made in the article seem pertinent to me, | however I think thinking in terms of discrete levels of seniority | is counterproductive. I also think that there isn't a single | dimension of seniority that we should talk about. | | To give a precise example, in my previous job we had very | hierarchically senior people who understood the industry and the | business side very well and of course knew the company's platform | very well. Oh the other hand, strictly in terms of technical | competence I think they lacked a lot of the basic mental | framework. Their code was atrocious (core code in classes of | 1000+ lines with no documentation or tests, lots of copy-paste), | their choice of technology and methodology parochial and | antiquated (think Java 5-6, Ibatis in 2016 + a lot of in-house | built stuff, no code reviews, no QA etc.). | | This kind of people in some ways would rank as competent | architects and in some other ways as fitting the good old adage | "20 years of experience - the same year repeated 20 times". | 886 wrote: | No one is perfect. No one can check all the boxes. Having the | desire to try to check them all is the key. Quoting the last | part of the article here. | | To me, whoever checks most of the boxes defined in this article | and has a good mindset would make the cut. | felipemnoa wrote: | >>>>their choice of technology and methodology parochial and | antiquated (think Java 5-6, Ibatis in 2016 + a lot of in-house | built stuff... | | Never look at what those guys in the banking industries are | still using, you'll have a heart attack. I hear it is something | ancient like Fortran and such! | | >>no code reviews, no QA etc. | | I find it hard to believe that something like this wouldn't | collapse under its own weight fairly quickly. | DenisM wrote: | The evidence you supplied suggests that "this kind of people" | can tell what's really important from things that are not | (either outright fads or not applicable for this particular | business), and they have a track record to show for it. | | This was a great opportunity for you to re-examine your beliefs | in, for example, necessity of QA [1], and learn when and how to | save a lot of time by not writing tests yet achieve business | goals for stability and continuity. Instead the lesson you took | from it was "20 years of experience - the same year repeated 20 | times". | | [1] It's not too late though, the knowledge is out there | hinkley wrote: | I don't really have a term for this, but I kind of prefer the | 'webtender' model of project management. It shows up in | volunteer work quite a bit, but sadly not often in software. | | Webtender tells you what you can make with the stuff you've | already got. It tells you what you can make with just a few | more easily acquired ingredients. | | A lot of companies seem to get invested in the Realm of the | Possible. Somewhere out there, all of the problems we want to | solve have been solved, and we want to combine them together to | solve all of our problems at once. | | It's kind of cruel, if you think about it. You're asking your | people to exhibit all of the absolute best qualities of the | industry _at the same time_ , and you often see bad managers | ride their people into the ground if they don't manage it. | | I've had a few rather memorable disagreements with people over | the years about who we should fire and who we should keep. I | don't care if you're the best programmer out there. I care if, | within the tasks that need to get done, that there are enough | tasks that I can trust you will do well and a few you can | almost do well (growth opportunity) without monopolizing the | work I want to assign to others. | | I would much rather get rid of the people who are pretty good | on the median, but when they fuck up, they aim for the stars. | The former group knows their own strengths (or at least can be | convinced of them, sometimes). They're a known quantity. No I | won't promote them, but when they walk into my office looking | like they're frustrated, my first thought isn't, "Oh shit, what | did you do now?" | cle wrote: | It's also illustrating that we engineers love to nitpick over | stuff that ultimately doesn't matter all that much. You know | what's way more important than short functions and programming | platitudes like DRY? Understanding the business, system | architecture, and how to deliver fast in the context of what's | already built. | hinkley wrote: | We discount logistics a lot when we have conversations like | this. | | One speaker years back (possibly before Scrum darkened our | doors) disagreed with the Tech Debt analogy and asserted that | we're talking about wear and tear. | | At the end of the day, making a change that doesn't cause any | strong feelings is much cheaper than one that does. A lot of | these supposedly aesthetic, nitpicking conversations are | about not feeling a sense of dread when you have to look at a | piece of code. I want to say that 'dread is the precursor to | procrastination," but I think there are some psychologists | who want to claim that procrastination _is_ dread. | | If you've ever seen anyone argue vehemently about how they | can't do two 4 hour tasks in a day, it's probably because | they know that one of those tasks is going to wipe them out | and they'll spend the rest of the day recuperating, doing | menial work or even goofing off. | | If I get to control the narrative for a project, which isn't | often, then eventually I will remember the roads that have | always worked for my teams. That projects go better when we | feel like we're incrementally getting more productive all the | time, instead of slowly calcifying. That our tools require | progressively less vigilance, our code becomes less scary | _and_ we become less afraid of it. We talk about what we can | productively accomplish instead of what 's theoretically | possible to pull off. We leverage that to throw in cheap | features people didn't even know they wanted, or solve | problems they did not know they have (twenty minutes watching | a user is more informative than days of interviews and a | mountain of surveys). | | That last bit may be more important than even I realize. How | proud can you be of something you were ordered to do by | someone you don't even interact with every day? I've never | really thought of it that way before but I sure am now... | aero142 wrote: | You picked the easiest strawmen out of his examples to knock | down in short funtions and DRY. The other examples were, no | QA, no code reviews, which are things that I have seen first | hand, combined with the other complains, to code that is | always in a half broken state. The code is very difficult to | change so you spend all of your time on support cases. Re- | writes have their own pitfalls. Ultimately, developer | retention and hiring suffer because no one wants to work on | these products. The institutional knowledge leaves through | attrition and it takes too long for new developers to learn | to be productive in the code base. Eventually the quality of | the product declines until customers leave. So, even highly | profitable products die because of poor engineering | practices. There are certainly engineers that get caught up | in know-it-all platitudes, but I've personally seen more | profitable products fail because of poor engineering | practices than good engineering practices fail because of | poor business sense. YMMV, but in my experience, good | engineering is more rare than good business ideas. | JamesBarney wrote: | Woah my experience is completely different. I've never seen | a product fail because of poor engineering practices. And | I've seen plenty fail because of business issues. | | I've worked mostly on enterprise software, many of which | had awful code bases but we're wildly profitable. | hinkley wrote: | My best bosses and I think every mentor I've ever had | (some were both) talked about what they value, where they | want us to be, instead of micromanaging us on how to get | there. | | Some business strategies are antagonistic to this sort of | work, others are in effect the inverse (as in, doing the | exact opposite). | | I think the saddest 'joke' I tell is that I watched our | industry, during the XP era, look at the numbers and | decide that most of our problems come in during the | requirements phase, and then instead of tackling that | problem, we spent the next twenty years making sure our | side of the house was in order (didn't work out that | great, did it?). | | Why did we do that? Did we think we were going to shame | our business complements into doing better? Some of these | positions actively seek out people who don't experience | shame the way the rest of us do. | | In theory, XP's theory in particular, fast iterations | split up the business decisions over a long time, so the | wreck happens in slow motion and more intervention, | talking, and concrete examples are available to improve | the quality of dialog. | | Then Scrum gets co-opted by the business people, and now | the business side does, indeed, have more time to think, | and what have they done with that time? Found ways to | give the developers _less_ time to think. Oops. | ivanhoe wrote: | Well engineers love to nitpick over stuff that we know will | bite us in the ass in a few years. The most wonderfully | architected set of business rules is of little help if it | takes weeks to debug and it's impossible to refactor and add | new features in future because no one knows how the code | really works (and the guy who did it left long ago), it's | untested and unreadable. Lots of great projects died slow | deaths because of this. | [deleted] | Godel_unicode wrote: | s/know/think | | See also yagni, premature optimization, etc, etc | rootusrootus wrote: | This deserves more upvotes. I have met so many engineers who | do themselves a disservice by overvaluing the esoteric bits | of code that nobody but their team will ever see. The | business doesn't care as long as it works, and soon. Which | isn't to say that you shouldn't sometimes sweat the small | stuff, but you always have to remember that you're working | for a _business_. | theamk wrote: | Only if you don't care about long-term. Those things are not | "platitudes", those are lessons learned from the experience | keeping large systems maintainable. | | (that said, there are plenty of systems where long-term term | does not really matter, as well as cases when good rules are | taken to absurd levels) | k33n wrote: | The real truth is that none of these titles mean anything outside | of a given organizational context. Hilarious that the author felt | the need to add "can give feedback without hurting people" to the | senior engineer bullet list. So much wishful thinking here. | matwood wrote: | > Hilarious that the author felt the need to add "can give | feedback without hurting people" to the senior engineer bullet | list. | | Why is that hilarious? Anyone can give feedback, maybe even | correct feedback, but what is the point of feedback? It should | be to help the person receiving the feedback improve. A senior | engineer should be thinking about the team and not themselves. | This includes their ego. If they are giving feedback to show | off how smart they are in a way that hurts the team, that is | not senior IMO. | BlargMcLarg wrote: | There's some truth in your statement that most people do not | wish to admit and are quick to dismiss as "rebellious, arrogant | juniors". | | I generally see two kind of seniors. The first group is senior | in terms of experience and hard work. The second group got | there only through obligation, working for years without | growing a lot. Unfortunately, I see most management puts a hard | cap on minimum experience before being a senior, so the former | group and the latter group become indistinguishable. Other | problems include Peter principle, where because someone got | promoted to senior, he is now attributed as a good leader, | despite having no experience leading as a junior before. Skills | that are at best orthogonal are attributed to seniority, | despite the fact many junior and medior people may be better at | teaching, leading and mentoring others than their seniors. | Nothing in the track guarantees a senior ever has to practice | or show their excellence in these skills, either. | | Furthermore, most people aren't doing interesting things. They | get a revolutionizing experience at work maybe once a month at | best, if not far longer. Couple that with an echo chamber and | suddenly, they believe it is normal to take 3 to 10 years to | become an expert on fairly trivial domain knowledge. We're not | talking about top-of-the-line C++ programmers, ML experts, | people driving innovation, veteran software architects or | whatever. We're talking your average CRUD web programmer who | did some backend, maybe some frontend. We're talking people who | believe one can only be senior being able to deploy an | application from scratch into a new environment, thinking this | takes at minimum 3 years to learn when in reality, you could | pick up a guide how to do this today. The only real thing | you'll miss out are office politics and navigating in a group | setting. The former is so volatile and context-dependent, you | might as well learn it on the fly or wait until 15 years have | passed by and pretty much any possible situation has come up. | The latter is severely overstated in difficulty and most people | will pick this up in no time, unless the team is dysfunctional | to begin with. | [deleted] | tillmannhgl wrote: | I think the idea of having three (or four or five) buckets of | seniority is not applicable for modern work any more. Leveling is | too much about hierarchy and too less about the actual impact. | Beyond leveling is something what doesn't need to be defined in a | word, but is more about specific knowledge or competence that is | needed to solve a problem. | prepend wrote: | This is why I like small organizations where compensation can | be tied to impact. | | In large orgs, there are so many positions that are important | but have unclear or many levels removed from impact (HR, audit, | sanitation). | | I've also encountered many people who aren't motivated by the | mission, but rather have other motivating factors outside of | work and still want to progress. I think having some systematic | way to include and grow people who don't have natural | motivation for impact is important, for large orgs. | Spooky23 wrote: | Sure it is, you gate underperforming people at the low bands | and attrit them out. | | That's why in the regular army you don't see 50 year old | Captains. | seanmcdirmid wrote: | So promote until the Peter principle is activated? | Spooky23 wrote: | Usually there's a title standard at a particular band. A | principal engineer is not just performing tasks for | example, they are providing engineering/technical | leadership. | | Junior/Normal/senior is a change in rank or function. It | makes sense to provide salary steps with respect to tenure, | but not changes in duties. | hurricanetc wrote: | For the military... not really. They have a concept called | "high year of tenure" which limits how long a soldier can | remain in a rank without being promoted. You are meant to | advance and if you don't advance you will be separated out. | | For example if you join the Army as a specialist (E4) you | have 8 years to get promoted or you're essentially kicked | out. | seanmcdirmid wrote: | Isn't that the same thing? You eventually reach a level | where you can't perform at the next and become classed as | incompetent. | | Though I would think for enlisted this happens much less | than officers. | gowld wrote: | No, you get promoted to level of competence, then fired | after several years _instead of_ becoming incompetent. | yibg wrote: | I do wonder about the wisdom of this up or out (to some level | usually) some times. For example, you can't be SDE I at | Amazon for 10 years. But why not? If I'm doing a good job as | a SDE I, I'm happy with the job and pay and just want to keep | doing it what's the problem? | beefalo wrote: | Because they want people who will grow that they can | promote because it's really expensive to hire SDE III+ | yibg wrote: | I don't think internally promoted SED III+ are any | cheaper than externally hired ones. If they were they'd | soon go else where anyways. | cwp wrote: | It's really expensive to _hire_ at that level of | seniority - even if the salary is the same once they | start, it also takes a lot of time and money to get them | to that point. | bradleyjg wrote: | It's hard to manage mediocre performers. Low performers you | get rid of, and probably no one is too upset because even | if they were well liked everyone recognizes that you can't | keep around low performers. High performers are obviously | not an issue. But for mediocre performers, you risk the | boiling frog where they slowly edge towards low performance | but it's hard to point to anything specific. And by | sticking around forever they make a lot of allies and | become increasingly hard to get rid of. | yibg wrote: | What about high performers that don't want to move up? | I've known a few really good engineers that just don't | want a lot of stress and don't care that much about the | extra pay. They just want to do their work well at the | level they are at and get paid. | | I'm considered "senior" but the work in the last half of | my career has certainly been more intense than the first | half. Sometimes I think it'd be nice to go "back" a few | steps to a job that I'm certainly very comfortable doing | without too much effort and get paid decently well. | bradleyjg wrote: | That's definitely a downside to an up or out system. In | other industries there's a "mommy track" that allows for | stepping back without stepping out but I don't know of | anything like that in tech. | closeparen wrote: | Impact based leveling is deeply flawed: it privileges those who | are assigned to work on the best products with the most legible | success metrics. That's how you get the kernel hackers who keep | the lights on perpetually at entry level, and the people who | were told to scaffold CRUD apps in the right place at the right | time treated like rockstars. (I am the latter by the way). | zdragnar wrote: | It is an easy way to justify multiple pay bands. | | I formerly worked for a company that for a few years referred | to all of the engineers as "rock stars" etc. As the company | matured a bit, that was dropped from all of the top-down type | communication. | | The company didn't actually value the employees any less, and | we were still praised appropriately for good work and / or | solid efforts. The issue was that people simply had to | acknowledge that no, not all of the engineers put in the same | level of effort or had the same natural talents, and pay | disparities couldn't make sense when "everyone is a rock star | programmer". | | Granted, by the time i had left, we only had 3 or 4 pay bands | from most junior to highest job title that still programmed, | but the company wasn't in the west coast and didn't pay west | coast salary either, so the actual compensation gradient was | narrower than what you might find at a FAANG company. | psim1 wrote: | This interesting essay is marred by bad grammar. | | Do you want to rise in the ranks? Learn to write well. | Documentation, blogs, email memos, proposals, etc.--this is the | evidence of accomplished seniority. | samiru wrote: | English might not be his first language. Not mine either, so I | did not notice the bad grammar! | | I have noticed in my own use of English language that after | getting into a level where I get understood well enough in work | situations and such, my language skills have started to | stagnate. It does not help that even I use mostly English in my | daily work, there are practically no native speakers around. | | But I do agree communication skills being part of what is | considered seniority. Also, being able to hold different | viewpoints and communicate those to others could be considered | part of being mature too. | [deleted] | sputr wrote: | His name is Kamran Ahmed and he's from Dubai. | | This comment didn't make you look good. Not even a little. | psim1 wrote: | The point of discussion here is not to make oneself look | good. Do you disagree with my statement? | [deleted] | scarface74 wrote: | English is my first language and I didn't notice any off | putting grammar errors. | | That being said, especially for a non native speaker, I | don't judge their ability to communicate by their ability | to write perfectly grammatically and idiomatically correct | English. It's whether they got their point across. | kamranahmed_se wrote: | I will go through it one more time, thank you! Feel free to | submit a PR though. It's on GitHub | https://github.com/kamranahmedse/roadmap.sh | 29athrowaway wrote: | This article conflates personality traits and attitudes towards | problem solving with seniority. | | It also speaks of overengineering, which is a highly ambiguous | and subjective term that rarely leads to constructive feedback. | It translates to "you are overdoing your job", rather than how | you are overdoing your work. It is not actionable feedback. | | Asking for help is not a trait of junior engineers. Asking for | help in a non-structured way, without providing useful context or | asking for help without making a reasonable attempt to understand | the problem first is something that you would expect of a junior | person. Not asking for help while being blocked for a long period | of time is also a trait of a junior person. Being able to | leverage expertise from team members is a trait of a senior | person. | | Now, about this: | | > They have respect for the code that was written before them. | They are generous when passing judgment on the architecture or | the design decisions made in the codebase. They approach | inheriting legacy code with an "opportunity mindset" rather than | a complaining one. | | No. Here the author is conflating seniority with blind | personality cult loyalty. If something is suboptimal or wrong in | a problematic way, then just go ahead and say it when the | opportunity arises in the best way you can. | | Even in the early days of software, people realized the | importance of good engineering practices. If your legacy code | doesn't reflect that mindset, it is not worth praising. The | article author himself recognizes that dumping work on other | people is a trait of junior engineers, but applies it | inconsistently in this case. Senior maintainers may be able to | identify legitimate tradeoffs, but when a code base is | consistently bad, especially when it was already bad in its | historical context, don't expect a lot of praise for the code or | the authors. | zackmorris wrote: | I wish that the article mentioned the fourth level of seniority: | graybeard. Bluntly, that's any developer over 40. But in terms of | mindset, it's more like having multiple years of experience in a | discipline spanning 2 or more eras so that you begin to see | solutions outside of the immediate problem space in front of you. | | So for example, a graybeard in the 1990s knew desktop development | as well as the web. In the 2000s it was probably web and mobile | dev, then NoSQL and reactive programming in the teens. Today it | might be digging up old sysadmin knowledge for containerization, | or applying functional programming to big data and machine | learning problems. Maybe the definition gets fuzzier over time | :-P | | The problem with all of this is the danger of being put out to | pasture. I hit an existential crisis last year where I stopped | seeing things in code and started seeing everything like this big | spreadsheet that I had to keep consistent. Satisfying multiple | constraints in very large search spaces started giving me | decision fatigue and I reached a point where my productivity fell | below the junior developer level. Like, I'd be given a ticket to | fix a bug in a view controller and discover that the problem was | actually due to an incorrect relationship in the database schema | from 10 years ago. After awhile, nobody wanted to hear about | refactoring, they just wanted it to work, and we began the long | death march of playing whack-a-mole with technical debt. It felt | like there was nothing for me to contribute, and I burned out. | | Now I don't know if I should continue programming, or try to | transition to being a mentor in a management role, or get out of | the industry altogether and move to something like renewable | energy and build stuff in the real world. I'm still struggling, | so any thoughts on this would be much appreciated. | yibg wrote: | I think it depends on the culture and the relationship between | engineering and management a lot. Good places I've been at | management will create the buffer and time for engineers to | refactor (within reason) instead of just patching things. Great | places I've seen management isn't even the gate keeper. They | help set the objective and engineers decide how to execute. If | that's a quick patch then fine, if it's spending more time to | completely rewrite something then fine too, as long as the | relevant impact is communicated. | justanotherc wrote: | Refactoring is (as Uncle Bob puts it) an implementation detail. | That means management doesn't understand its value, so they | should not be expected to take ownership over it. | | As engineers we need to just do it, and build it into our | tasks. | | A car mechanic doesn't ask the customer if its ok if he | calibrates his widgetometer -- he just does it as part of the | job. The customer has no idea what a "widgetometer" is (neither | do I), so of course they will push back on paying for it to be | fiddled with. | Swizec wrote: | I'm only 32 but I started with DOS and later desktop | programming, moved on to LAMP in the 00's, then SPA in the | 10's, and now going heavily to serverless+JAM. | | Hell I even had a tiny app make it into the official KDE | distribution in high school. And I built my own templating | language transpiler for a custom PHP framework ... | | What does that make me? Whitebeard lol? | keithnz wrote: | well, 40 is a hard cut off into gr(a|e)ybeard society. So, at | the moment you are a "wannabe" ;) | | I think anyone who is pushing 2 decades ish or more of | writing quite diverse software is likely a gr(e|a)ybeard. I | started programming when I was 8, I'm now 48 and literally | have a mostly a gr(a|e)y beard :) | zackmorris wrote: | Well I think the whole pirate/ninja thing is a great metaphor | for hackers, so technically you are a blackbeard. My friend | and old business partner is 3 years older than me but still | highly productive making games in Unity, so I think of him as | a wizard or maybe a whitebeard. I'm just, haggard, so feel | like a graybeard even though I can't grow one. | ThrowawayR2 wrote: | > " _After awhile, nobody wanted to hear about refactoring, | they just wanted it to work, and we began the long death march | of playing whack-a-mole with technical debt..._ " | | This is exactly why I don't work on web stuff anymore, front- | or back-end. Working on products means that, for good or for | ill, one _has_ to care about keeping technical debt down to a | manageable level or the product collapses. | IggleSniggle wrote: | I'm 36 now but didn't start my software career in earnest until | 33. Prior to that I had a lot of leadership experience (as well | as being a software hobbyist). What kind of beard will I be | when I turn 40? | dvdgsng wrote: | neck...? | | scnr | JMTQp8lwXL wrote: | You're right-- nobody wants to hear about refactoring. | Management instead hears "time sink and no additional revenue" | (which isn't true, since too much technical debt reduces | velocity-- but you're the engineering expert, not management. | For a moment, let's forgive their naivete). So when you pick up | tickets, build more time into your estimates. Adding 30% more | time to your estimates isn't crazy, since estimates are often | wrong, and people frequently go over them. This really is a | communication issue with how you package up your discussion of | time allocation to management. Before exiting industry, I would | consider giving this strategy a try. | jaredgorski wrote: | I've seen ex-engineers in management positions (one very well | known and experienced engineer in particular) forget how | important it is to offset technical debt. I think, more than | naivete, product managers just become consumed by feature- | making and feel unproductive if there's not a constant rush | to hand new features off to engineering (which are then | rushed to release). | heymijo wrote: | > _I've seen ex-engineers in management positions...forget | how important it is to offset technical debt_ | | I see this across industries. It seems easy for former | insiders to lose the ability to empathize with those in | their former positions. | | Another example: teachers who become principals. | kqr wrote: | I think some part of this is that technical debt is | invisible to the people that don't directly deal with it, | so it's easy to underestimate how much of it there is. | | We, collectively, need to get better at communicating the | cost of the technical debt we face in each project. I | stress that this is a two-part conversation: the engineers | need to get better at explaining the amount of it in terms | that matter to the end user, and management needs to learn | to understand what the engineers are trying to say. | | Let's also not forget that the engineers are the ones who | produced the technical debt in the first place. The earlier | it can be identified and weighed against other business | desires, the better. Speak up about it not only once it | sucks but also when it is created in little pieces. | leetcrew wrote: | my charitable take is that they don't forget, but they have | a hard time explaining to customers why the next release | has fewer new features. "now with fewer crashes!" isn't | really a good marketing pitch. | kqr wrote: | It's a fantastic pitch to the existing customers who have | suffered through those crashes. | JamilD wrote: | When OS X Snow Leopard was announced, this was the intro | slide: http://2ig18m1zutag3bjpoclbo8am-wpengine.netdna- | ssl.com/wp-c... | animesh wrote: | I always hear one of the two things when I say refactoring. | | 1. We will see, if we have time. | | 2. Why is it not written better the first time? | | The first option is mentioned by managers who have been | developers before and understand stuff like this, but need to | balance the delivery aspect. | | The second option is said either by clueless managers and | senior developers who think an all-encompassing upfront | system architecture/design would have been the solution. I | can talk to the senior developers about it but I don't know | how to respond to the clueless managers yet. | | Edit: s/hear two/hear one of the two | invalidOrTaken wrote: | I don't know, but do you have a blog? I struggle from this too. | Right now my solution is side projects, but I can only do this | because I have very low expenses. | diN0bot wrote: | https://roadmap.sh/backend - I notice that this doesn't contain | anything about understanding abstraction, abstraction barriers, | managing complexity in problem v solution spaces, identifying "as | simple as possible but not simpler", etc. I don't even mean | design patterns or OOP, though those are nice applications. How | things have changed. It's like how there was a time when physics | was witnessable visual and tactile grappling with the world | around us, and now it's become extreme math: the "programming" | joy of yore has been replaced by webdev legoing. | kamranahmedse wrote: | Thank you for the feedback. It's still a work in progress. It | was mainly moved from the repository[0] and needs to be | updated. Plus it is lacking in a couple of other sections also | which we plan on improving. Please feel free to leave your | feedback and suggestions in the form of issues on the | repository. | | - [0] https://github.com/kamranahmedse/developer-roadmap | top_kekeroni_m8 wrote: | Senior level developers are usually people with excellent domain | and business knowledge. How does one get a senior programming job | without knowledge of the field? I might consider myself a senior | in my current job, but I wouldn't necessarily call myself that | when applying to a new field. | [deleted] | vjeux wrote: | There's usually a "ramp up" period where you get to learn that | knowledge. As you get more senior, that period gets longer. | | You also have to develop your learning skills. How do you | identify existing people with knowledge and be able to learn | from them. | Jestar342 wrote: | IME autonomy is the primary measure of seniority. If you need | mentoring, or are completely uncomfortable being told "I don't | know, can you figure it out please?" then you definitely have | an opportunity to grow. | | There's a third kind of learning in software. The first two are | technical and domain, the third is abstract application and | adaptability of your skills. That latter one _only_ comes from | experience. How do you efficiently learn both tech and domain? | Can you identity waste (time and /or resources) early? Are you | resourceful when seeking information? Are your questions and | discussions phrased in ways that maintain direction and | brevity? So on. | BlargMcLarg wrote: | >IME autonomy is the primary measure of seniority | | What if you're autonomous by heart, but the software is so | huge and poorly documented, as well as having lots of | bureaucratic rules and gripes, that you pretty much can't be | autonomous? That's a reality for many developers, junior or | senior. | jasonpeacock wrote: | The idea that you can't be anonymous in such a situation is | a "junior" attitude. | | The "senior" attitude would be to find ways to achieve | autonomy _and_ improve the situation. They would either | succeed or determine the company doesn 't actually want a | senior person in that role and move on. | | In talking with senior people who have been in such | situations, you hear stories about their valiant efforts | with partial or full results. When I talk with junior | people, you hear about complaints and wishes but little | action beyond their own work. | scarface74 wrote: | "Either change your environment or change your | environment" | | If you are truly a senior developer in any major | metropolitan area in the US and kept up with the market, | it shouldn't take that long to find another job. | BlargMcLarg wrote: | Sounds very "no true Scotsman" and people are taking this | way too senior vs junior. If you are a junior wanting to | become a senior or prove themselves as being more than | junior, but find yourself in scenarios where management | isn't actually asking for a senior but a rockstar, | domain-expert medior going under the title of senior, | what do you do? Continuously hop jobs until you get | lucky? Wait until you finally rack in enough years so | society deems you worthy of senior? Most situations I | find myself in don't want to be fixed. Trying to take | charge comes across as trying to tell the driver how to | drive, or take the wheel myself, when its their car we're | riding in. And using my own car is akin to starting my | own company or going contracting. | | >The "senior" attitude would be to find ways to achieve | autonomy and improve the situation. How is this a | "senior" attitude anyway? This should be the _default_ | attitude of any self-respecting employee, and I | personally had this mindset from day 1 of my career. Who | in their right mind wants to be either dependent or not | make their life better? That 's not junior, that's lazy. | dasil003 wrote: | The needs of a senior engineer vary by org and culture. | It's only a "no true Scotsman" thing if we insist that | there must be a single objective definition, but such a | thing is a total myth. I've hired devs with the senior | title that barely kept up with college interns. Similarly | I've seen folks with 5+ years fail to meet expectations | for baseline engineer with clear coaching and PIP over 6+ | months, leave the company and land their first "senior | engineer" a month after being fired. I've seen senior | google engineers who failed to thrive in an open-source | stack since they were used to being hand-held by Google's | internal tooling and wealth of expertise they could turn | to for any issue that was outside their immediate | wheelhouse. | | Within a company it's possible to have some standard, and | a lot of companies work very hard to make their levels as | objective as possible, but even then it's incredibly | difficult to reduce a large set of diverse individuals | working on diverse projects with diverse skillsets down | to a single number. | | All that said though, it doesn't matter how good your | technical skills are, if you can't unblock yourself with | cross-functional efforts, or figure out a way to optimize | a bad situation, you will not be considered for the fast- | track in most large engineering orgs. If the situation | you find yourself in is truly intractable as you suggest, | then the senior mentality would be to cut your losses and | find a new situation. | scarface74 wrote: | The code is the documentation. If you can run it through a | debugger, you can figure out what it does. You may not know | _why_ it was written that way. But, someone in the | organization knows. | | Edit: corrected poor phrasing | chipuni wrote: | You mean: Someone who used to be with the organization | knows, but they were let go three generations ago when | the management fired the developers to move development | to India, then fired that outsourcing organization to | move development to China, then fired the China team and | brought you in as a temp. | scarface74 wrote: | Then you assume the source code is the spec. If you are | brought on as a temp even better. You're probably being | paid either as a 1099 or W2 contractor and thus are | billing by the hour. You get paid for trying to | disentangle the mess. | saagarjha wrote: | > But, someone in the organization does. | | ...if you're lucky. | Scene_Cast2 wrote: | > but the software is so huge and poorly documented | | This is the case in FANG companies. The expectation is that | you figure out how to effectively find the info (whether by | finding the key people, reading code, etc). Since finding | info takes so much time, it's also expected that you make | good judgement calls on _what_ info you research (as you | cannot be proficient in the entire codebase). | | As for development - same thing goes. You find & form the | right partnerships and have convincing enough arguments | that people work with you on a project. Finding people that | also benefit from your work is called "alignment" (of | objectives). | blevin wrote: | You know how a lot of engineering comes down to making good | choices about trade offs? Could be speed vs memory, could | be which language or API to use, could be keeping it simple | vs anticipating likely future needs. Same thing goes for | working with an organization or codebase that has sub- | optimal aspects. You think about and pick which, among many | axes, is the most impactful thing to push on and you just | do it. If the software is huge and poorly documented, write | the docs you want to see for the parts you work on. If it's | a big tangled mess, pick somewhere to start unwinding and | just find a way to make some sort of progress. If you do | this, and you have a healthy org, it will become a natural | reference point for others about how to do things well. | | If you are instead saying that you feel no hope that work | will be valued or recognized, you need to decide either to | do it anyway (because you are someone who's going to think | and do the right thing, ie, lead) given the imperfect | reality we live in, or you can decide to find a healthier | org to work in. By healthy, I just mean more functional and | well organized, and thriving in a field of sufficient | resources -- similar to what you'd think of in a healthy | biological organism. | | So you might feel constrained by the existing language, | build systems, release process, etc compared to working | fully autonomously, on the other hand you can accept them | as they are, gently advocate for ways they could be | improved, but spend most of you energy on the things you | can directly affect. It's like gradient descent -- push | every axis towards improvement but push hardest on things | you can improve the most. If you do this over time and | don't silo away too much, you will naturally gain more | influence over time (again assuming a reasonably healthy | org). | kaikai wrote: | A pattern I see over and over is good engineers doing | exactly what you suggest, writing those docs, filling in | the communication gaps, and then being told they're not | "technical" enough for their role, or a promotion, or a | raise. | | It sounds nice in practice, and I really wish it were | advantageous in more places, but there's a real risk. | That assumption that you're working in "a reasonably | healthy org" is rarely safe to make. | darkerside wrote: | This doesn't line up to me. We they told that by a | technical manager, or non-technical manager? | | I don't think a technical manager would ever make that | statement, and I don't think a non-technical manager | would care. | enra wrote: | I think in that case it's still a case where as a senior | you should figure out how to be most effective in that | situation, push for a change, take leadership and convince | others. | Benjammer wrote: | >push for a change, take leadership and convince others | | Oh yeah just stage a grassroots political takeover of the | engineering team, no biggie, I'll get right on that. | Doubt anyone will have any issues with that. | jasonpeacock wrote: | That's exactly what senior behavior looks like, and is | what propels you to the next level. | Qasaur wrote: | This is also, in many companies, what the lead up to an | internal blacklisting looks like, especially when said | company has a dysfunctional technical management. | Entrenched players (competent or not, mostly the latter) | who may have been involved in the original iteration of a | software project and/or architecture in many cases do not | take too kindly to someone who is willing to rock-the- | boat and challenge their authority. | | I'm a big believer in doing the right thing but all I say | is tread carefully because you can and will get burned if | you do not take into account the dynamics of a company's | internal politics. | darkerside wrote: | This is absolutely correct, and so is parent. Like any | ambitious endeavor, done well it leads to success, and | done poorly to disaster. | prepend wrote: | That is quite literally what senior developers need to | do. Not only performing well, but convincing others of | the soundness of the design. This may involve a mutiny. | | Some of the best changes I've seen took this path | (client/server to web; prem hosted to cloud; n-tier to | API) since the entrenched engineering team was not making | appropriate design decisions. | [deleted] | humanrebar wrote: | Or you find another avenue to address the same concern. | Or you find better evidence to support your position. Or | you mitigate against bad priorities and be patient until | it's obvious that the bad decision isn't paying off. Or | you talk to different people to see what you are missing. | | Or you find another problem or assignment without this | category of problem. | | If you tried all that and still aren't making an impact, | go pitch that story as you apply for a position with more | empowerment. | idoby wrote: | The actual content of the roadmaps doesn't seem to be in the | GitHub repo so I can't open PRs to correct typos. | kamranahmedse wrote: | Hey, everything is there at | https://github.com/kamranahmedse/roadmap.sh/blob/master/cont... | lmilcin wrote: | I only recognize difference between junior/senior levels. | | My definition of senior developer: | | - Senior will not be "stuck" with a problem. They recognize there | is somebody to get help from and they will seek it. But they can | also function when there is no person to get technical help from. | They will dig, and dig, and dig, until they finally solve the | problem. | | - I can trust the solution to be usable even without supervision. | | - They will have minimum standard they will enforce around them | (ownership). Ownership for me means they will look for things | that are not right and act on it, without being specifically | instructed to. | | - Is adult in behavior, can recognize and control their emotions, | can work with other people, recognize and deal with communication | problems. | | From my perspective, people who have huge technical knowledge and | experience but can't be trusted with tasks, can't be trusted to | not get conflicted with the team on the first possible occasion, | are not honest with their results (hide problems), will sacrifice | good of the project because they just have to test that new tech | -- all these people are junior devs for me. | INTPenis wrote: | Everyone's talking so positively about seniority but I've seen it | backfire horribly. | | I am sure to catch backlash for this next statement but a lot of | times it seems that people with kids stop caring. Which is only | natural, understandable, because biologically something has | arrived that takes all precedence. | | But to me as an outside observer and co-worker I see a person | stagnating. | | I've had to teach senior architects not to send private ssh keys | to each other and instead use public keys. How to do basic naming | schemes for servers. And those are just two "timeless" examples. | I won't even mention all the modern tech they ignore because they | haven't cared about their profession for the last 15 years. | | Edit: For context I am mid 30s and these people are late 40s or | early 50s. I am not stupid enough to think I can avoid this in | the future. | bpizzi wrote: | I'm not really sure it has something to do with having | children. I would say it's much simpler: either you care, or | you don't, whatever is your current age. I'm pretty sure those | 'senior' architects we already that reckless back in their | twenties. | dancek wrote: | That's weird. I find people with kids care more about personal | and professional development, and are more diligent in their | work. | | This might have to do with the environment I'm in (7,5 hour | days with almost no overtime; recruiting motivated people). | | I also personally feel I've become more responsible in all | areas of my life after having kids. | | Edit: I'm mid thirties too. I find the least responsible people | to be those in their 50s with no kids. But I've only met a few | who remained developers; most either have kids or switched to | management. | yibg wrote: | I've observed the same. Some of the most productive engineers | are those with kids. Difference is they focus on getting | their work done and doing it well (so they don't get paged at | night for instance) instead of chasing the new shiny, or | being the hero. | vsareto wrote: | At least one conclusion from this thread is that there are | camps of people with different beliefs, and you're senior | to one camp, but not another. A productive engineer, or | not. | | Even if you take this feedback to heart, you have a limited | sample set of signals. Do you average them out, or do you | only care about what one particular camp said (the camp | that signs your check, perhaps)? Which camps get weighted | more heavily? | | I don't think there are any real trends to observe yet. The | field is too volatile with its labeling to really take | seriously any kind of prescribed career plan to seniority | that lasts beyond 3-5 years. It's also why we repeatedly | test people in interviews. | yibg wrote: | I think the reality right now is people go to the "camp" | where they fit more comfortably. Older engineers with | kids that want to work their 9-5, get work done and go | home gravitate towards companies that are friendly to it. | free652 wrote: | I doubt it's stagnating, it's just they never were good to | begin with. Personally I am not stagnating yet (mid 40s), but I | have seen mediocre people getting promoted to architects and | the only thing they can do are high level design presentations | without any value. | | They are most likely good speakers than have any technical | skills. | angarg12 wrote: | Might you be mistaking seniority with 'tenure' or years of | experience? | | In my company simply staying around long enough doesn't make | you a senior. You need to demonstrate that you are working at | the next level to get promoted, and the guidelines for each | level are well defined. | | We also have a development plan program to coach low performers | into either improving, or leaving the company, so the chances | of someone getting promoted and then doing bad work is | diminished. | dasil003 wrote: | Before I had kids I'd regularly work 12+ hour days. Afterwards | I am much better at time management. This has nothing to do | with caring about my work (which I do to a fault). It's about | realizing that raw hours do not necessarily make an engineer | more effective, and achieving big things is a marathon not a | sprint. | inertiatic wrote: | Competent people stop caring once they don't have anywhere to | go, career-wise. | | Incompetent people stop caring once they're sure they won't be | found out. | | Kids have nothing to do with it. | pengaru wrote: | > Kids have nothing to do with it. | | Kids do tend to consume time which may have otherwise been | used for work or work-related personal development. | | Time is finite, it's not just a binary matter of caring vs. | not caring, it's also higher priorities displacing lower | ones. | inertiatic wrote: | Kids change your life. | | Whether they use up your energy or they force you to | reevaluate and drop unimportant things to focus on what | matters, depends on your individual experience. | | For myself, having a child made me extremely career | focused. | zoomablemind wrote: | This may be also influenced by the selection criteria (or | culture in other way). Basically, it's about those "who | stay". The reasons to stay in a stagnating org could be | diverse, but the attitude for change is often "lay low". | Reasons to stay in "more with less" org are kind of a gamble, | quite unsettling for anyone, let alone with kids. | | In general, people would not care when they feel having no | control over process and result. Just like when some other | forces move them in whatever direction, like when riding | downhill, why to spin the pedals? | rglullis wrote: | Attributing the perceived lacking performance of people to | having kids is just another way for ageism. | | > I've had to teach senior architects not to send private ssh | keys to each other and instead use public keys. | | This has nothing to do with seniority, just ignorance. And | ignorance knows no age. | | > How to do basic naming schemes for servers. | | Now this is something that I would understand why someone older | would not care. You know why? Because these things are just | fashions. You think they are stagnating? Truth is, they are | probably just waiting until next week when some bright up-and- | coming 30-something will show then another article they found | online and will try to change ever-so-slightly something just | so that they can feel they are making a difference. "Naming | schemes for servers, really?" | scarface74 wrote: | It should be just the opposite. Now that I have more | responsibility, I care more about staying marketable. I never | want to be in the position where my livelihood is based on a | _job_ instead of having marketable skills and a strong network | that will allow me to get a job quickly if I want /need to. | rachelbythebay wrote: | I know people who have raised multiple kids beyond the point of | them graduating from college and themselves starting their own | families who are still in this industry (by choice), and are | still sharp as ever. | | I've also worked with people who are 25 years old and who have | clearly given up on life or anything more than turning the | crank and getting their biweekly ration of pellets. They live | in fear of being discovered or "found out" and turned out on | the street to sell the Mercury News on the onramp to 101. | | Age, experience, rigor, knowledge, energy level, mindset. Don't | confuse one for any of the others. It's a multi-dimensional | problem. Also, it isn't static. | | I can probably give you an example of a coworker at any | position in that n-way space just from my own experiences, and | that's only with a 25 year career. I can only imagine what else | I'll encounter next. | philjohn wrote: | On the other hand, I work with some developers in their late | 40's and 50's who are just as sharp as those far younger, not | afraid to use new technologies (if they are a suitable solution | to a given problem) and be awesome mentors. | | Assuming that anyone over the age of 45 is "deadwood" is | actively harmful. ___________________________________________________________________ (page generated 2020-02-22 23:00 UTC)