

Ask HN: What makes a senior Rails dev? - blackxored

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.
======
cheald
I'm sure that everyone will have their own list, but here's mine:

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

~~~
Domenic_S
> _Basically, I'd call someone a "senior" dev if they tend to answer more
> questions than they have to ask._

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.

~~~
cheald
Great distinction. You expressed what I was trying to say much more
eloquently.

------
1123581321
A recruiter in 2011 told me that a senior Rails dev is one with 6-12 months of
_real-world_ experience. If that's true, it demeans the word senior and
requires another title for people who have been using it much longer. But, it
was corroborated by what several companies in Chicago were looking for.

~~~
Domenic_S
In 2011 Rails had been out for about 6 years. If we assume that the prereq for
getting 6-12 mos. of real-world experience is 6-12 months of practice time,
then your recruiter's definition would be more like 12-24 months' experience.
On the high end, that's 1/3 of Rails' existence!

Like any other new tech, that number is bound to inflate with time.

~~~
1123581321
True, it's more time than meets the eye. I would still wonder wha title a
person like Yehuda Katz or Sam Stephenson should receive, since they would be
so much better than other "senior" developers. Maybe the equivalent of "Google
Fellow" at the company?

~~~
blackxored
I call them rockstars. ;)

------
j45
Given how young Rails is: A senior dev in another language plus as many years
of rails experience as is possible (6?).

~~~
blackxored
IMHO that definition is flawed. For lots of people senior != time on
something. That's what usually recruiters have to back on because they don't
have any other measures. I'm asking from a programmer standpoint. I remember
dhh's joke on some position in NY (NYT or Library, can't recall) position
requiring 8 years of Rails experience ;)

~~~
j45
I'm not sure what's so flawed. I've been developing for over a decade. And the
more senior you get.. the more languages are simply syntax.

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.

