3 ms·
I've never really considered the ability to write the code without handholding to be the line between junior/senior. If anything that's more the line of being a
by flagrant_taco 3y ago
I've never really considered the ability to write the code without handholding to be the line between junior/senior. If anything that's more the line of being a competent developer with a particular toolset.
I may be a competent framer that can stud out the plans for a house, but I may not totally understand why the walls are positioned that way or how the roofline will work with the landscape to avoid water issues later. They're just different skill sets, I'd actually also expect the architect who can design the house wouldn't be particularly useful with a framing nailer.
Ive never actually liked drawing solid lines between skill levels because it is so contextual, but here's the closest I can get.
Any developer should be able to write code when it's already known what it needs to do. The next level for me is being able to write code with an eye towards testability, maintenance, and flexibility based on where you expect requirements to change later. I'd expect a senior to be able to go beyond that, starting from a set of product requirements and designing the code to work for those needs. Beyond that it starts to get really gray, and you likely lose more of the earlier coding skills, but that's where I'd be looking for someone who can help define what the product requirements even are, considering technical risks and limitations of how they might even build and host the product.
- tough 3y agoI see it like the most abstract up the ladder you get, the more senior you are. Anyone can fix a button's css. Not anyone can refactor big parts of a codebase into something better, or help them create from scratch in a cohesive, modular, future-proof way. Every time I get into a new job I get a various degrees of this. The more business-context you have, the better you can solve business requirements with tech, the better tech toolset you have available, the better choice you can make on what solution to use or not to use to such problems. True seniority means understanding how all the system works, regardless of getting into the grunt work of each of the steps, but being able to do so and understand it at the lower level too if/when needed. It's a hard act.
- flagrant_taco 3y agoOne caveat I have is that companies are generally terrible at recognizing senior+ level independent contributors (ICs). Many companies don't even have a career path defined for this. I have worked with some of those individuals and they really are worth every bit as much as, if not more than, a systems-level thinker that enjoys mapping business needs to technical solutions. Most large tech companies I've seen promote standout ICs to either architect or manager, assuming that the skillset and interest largely transfers. I've seen this blow up many times, it's painful to watch and I really hate it for everyone involved.