Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What makes a Senior Dev
42 points by probinso on March 23, 2016 | hide | past | favorite | 29 comments
What makes a entry level, mid level senior dev?



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.


This is the answer. The reason is because it is specifically "time spent with reality," which has a way of showing you what you don't know.


What is the "thousand language stare"?


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


What is the "thousand language stare"?


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"


Read the question.


I wish I had more upvotes to give.


That was beautiful.


Lenny Bruce was not afraid


haha that was awesome


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.


great answer


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.


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


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


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.


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


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


The pithy version...

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


Knowing what code not to write.


A friend told me it's just threads and queues


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


Leadership, good Principles and Theory


Nothing it is just a title.


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.


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


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.


Yeah, it's just a title, so what makes a senior dev is that title on their resume. Everyone has their own view of what should merit getting that title so it's not an interesting discussion topic. (For fun though, my view is senior is just an understanding of how your work ties to business value.)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: