
Ask HN: What makes a Senior Dev - probinso
What makes a entry level, mid level senior dev?
======
stray
Mistakes, rewrites, late nights, firefights, and deadlines.

Core dumps, memory leaks, hardware faults, and plain bad luck.

Big O, data flow, always learning -- or out you go.

Manager metrics, schedules hectic, methodology hegelian dialectic.

Taking the heat, feature creep, open office, uncomfortable seat.

Holy wars, revolving doors, carpal tunnel, all you can take? There's always
more.

Fucking suits, random reboots, and the ever present "thousand language stare".

Oh yeah, pressure -- lots of pressure. And time, time, time.

Metric shitloads of time.

Time, man. You gotta do your fucking time.

~~~
gingerjoos
What is the "thousand language stare"?

~~~
martiuk
It's what you see in many photos of men during or after a battle, they have an
eerie look in their eyes, that they are looking through you not at you.

"The thousand-yard stare or two-thousand-yard stare is a phrase coined to
describe the limp, blank, unfocused gaze of a battle-weary soldier."

[https://en.wikipedia.org/wiki/Thousand-
yard_stare](https://en.wikipedia.org/wiki/Thousand-yard_stare)

~~~
elbigbad
What is the "thousand language stare"?

~~~
stray
It's that "I've seen some shit" look -- a kind of world-weary daze of someone
who has been through a few business cycles, several verses of the "this new
language/paradigm/whatever will solve all our problems" song.

It's the look of someone learning yet another "teh shiny" just to stay current
-- with full knowledge that it's yet another idea from the 1970s, repackaged
to appeal to a modern audience.

The look of someone who simply lacks the energy to resist the zeitgeist. Who
has to listen to everybody oozing religious zeal over the flavor of the week.

The look of someone who is thinking "cool, monads -- now can we roll up our
sleeves and ship this product? Remember our product? We get paid for shipping
product"

------
doobiaus
Short comment from my experience.

I would say the difference between a junior and a mid is experience breadth of
knowledge. Knowing what tools, patterns or architecture to use and when.

The difference between a senior and a mid, is that a senior knows when NOT to
use them.

In other words, juniors and mids tend to focus their attention on technology.
Seniors tend to focus on delivery.

~~~
forgotusername2
great answer

------
manyxcxi
A junior is much like an apprentice. Often they are being told what to do and
told (or hopefully TAUGHT) how to do it. They don't show a lot of autonomy. A
lot of mistakes happen from a lack of understanding and foresight.

A mid-level developer is mostly autonomous within the confines of a planned
out project. Given a specific scope and criteria, they mostly get the job done
with some help from a senior. Their errors and bugs are typically of the
architectural and performance type, though a lack of foresight can plague the
less savvy mid-level.

A senior should be nearly completely autonomous. You tell them the general
thing that needs doing and they are able to do it on their own. They can see
the impact a decision would have far enough down the road to accurately weigh
pros and cons. On top of that, they are able to help the mid-levels and
juniors get better at their craft as well.

------
brianchu
Here's a really good Quora answer talking about how engineers get promoted at
Google. I think Google is a good example to look at for promotion (but not
necessarily for every issue) because they're known to have a very well-defined
process for promotion.

[https://www.quora.com/How-do-engineers-get-promoted-at-
Googl...](https://www.quora.com/How-do-engineers-get-promoted-at-
Google/answer/Brandon-Ballinger?srid=h5Ho)

------
gonyea
Senior Devs can copy and paste from StackOverflow and have it work on the
first try. It's a art.

------
audleman
I'll highlight just one aspect I've been thinking about:

Imagine your company has a programming problems that is a shaped like a vague
cloud.

With a junior developer, you need to do the work to dig into the cloud, define
its boundaries, segment the work, and write it all up as tickets. Then you
give it to the junior dev who focuses on each one independently. They are not
responsible for the end result, though they may be asked to verify the parts
they coded in production.

With a senior dev you say "solve this problem" and walk away to do other work.
You know they can just dig in, figure out the right solution, code it, test
it, and maintain it.

------
sghiassy
Ability to set down the fun and desirable nature of coding. To put priories
and your focus in hiring, direct-report development, meeting collaboration and
product organization.

To ask your direct reports where they want to be in 5 years and help them get
there - without disregard of what that means to the day's need

~~~
throweway
In that case im yet to meet a senior dev. Never been asked about where i want
to be by a boss.

------
chris_va
The pithy version...

How far out you can spot your mistakes, and the multiplier affect you have on
the people working around you.

------
y0y
Knowing what code not to write.

------
ninetax
A friend told me it's just threads and queues

------
anonfunction
An easy way I've used to explain the difference between junior and senior is
this:

> Junior devs use libraries, senior devs write the libraries

------
philtrav
Leadership, good Principles and Theory

------
bbcbasic
Nothing it is just a title.

~~~
manyxcxi
It could be just a title if you work for that kind of company. Or, it could be
VERY meaningful- which is what I'm sure the poster was looking for, instead of
a flippant answer that suggests you're frustrated and/or don't have a clue.

~~~
bbcbasic
> Or,

Exactly. For company A it means you have 6 years experience. For company B it
means you can lead a team and mentor people. For company C it means you know
so much about Java you can write the book. For company D it means you can type
and open word. Coming up with a precise definition is futile. It is just going
to be anecdotal.

It feels a bit like True Scotsman territory.

~~~
manyxcxi
I don't entirely disagree, and I think this to be a quite helpful response to
the poster, which was the point of suggesting your previous answer was just
being flip.

Company to company the specifics certainly don't hold constant but one could
argue that the progression from junior to senior involves more responsibility,
autonomy, and accountability at most places.

