Hey all,
I’m having a tough time finding a good job working with Ruby and
Rails, and I was hoping some one here could maybe highlight what I may
be doing wrong. There are several factors at play here, but the three
main ones that I have trouble with are that (a) most of the Rails-
related jobs I’ve found are with start-ups, (b) the ones I’ve found
with “stable” or “established” companies usually involve tech screens
that I’ve had a hard time passing, and © I don’t think I want to be
writing code the rest of my life, but I feel like there’s a bit of a
barrier between technology people and allowing them the chance to
transition to technology management.
On the first point, am I being too paranoid about working for start-
ups? My biggest fear, career-wise, is to go to work one morning and
find the stereotypical 2001 nightmare scenario where the office is
shut down, locked up, nobody has a job and the CEO is running off with
a couple hundred grand in investment cash, leaving all the employees
screwed. Obviously that’s a reach (partially for comical purposes),
but how unfounded (or realistic) is a fear like this in today’s modern
silicon valley environment?
Secondly, regarding tech screens: this seems to be my biggest
problem. I have a strong resume, all of which is true (and I actually
-didn’t- pad it with anything!) and almost 9 years experience as a web
applications developer, having only started using Ruby about 3 years
ago, PHP/MySQL prior to that. I know this stuff reasonably well.
The problem is that I often get thrown all kinds of strange
theoretical questions out of left field. For example, “what are the
different levels of database normalization?” When I heard that, I
thought, “WTF, I just know normalization as making sure you have as
little repeated data as possible, things are properly indexed, and
that there’s proper referential integrity in the DB.” Another one I
got: “explain polymorphism and how it’s used in Rails.” At the time I
couldn’t answer it, but like all the other strange OOP-based
rhetorical questions I’ve been thrown, I wrote it down and looked it
up.
The problem is that I can’t really predict what’s going to be thrown
at me next. I know what I’m doing - I can write pure SQL, setting up
databases/foreign keys/indexes, I can write tests using Shoulda with
Factories or Blueprints, I understand Active Record very well, I’ve
set up plenty of RESTful interfaces (I’ve even named the guy who
“introduced” REST in his doctoral thesis in interviews), I’ve
performed security checks on my own code, developed e-commerce
applications in conjunction with FCC and PCI-DSS standards (in Ruby no
less) - it’s just the formalized theoretical stuff I’m weak on.
So far I’ve just been writing down the stuff that throws me for a
loop, but obviously since I can’t predict what’s going to hit me next,
I can’t really prepare for one of these interviews by just doing a
bunch and memorizing answers to whatever I miss. I always try to get
the company to accept a code sample so I can show that I can actually
DO the job instead of talk about it, but most opt for the tech
screen first.
Can anyone recommend any books on OOP design that may help with these
stupid tech screens? Or do you have any other recommendations on this
at all? I’m really just interested on getting input on how to be both
a stronger interviewer with this respect (the interpersonal
interviews, etc. I’m actually very strong on), as well as a more
productive and better developer. I’m specifically - right now at
least - looking for a job doing Rails development, since I like it a
hell of a lot more than anything I’ve done with PHP and those are the
only two languages I know reasonably well. I just find that there
seems to be a very elitist culture among employers for Rails jobs, and
I’ve heard the phrase “not senior enough” more times than I care to
count.
Finally, regarding management. Has anyone else felt like there’s an
invisible barrier that people just will never give them a chance to be
in a leadership or management position? Every organization I’ve been
in, this has been a problem for me - zero room for career
advancement. Maybe it’s just me - I’m fully willing to accept that as
a reality. However, I suspect that it’s more a “management” ideal
where they don’t want good “nerds” becoming managers because they have
to replace those “nerds”. I don’t mean this in a derogatory sense,
but I think some typical “management” people do. Does anyone else get
this impression, or am I just full of it? And does anyone have any
tips on how I might be able to transition out of development at the
company I currently work for, and into a management role at another
company? What kind of job titles or descriptions should I be looking
for? I’ve looked for things such as “web manager” or “development
manager”, “development director”, etc., but those types of jobs seem
to be few and far between.
I know this isn’t purely a Ruby or Rails related question, and I do
apologize for that. However, I know that there are some experienced,
knowledgeable and helpful people on this list, and I’m hoping one of
you will be able to offer some advice.
Thank you!