Live data from Hacker News

Things I Learned to Become a Senior Software Engineer

neilkakkar.com

61–70 of 129 posts

Re: Things I Learned to Become a Senior Software Engineer

#61

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…

Twenty years ago I was promoted to "senior" three months out of university, for the adhoc purpose of improving the number of senior developers on our pitch to clients.

On the other hand, that was the dotcom era. The number of people writing software simply exploded, as did the available technologies. The entire traditional way of doing things was simply obsoleted, multiple times over. A 21 year old Finnish student had released an operating system that contravened the textbooks and went on to change the world. A 21 year old dropout invented the entire genre of 3D video games. The largest software company in the world was run by a Harvard dropout. It was really impossible to overstate the extent to which credentials were meaningless and results were everything in the dotcom era. And that still affects the culture today.

> between 6-8 years to become a senior engineer

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

Now, not everybody is a Gates or a Carmack or a Torvalds, although the industry has not quite adapted to this fact and still tries to hire as if they were. But we have to recognise that the timescales are simply very different from mechanical engineering, and that the industry is still very much being disrupted from below.

Oh, and none of those prodigies are millenials.

Re: Things I Learned to Become a Senior Software Engineer

#62

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…

Not if someone is striving every day to become better, observe, learn, test, and adapt. For someone who procrastinates a lot and does not proactively look to improve, it might take 6-8 years!

I don't know if this comment is serious, but I'd suggest you explore the idea that you don't know, what you don't know. With a few years of experience, you can feel comfortable in a technology stack and seen and learnt from a few mistakes. You may know the names of other areas, and played around with them a bit, but you won't understand their pitfalls. This is not enough to make decisions. Software is not easy, it's far too easy to make reasonable design choices, that turn out in the long term to be poor. These can cripple large scale systems.

There is so much that you can't learn from books. Reading Mythical Man Month does not make you Fred Brooks, reading Shoe Dog does not make you Phil Knight, nor does reading a medium article on event driven systems make you ready to implement one.

Imagine that the college of surgery acted in the same way, a surgical trainee who has worked for a few years and reads a lot may feel comfortable taking the lead in a surgery, but will be out of their depth the moment things deviate from normal. I spoke to a surgeon about this once, and he described how he taught a particular procedure. At one point he has his student reach in to the body, with the explaination that 'it should feel like this'. No book can substitute that experience.

Re: Things I Learned to Become a Senior Software Engineer

#63

There is a shocking amount of ad hominem and focus on the years of experience in this article. Are people actually reading the article? Perhaps surprisingly, it's really fucking good. I'm absolutely planning to share this with junior devs that I work with. Author may not realize how much more there is to learn than he already knows, but we all kind of have that problem, just at different scales, am I right? He's doin…

Thank you, darkerside!

One meta-goal of the post was to figure out how I can grow further. Are there things on top of your mind which I should be exploring next?

Re: Things I Learned to Become a Senior Software Engineer

#64
post #43

Earlier quoted context omitted.

The definition of “senior” is vague and subjective. When you try to say objective things such as “6-8 years to become senior”, that’s meaningless because “senior” is undefined.

Obviously becoming a senior engineer shouldn’t be based on tenure alone. In my experience, 6-8 years is roughly how long it takes to acquire enough skills, both technical, people, business, and safety in order to become responsible for a piece of work. Being a senior engineer at Facebook where your responsible for making sure Cat memes load more quickly, and a senior engineer for an industrial control systems company…

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

Re: Things I Learned to Become a Senior Software Engineer

#65

> Figuring out how to become a force multiplier sounds more valuable to me than a 10x developer. I'm always astounded by what people imagine a 10x developer is, especially some one who calls themselves a senior developer. Hint, they aren't a lone wolf who writes 10 times as much code as the rest of the team, doesn't deign to sit in scrum planning sessions and creates chaos with every pull request they self approve. M…

To add to your point: the "lone wolf that writes 10x more code" is not someone you want on your team because they're not a multiplier in any sense other than simply "writing 10x more code". They're actively detrimental.

