loading...
Cover image for Thoughts of a "Senior Developer"

Thoughts of a "Senior Developer"

orrgottlieb profile image Orr Gottlieb ・3 min read

Thoughts

I'm considered a senior developer in my workspace. Lately, I've been thinking about what it means to be a "Senior Software Developer"

I thought it might mean that I write better code, which might be true (I'll revisit my code in a few months and let you know) but I've seen junior developers who write amazing code and senior developers who write unmaintainable code.

I thought it might mean that I know the latest and greatest, but that is a neverending task.

I thought it might mean that I finish tasks a lot quicker, but I don't think that is the case.

I thought that it might mean that I write code that has no bugs - but we all know that all codes have bugs, it is part of us being human who writes code to run in an unpredictable environment.

Recently I've been working a lot with "Junior" developers, which are still looking for their place in the pecking order. It is clear that when working with a junior developer that most of them are looking for reassurances (like we all) and then it hit me. In my mind, the job of a senior developer is to enable a supportive working environment for junior developers, where they can ask any question without being judged, where mistakes are ok and discussed and not knowing something is ok.

Wrongful Behaviours (Which I do)

  1. Whenever we encounter unfamiliar code or style of code that we don't like, we think (maybe even say) something in the lines of "Who wrote this s***t...".

  2. Use git blame ( I hate the name "blame" ) way too much - git blame is a dangerous tool - which could attribute half-truths to an existing situation.

  3. When giving a code review - "telling people what to change"

Changing my behaviours

  1. I need to change my mindset - if a code has tests - then it is awesome code which might need to be refactored! (if it doesn't have tests, well...)

  2. Turn off the auto git blame. I don't need it all the time, I'll probably need it if I want to ask the person who wrote that line of code a question about it.

  3. When giving a CR - always, but always find at least one good thing to write - even if it is something which seems trivial or meaningless. The person on the other hand might need it more than you think.

  4. When giving a CR - I'll try to encourage a discussion on what I think needs changing by asking questions and not providing solutions.

  5. I want to be able to leave a piece of code a little bit better (for the next developer which will work on it) than how I found it.

  6. And the most important - when someone asks me a question I want to try to make them feel like it was a question worth asking.

Final thoughts

In my opinion, a senior developer is not the person who writes the best code (it could help), but it is a developer who is not judgmental, a developer who is willing to explain with patience when is being asked a question and most importantly is someone who remembers what it means to "feel stuck" or "lost"

Discussion

pic
Editor guide
Collapse
jfbrennan profile image
Jordan Brennan

Senior Developers became Senior Developers because of Senior Developers.

#6 is great btw

Collapse
orrgottlieb profile image
Orr Gottlieb Author

Love that sentence!. Thanks for sharing :)

Collapse
mdhesari profile image
Mohammad Fazel

About the behavior I'm totally with you.

But sometimes senior developers should guide the people who ask questions that are not worth asking for in order to optimize time and focus on the project + the beginner tries to find more resources as a result he will become skillful in researching and solving various issues.

Be kind but also stay honest.

Collapse
orrgottlieb profile image
Orr Gottlieb Author

I totally agree that self-learning is the key to become independent, but a polite nudge in the right direction never can go long ways

Collapse
mdhesari profile image
Mohammad Fazel

Exactly, that's what I'm saying...

Collapse
yaythomas profile image
yaythomas

Great list!

I believe creative people (like coders!) do their best work when able to experiment & try out new things without fearing judgement. And this is down to the social environment created from the top down.

Collapse
bloodgain profile image
Cliff

To me, being a Senior Developer is kind of like growing up and asking yourself, "Where's the adult in this situation? Oh, crap, it's me!" You suddenly realize that you are the responsible developer whose task it is to help guide other developers and make sure they only wander so far off the safe path, but not watch them so closely that they don't have the opportunity to explore and make mistakes, which are necessary for learning. Eventually, you just accept that role and learn to enjoy mentoring junior devs.

So in short, a senior dev is just a leader, which doesn't necessarily mean they're a manager or even an official tech lead. And just like being a responsible adult or a leader, some people never really become senior developers.

Collapse
orrgottlieb profile image
Collapse
habeebullahi01 profile image
Habeebullahi01

Great post. Gives me hope as a beginner.

Collapse
ronnyshapiro profile image
Ronny Shapiro

Great post Orr !!
For me, senior developers are the ones who see themselves responsible for making those around them better.

Collapse
orrgottlieb profile image
Orr Gottlieb Author

Totally agree, senior developers are responsible for the growth of the R&D as much as any team lead or above

Collapse
macsikora profile image
Maciej Sikora

Good article. My thoughts about similar things dev.to/macsikora/grow-up-20c5

Collapse
orrgottlieb profile image
Orr Gottlieb Author

great read, thank you

Collapse
prahladmishra profile image
Prahlad Mishra

Very true, when it come to a changed mindset, this comes with experience. Experience to deal with situation understanding the other side and making an open environment for talents to flourish.