Ask HN: What makes a senior Rails dev?
Hello guys,
I hope you don't find this unconstructive. I know it's a question that can't get a conclusive answer, I'm not looking for any.
I wonder, from the skill set point of view, what differences a senior Rails dev from a mid-level one? Thanks in advance for the comments.
11 comments
[ 0.26 ms ] story [ 32.6 ms ] threadLike any other new tech, that number is bound to inflate with time.
* The ability to analyze, debug, and fix problems that don't have an answer immediately discoverable via Google. This usually means the ability to dig into library source code, use debugging tools effectively, and be able to wrap your head around the "magic" rather than just treating it like an unbreachable black box.
* Comprehensive understanding the various Rails pieces and how they fit together (activesupport, activemodel, actionpack, and the sub-pieces within; the router and asset pipeline, and the Rack middleware nature of a Rails application)
* Comprehensive understanding of the hows and whys of testing, deep familiarity with at least one of the common testing frameworks (testunit, minitest, rspec), and an understanding of how to develop features and bugfixes via test-first methodology.
* Comprehensive understanding of deploying a Rails app, and the care and feeding of a production application. Multi-server scaling, zero-downtime deploys, and redundancy/failover plans are a big bonus.
* Rock-solid understanding of Ruby, particularly as it pertains to metaprogramming.
* The ability to evaluate third-party gems, both from a functionality and code perspective, and determine their appropriateness as a solution to a given problem.
* Good command of at least one major source control system. If you're using git, you should know how to use topic branches, rebase branches, perform merges, recover lost work, that sort of thing.
Basically, I'd call someone a "senior" dev if they tend to answer more questions than they have to ask. That's not to say that senior devs don't ask questions, but that they have the knowledge to answer most questions, and the experience necessary to find out the answers for themselves when they aren't immediately available.
IME "asking questions" has a bimodal distribution along the axis of how good a programmer is: juniors ask the most questions, and seniors ask a ton as well. Sr.s don't ask language/framework questions (very often), but they dig in to requirements, project scopes -- they ask "why?" a lot.
When I hire a senior developer, I'm hiring their senior thinking and senior analysis abilities, not their ability of having worked with one particular syntax or framework.
Senior ultimately means built, scaled, and managed a code base that you have a relationship with for more than 1-3 years.
I would guess than many Rails developers have not had a deep relationship with a large Rails codebase for many years, but may have with other languages, so it's where I was coming from.