Re: Things I Learned to Become a Senior Software Engineer

#66
post #44
post #25

Earlier quoted context omitted.

It's kinda hard to be one when you've never had to maintain the monstrosity you've built for more than a few months. All the hard lessons are learned 5 years down the line when the wrong decisions really hurt you.

You can maintain other people's monstrosities and quickly learn the lessons. There's a couple of folks at work who joined straight out of college a few years back and ended up with ownership of a terribly-designed production system that everyone else depends on, and they've been doing a solid job of switching it over to a reasonable architecture while it's running. I don't know what title they have but I'd certainly…

Everything thinks the crap they inherit is terrible. Everyone thinks they can rebuild it in a far better way. Everyone then passes their project on to someone else, who thinks the crap they inherit is terrible.

Re: Things I Learned to Become a Senior Software Engineer

#67
post #44
post #25

Earlier quoted context omitted.

It's kinda hard to be one when you've never had to maintain the monstrosity you've built for more than a few months. All the hard lessons are learned 5 years down the line when the wrong decisions really hurt you.

You can maintain other people's monstrosities and quickly learn the lessons. There's a couple of folks at work who joined straight out of college a few years back and ended up with ownership of a terribly-designed production system that everyone else depends on, and they've been doing a solid job of switching it over to a reasonable architecture while it's running. I don't know what title they have but I'd certainly…

In my (extremely not senior) view, maintaining other people's monstrosities doesn't teach the right lesson, because there are many ways to get things wrong, but fewer ways to get things right. Previously, maintaining someone else's monstrosity taught me to avoid their specific mistakes, but not those classes of mistakes. I'd momentarily feel superior over having a different idea about how to accomplish those goals, only to feel deflated once my idea also showed short-comings. Better to learn how to reason correctly about these things, and that probably doesn't happen until you take seriously the cost of maintenance, which really only comes once you've spent enough time in those trenches, having dug them yourself.

Re: Things I Learned to Become a Senior Software Engineer

#68
While there is much sage advice in this blog post, the topic that I appreciated most was the gotcha about neophilia.

Not only have I seen my own natural tendency to overvalue new technologies irrationally, I've seen it in most of my colleagues as well. Stepping back and carefully weighing the pros and cons of new technologies is an excellent way of preventing neophilia from moving a project in the wrong direction.

Re: Things I Learned to Become a Senior Software Engineer

#69
post #65

> Figuring out how to become a force multiplier sounds more valuable to me than a 10x developer. I'm always astounded by what people imagine a 10x developer is, especially some one who calls themselves a senior developer. Hint, they aren't a lone wolf who writes 10 times as much code as the rest of the team, doesn't deign to sit in scrum planning sessions and creates chaos with every pull request they self approve. M…

To add to your point: the "lone wolf that writes 10x more code" is not someone you want on your team because they're not a multiplier in any sense other than simply "writing 10x more code". They're actively detrimental.

I have a draft blog article called "The Almost 10x Developer" because I have seen exactly this soooooo many times.

Re: Things I Learned to Become a Senior Software Engineer

#70
There are a number of commenters here getting hung up on what is or is not expected of a “senior” employee, which ignores the likely explanation that “senior” is something that costs a company exactly as much or as little money as they want it to. Think of it like “air miles” or “rewards points”. The hiring market has been extremely tight in recent years, and so it’s natural to see companies leverage job titles as part of competing for employees. (You might hear managers say “we’re just not getting a high enough quality of candidates for this role”, and an easy thing to do is to increase the job title. Increasing the salary and benefits is much harder since it requires justifying more budget.)

True, the employee can now leverage the job title for more compensation, with their current and potential employers, but the onus is on the employee to negotiate, and in the meantime the employer gets the benefits. (Note that “benefits” does not mean that the employee suddenly becomes better than they are, it means that a known-quantity employee continues to do satisfactory work for the company for a time, at an acceptable price.)

Post reply on HN