top | item 12557355

(no title)

p4wnc6 | 9 years ago

Junior developer is someone who was unable to negotiate a stronger position for any reason, such as experience, recent unemployment, expertise in an outside specialty, company is super tightwad about 'status' and/or pay levels, naive about negotiation, etc. Conversely, sometimes you'll also see someone at a 'senior' level because the title meant more to them than pay or other benefits. Sometimes a title distinction is engineered by HR and the hiring team at a company to function that way.

It is often thought of as a prediction about what level of contribution is expected, but that's basically a farce. In every organization I've seen that makes distinctions between junior and senior developers, the only thing different between them is that senior developers are paid more. They don't do more, manage more, design with more foresight, or anything like that.

The exception is that developers who are brand new to a job function as junior engineers until they get calibrated and learn some parts of the codebase in which they can be effective. But this is just as true for a brand new senior dev with 10 years experience in your company's primary domain application as it is for a kid straight out of a bachelor's program whose only prior work experience has been theoretical REUs or something.

Basically, it's just a status tool.

discuss

order

quantumhobbit|9 years ago

You're getting down voted for expressing the reality as opposed to the the platonic ideal. Ideally junior/senior implies something about ability to work independently, but there are plenty of crappy places where job titles bear no relation to actual abilities. Acknowledging that the meritocracy doesn't work perfectly seems to piss people off around here.

echelon|9 years ago

This is absolutely not true.

I would expect a senior engineer to come into a new job and be able to propose the design a new service very quickly - its API, architecture, datastores (including sharding, replication, active-active multi-master designs, ...), DR strategy, how it fits into the ecosystem, how to scale it to thousands of QPS, etc.

quantumhobbit|9 years ago

I would too, but I have worked with plenty of people with the word senior in their title who wouldn't be able to do a any of that. I've also met "juniors" who do carry the world and build great systems.

The problem is that titles get inflated and can't be relied on as much as we would hope.

gaius|9 years ago

You might expect it, but I've encountered plenty of 23-year-old Senior Network/Software/whatever Engineers with just 1 year of experience. Basically as soon as they'd implemented a single feature, they would consider themselves senior.

Personally I say a senior engineer is one who solves problems by the most appropriate means. Maybe he fixes a "bug", maybe he/she knows enough about the problem domain, the use cases, the dependencies, the history and changes the documentation instead. Maybe he/she tells a junior engineer "figure out how to scale that" and uses experience to know what part of the system really needs to scale. And so on and so on. A senior engineer spends little time coding and lots of time mentoring.