Live data from Hacker News

Things I Learned to Become a Senior Software Engineer

neilkakkar.com

111–120 of 129 posts

Re: Things I Learned to Become a Senior Software Engineer

#111

Earlier quoted context omitted.

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.

You know you're in a bad spot when you start arguing that a website has as much potential for bad results as a weapons system.

by definition it's not true, and any sequence of thoughts that lead you to that conclusion are wrong, period.

Re: Things I Learned to Become a Senior Software Engineer

#112
post #67
post #44

Earlier quoted context omitted.

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, o…

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

That just means you weren't valuing the right things.

At the end of the day, that's what it's about. It's not about "technique A should have been used instead of technique B", it's more about what you value. It matters because those values will inform both your decisions and your actions.

For example, someone who values performance will not write slow code. Someone who values productivity will write slow code. Someone who values stability may or may not write slow code and may or may not be productive, but their systems won't arbitrarily go down.

Re: Things I Learned to Become a Senior Software Engineer

#113
post #81
post #66

Earlier quoted context omitted.

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.

I agree, and this is why I mentor my engineers to replace the phrase technical debt with specific qualities that are impacted by technical choices: * Resistant to future change * Won’t scale past x units * Prone to operational issues * Exposes us to liability or compliance risk * Increases ongoing maintenance costs Any large initiative to replace "crap" should map to specific product quality attributes that stakehold…

This is why any of the "ilities" is a red flag for me. Don't tell me it isn't scalable, make it concrete. Tell me what specific numbers we're supposed to meet. Don't tell me it isn't readable, tell me specifically what the problem is.

Re: Things I Learned to Become a Senior Software Engineer

#114

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…

I agree 100% with you Have worked as both PM and developer and now run my own very small software company A) two years senior engineer is like one of those consulting companies where everyone in 2 years becomes DIRECTOR B) In two years most new programmers have not even gotten their heads out of their asses C) You should refer to Outliers 10,000 hours to master a task And to that add 10,000 hours to make your first m…

didn't yahoo have an awful lot of directors? (or was it vps?)

Re: Things I Learned to Become a Senior Software Engineer

#115

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…

I agree 100% with you Have worked as both PM and developer and now run my own very small software company A) two years senior engineer is like one of those consulting companies where everyone in 2 years becomes DIRECTOR B) In two years most new programmers have not even gotten their heads out of their asses C) You should refer to Outliers 10,000 hours to master a task And to that add 10,000 hours to make your first m…

How long are we going to hold onto this silly 10,000 hours thing? Mastery, and high levels of skill, are a combination of inherent talent + explicit effort (not passive time) + quality of experience. I have seen 15 year experienced engineers who are utterly useless, and 2 year engineers who are incredible in everything they do.

Your description of a senior engineer is not a job one person should be doing. If you’re trying to get a senior engineer to figure out how to make something, support it, deploy it, and monetize it, you’re going to get half assed work on every front.

Beyond all that, the ranking of senior should be more company scale specific. A senior engineer at FAANG needs to be able to scale infinity and build things that never break. A senior engineer at a 30 person company needs to build quickly and AB test features rapidly. Ultimately, “software engineer” is far too broad. It doesn’t really embed much knowledge beyond “knows how to code”.

Re: Things I Learned to Become a Senior Software Engineer

#116
Hmm. Good read. Then I think everyone should write something about their accomplishments in their own blog like an article on how I became a tech lead and it would be mostly like, it's not fun. Being a team member was easy, you know taking up few projects which others considered hard and you know it's simple just too much action everyday. And always start a presentation saying, "it's a simple project having n,n,n,n,n things" and go slow so others would go and review all the things you did in the call itself.

But now you are working on 1 project namesake and hearing about all projects, resolving issues getting into sudden meetings and knowing requirement was understood differently and thinking about what sort of risk should be raised for this project. Then you get to a discussion with a architect on whats a microservice, he tells you a microservice can process bulk data(millions) and can run up to 20-30 mins and discussion ends like oh I was thinking microservice is like a simple unit of work and finishes off in few milliseconds to less than few seconds. Sorry I am a mainframer we caught this as it crossed our thresholds in UAT and you need to raise risk if you want this go live. (Level of risk that has good visibility to management).

Wrote an automation tool 6-7 years back for myself and let others know of it and prepared good documentation and made it part KT and now present time, saying to people not to use my tool as I am going to decommission it as there are other standard tools available to do the same thing and people pinging "please don't decom it, can you rename it and let it run, as it's easier and proven repeatedly it's error free".

Suddemly a dev contact, pings you saying I have a problem with this REXX code. You look at the code and sort of gives you thought, this comment looks like I wrote it. But I never wrote something for this application or person before and asking few more questions, you come to know that my code was used as a model in lot many places as it was easier to generate test data with it. Credit for initial work was never given few years back but looking at how many people are using gives a feeling wow.

Always seeing celebrities talking about their movies on TV. Given me the thought, how come nobody is interviewing programmers and asking what was hard for them to program and state of mind they had when programming a piece of code. What gets them to the flow state.... It would be fun to know.

Re: Things I Learned to Become a Senior Software Engineer

#117
titles are arbitrary. let's not put too much stock into them.

At google and FB, senior is considered L5/E5 which requires atleast 5 yoe.

but it looks like bloomberg doesn't have a mid level and only have junior/senior.

https://www.levels.fyi/?compare=Bloomberg,Google,Facebook,Mi...

Re: Things I Learned to Become a Senior Software Engineer

#118
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…

yeah the fb engineer likely makes 3x as much and went to a better university and is generally smarter

Re: Things I Learned to Become a Senior Software Engineer

#119

I guess the meaning of Senior has changed, that's fine - but what is the level beyond Senior now? Ancient? Graybeard? Hallowed?

At Microsoft there is a guy named Peter Spiro who I really looked up to, in SQL Server. His official title is Technical Fellow but he called himself Village Elder, because he worked on it since 1.0. In his own words, his job is to float around and be available to everyone in the group.

Re: Things I Learned to Become a Senior Software Engineer

#120

Earlier quoted context omitted.

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…

What you say is true. Perhaps, a distinction ought to be made between mere mortals like us, and the obsessed ones. In our era where information is more easily available than food, and where experienced people willing to help, are just as reachable, I think for someone who dedicates the time towards mastery, 2 years will take him/her very far.

I say this as someone who started learning to program on his own at age 8, and is now 37:

> I think for someone who dedicates the time towards mastery, 2 years will take him/her very far.

You might get very good at a particular niche in 2 years. You will not have learned the lessons you learn when you go back to a five year old project yet and make changes. You will not have the breadth of experience from having worked intimately with dozens of teams in different languages, cultural expectations, and business domains.

Honestly, the more I learn, the more I know I don’t know. As an example, last year I had an opportunity to work on robotic control systems. I dusted off my calculus and linear algebra skills from way back, implemented calculations that ran in under 1ms, and has a ton of fun doing it. Could I have explained a Jacobian before starting that project? Not likely! Do I use it in other stuff now too? Definitely.

Post reply on HN