If you think that my estimate is not totally out of whack, that leaves all people with a 4 year degree hitting this level before they are 30 (assuming they start out in this field).
If this is "senior", in what way do you expect your employees to improve in the next 35 years of their career (assuming they retire at 65)? And what title would that have?
At my last several employers, people would go from associate/junior/entry/whatever directly to senior. Usually within 1-2 years from coming out of college (sometimes 2 years-ish out of coding bootcamp for particularly bright folks).
That meant basically everyone was Senior if they weren't fresh out of school. And then getting to the next step up (which had various names... Lead, Principal, Staff, level 3, whatever), is always excruciatingly hard, because it's where people start expecting more than "We didn't fire you for 2 years" and actually look at performance, and there's no title in between.
I've seen companies promote people to senior from being out of school without internships in just a few months, then need 7-10 years of experience to get to the next level. For anyone who actually cares about career tracks, that seriously kills it.
Super Senior
Geriatric
Señor
in many ways, that's the whole problem with this conversation: coding doesn't have much room for professional advancement, because 99% of the available work can be done by inexperienced kids.
* CI/CD * Docker Registry * Testing Pipeline * Self hosting option * I'm sure there's more
So I don't think you are being fair here.
PS: I'm not affiliated in any way with Gitlab, just an user
Arguing that an open-source project is cloning multiple pre-existing projects doesn't make the software any more innovative.
Coding is like 30% of a developer's job. And I'm being generous.
Are your ordinary developers unable "to write modular, well-tested, and maintainable code"?
It's one thing to get the feature / bug fix in the current branch, its another know what well-tested means and to be able to do well-tested without assistance.
Maintainable - this one takes insight. Again, the more junior person just wants to cross the task off their list and move onto the next. Having insight into what is Maintainable (as it relates to the project / client / company) takes time.
They just don't teach that stuff at Uni...
I think the issue is their base salary is completely off.. Especially when the 'rent index' is based in NYC. A Junior Dev w/average experience would make 87k in NYC. A comparable government GS-13 position (average experience) in NYC would make 95k.. that 8k difference compounds a lot when multiplying.
Also I don't believe the rent index. Who cares where your employee lives (at least country by country) - if they want to live in the midwest, why not pay them the same as somebody who chooses to live in California, especially if you are an entirely remote company.
- Ability to identify gaps in own knowledge and willingness to discuss those limitations with peers.
I find that traits like this tend to promote a healthy engineering culture. It's very difficult to grow such a culture, and it needs to come from the top.
* Fixes bugs/regressions quickly (time spent)
* Creates test plans (number of plans created)
* Helps with recruiting (number of candidates interviewed)
* Keeps issues up-to-date with progress (number of issues updated)
* Helps guide other merge requests to completion (number of merges)
* Provides thorough and timely code feedback for peers (time between commit and feedback)
Just curious if you track any these metrics or if this is mostly a "qualitative" feeling of how the developer is performing?
>Fixes bugs/regressions quickly (time spent)
Do the least possible to make it work again, don't investigate or fix the underlying confusion or low-quality subsystem that made it break. Volunteer for bug fix tasks that look easy, stay away from the ones that look hard.
>Creates test plans (number of plans created)
Write low-effort test plans.
>Helps with recruiting (number of candidates interviewed)
Give lots of interviews without really paying attention.
>Helps guide other merge requests to completion (number of merges)
Get your friends to split all their changes into the smallest possible merge requests so you can accept as many as possible.
>Provides thorough and timely code feedback for peers (time between commit and feedback)
Provide rapid but low-effort feedback.
Metrics-driven management is cancer and you should run, not walk, from any organization that expresses any inkling of interest in it.
You (in general, not parent specifically) are almost certainly not smart enough to create an quantitative incentive system that actually produces the behavior you want, rather than the appearance of it. Respect the difficulty of the task, and don't.
You'd be surprised.
[edit] I will add that much of the responses to the metrics are quite cynical -- assuming people will game the metrics. Therefore, I agree.
Senior Developers are experienced developers who meet the following criteria:
Are able to write modular, well-tested, and maintainable code
Know a domain really well and radiate that knowledge
Begins to show architectural perspective
Leads the design for medium to large projects with feedback
from other engineers
Leaves code in substantially better shape than before
Fixes bugs/regressions quickly
Monitors overall code quality/build failures
Creates test plans
Provides thorough and timely code feedback for peers
Able to communicate clearly on technical topics
Keeps issues up-to-date with progress
Helps guide other merge requests to completion
Helps with recruiting
https://about.gitlab.com/jobs/developer/