Live data from Hacker News

Things I Learned to Become a Senior Software Engineer

neilkakkar.com

101–110 of 129 posts

Re: Things I Learned to Become a Senior Software Engineer

#101

Earlier quoted context omitted.

>Being a senior engineer at Facebook where your responsible for making sure Cat memes load more quickly, this strikes me as an unnecessarily rude dismissal of the difficulty of engineering at scale this might sound crazy, but some people are actually just good at their jobs and will, naturally, progress quicker than others.

I interpreted that more as a difference in the potential problems you may cause rather than the skills required, as GP referred to "responsibility". If FB goes down, people waste less time online[0], if a guidance system fails people may die. [0] yes, of course there are people whose livelihood depends on cat memes, but I'm making a generic example.

> If FB goes down, people waste less time online, if a guidance system fails people may die.

Goes down yes, but what about a data breach? What if, for example, the location of a woman is mistakenly exposed to a abusive partner?

In my view the distinction between a senior software engineer and not is the ability to see how both human and software systems interact and find failure modes that others may miss.

Re: Things I Learned to Become a Senior Software Engineer

#102

It seems millennial achievement medals have now become job titles. Two years to become a senior engineer out of college is a joke. You only just know how to work in a general sense in that time frame, domain expertise comes much later. After a University degree, you only really know what page in your textbook to turn to when you recognise a problem. I come from a mechanical engineering background and it probably take…

Honestly I've got ten years of experience by now but I have no clue what "level" of seniority I would be at, because I've never worked at a company that had "levels"; you had roles like front/back-end developer, maybe architect, but not really any formal gradations in between. Pay differences maybe, and skill levels, but those were never formalized. Is there an online test or something where you can "gauge" what tier…

Large tech companies usually have a career ladder that describes the expectations that come with a particular job level / title. Most aren't published externally but they look something like this example: https://www.ctl.io/developers/blog/post/career-path-of-a-pro...

[EDIT] Here's a slightly more detailed example from Thumbtack: https://docs.google.com/spreadsheets/d/15ACBs-crUHnqf1wANUQw... They can get much more complex than this though at the really big tech companies.

Re: Things I Learned to Become a Senior Software Engineer

#103

To start with, "Senior" and related titles basically mean a person who doesn't need much hand-holding. This might be related to time spent, but often you find there's a lot of variation. People I consider senior software engineers have a can-do-anything vibe about them. They have a wide range of skills in the field, and have that T-shaped experience profile: there's some area they seem to know everything about, and t…

> To start with, "Senior" and related titles basically mean a person who doesn't need much hand-holding. I'd call this "not junior". To me, "senior" would be the person leading a small multi-person effort or doing the hand-holding of junior engineers.

Usually leading engineer is called "Lead Engineer", which is step over Senior.

Re: Things I Learned to Become a Senior Software Engineer

#104
post #91
post #87

Earlier quoted context omitted.

From a technical standpoint, I agree that good people can reach the bar of senior engineer very quickly - potentially right out of school. However, there are aspects of a senior engineer role that are not commonly learned in school or by hacking on hobby projects. How do you effectively lead a project? How do you balance requirements? How do you say no to stakeholders? How do you balance time vs quality? All engineer…

How do you effectively lead a project? How do you balance requirements? How do you say no to stakeholders? How do you balance time vs quality? Moving someone up to a senior role is giving them the opportunity to take on more responsibility and develop their skills. Very few people are promoted to a senior role already knowing how to manage a team well or how to balance requirements. The expectation is that they've sh…

> Very few people are promoted to a senior role already knowing how to manage a team well or how to balance requirements.

There’s more to it than that. If you’ve had a chance to work under someone who knows how to do the job (or someone who doesn’t, but you can see other groups that work well) then you have some idea how to do the job.

It’s similar to programming, or any other job: you write good code and bad, and learn which causes more problems; you read good code and bad and learn from it which of your own practices are good and which are not.

You don’t understand what was in your textbook until you see it in the real world. All that takes time.

Re: Things I Learned to Become a Senior Software Engineer

#105
post #37
post #35

Earlier quoted context omitted.

No, but millennials sure do demand such titles.

Only in the sense that we demand to be judged by our knowledge and ability and not by our age. If you're going to make a title and say "nobody's eligible for this until they're 40," we'll certainly try to prove you wrong. If you don't make the title, millennials as a group aren't going to care.

[deleted]

Re: Things I Learned to Become a Senior Software Engineer

#106

I was a bit worried about the title saying "Senior Software Engineer" because this may trigger people. But, surprised that all the discussions are about this, instead of the content.

Hi Neil.

Appreciate the writing. I wonder if everyone is senior at Bloomberg then how does the pay raise work?

Re: Things I Learned to Become a Senior Software Engineer

#107

Earlier quoted context omitted.

> To start with, "Senior" and related titles basically mean a person who doesn't need much hand-holding. I'd call this "not junior". To me, "senior" would be the person leading a small multi-person effort or doing the hand-holding of junior engineers.

Usually leading engineer is called "Lead Engineer", which is step over Senior.

Of a small group? I'd ordinarily expect a "lead engineer" title to be overseeing 6-20 people.

Re: Things I Learned to Become a Senior Software Engineer

#108

To start with, "Senior" and related titles basically mean a person who doesn't need much hand-holding. This might be related to time spent, but often you find there's a lot of variation. People I consider senior software engineers have a can-do-anything vibe about them. They have a wide range of skills in the field, and have that T-shaped experience profile: there's some area they seem to know everything about, and t…

I'm more familiar with EE levels. From OPM: https://www.opm.gov/policy-data-oversight/classification-qua...

and if you can find: POSITION CLASSIFICATION STANDARD FOR ELECTRICAL ENGINEERING SERIES, GS-0850 ELECTRONICS ENGINEERING SERIES, GS-0855 TS-3 February 1971 It has good information on what level engineers are working.

I think you have the correct frame of reference, senior level positions are those who are used to handling projects/questions without guidance from others (although most senior folks are willing to ask questions to learn)

Re: Things I Learned to Become a Senior Software Engineer

#109
post #91
post #87

Earlier quoted context omitted.

From a technical standpoint, I agree that good people can reach the bar of senior engineer very quickly - potentially right out of school. However, there are aspects of a senior engineer role that are not commonly learned in school or by hacking on hobby projects. How do you effectively lead a project? How do you balance requirements? How do you say no to stakeholders? How do you balance time vs quality? All engineer…

How do you effectively lead a project? How do you balance requirements? How do you say no to stakeholders? How do you balance time vs quality? Moving someone up to a senior role is giving them the opportunity to take on more responsibility and develop their skills. Very few people are promoted to a senior role already knowing how to manage a team well or how to balance requirements. The expectation is that they've sh…

Do you think that could be solved by disconnecting salary from title?

A 10x junior engineer should be paid a lot - more than most senior engineers if everything is fair. But the rockstar junior engineer would still benefit from mentorship and someone to help them avoid some of the mistakes that we have all made.

If you look at Google, there are terminal levels that employees can reach and stay. That doesn't mean that there is a mass exodus of talent because employees want an inflated level somewhere else. They are well compensated for their work - they just don't get a new level every couple years.

Re: Things I Learned to Become a Senior Software Engineer

#110
post #79

Earlier quoted context omitted.

>If you follow that timeline, there would be plenty of people who were millionaires and on their second or third startup board before reaching "senior". What does being a successful entrepreneur have to do with being a senior engineer?

Well indeed. If you can write an app well enough to earn a million dollars, what use do you have for other people's opinion of your seniority?

Senior implies quality, making money off of software often doesn't require quality.
Post reply on HN