Looking for some input on career advancement w/ Rails

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 (c) 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!

Hey all,

I'm having a tough time finding a good job working with Ruby and Rails, 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

I understand your pain - I've meandered into developing over many years, but with no history of formal training in computer science, so some of the terminology that should be "obvious" goes past me too.

(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 (c) 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.

You don't say where in the world you are... I'm in the UK, and focus on short-term contract/freelance roles. The market for Rails here is quite quiet - with more permanent jobs appearing than contracts. But the permanent rates seem very low - I think a lot of companies are hoping to get graduates with no experience to hit the ground running...

On the first point, am I being too paranoid about working for start- ups? <snip> is a fear like this in today's modern silicon valley environment?

It's just as likely to happen for whatever company you work for - I say to my friends, who claim they couldn't take the "unpredicability" of contracting, that at least I know I have a job for the next three months, which is more than they can say :wink:

it's just the formalized theoretical stuff I'm weak on. 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?

The Object Orientated Though Process

Coder to Developer

Computer Science: an Overview

I've read all three of the above, and the first two are very good personal development books. The third is good for filling in the blanks - and you might skip chunks of it.

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?

Management: they're not starting up their companies to make *you* rich :wink:

Have look at "The Passionate Programmer", by Chad Fowler. It's worth the time you spend reading it.

I've been working many years as project manager, and now I'm very happy working "only" as senior developer. I think career advancement isn't equal to "advance" to management jobs...

Wow, that's negative. Sure, in some cases people didn't get paid for their last couple of weeks work which is unfortunate, but "screwed"?

If you got paid while you were there and learned a lot, what's the big deal? You could as easily come to work at BigCo one day to find out your division was being shut down and poof! there goes that job.

How does that feel different? Having gone through both scenarios, I'd say: not at all. Next step in each case: go find some other work.

And personally, assuming I wanted a "job", I would far rather be part of a small team at a startup than Anonymous Cog # 389976 at BigCo.

YMMV :slight_smile:

Hassan is right - I'm working at a smallish startup (<100 employees) - it's scary at times, but I don't live in fear of missing a paycheck. Conversely, the budget and purse strings are rather loose here, and the perks are often nice. The best benefit of taking a job at a startup is the opportunities for creativity in problem solving. At BigCo, they already have a process fully defined, you're Cog # 389976, you do your part of the process. At TeenyCo, nobody knows quite what they're doing half the itme and *you get to define the process* from whole cloth. It's cool. Try it, you'll like it.

Note that, depending on the company organization, a title like "project manager" may not actually be a vertical promotion from "developer". At the company I work at (a digital services wing of an adverstising / PR business), project managers are the principal liaison to clients and handle a lot of the tedious parts - collecting requirements, chasing down documents, tracking deadlines, triaging incoming "OMG THE SITE IS DOWN" calls, etc. However, as a developer, I don't "belong" to a particular PM and work with several depending on load and client needs.

You may also want to expand your search beyond "Rails-only" shops; there's an awful lot of places that are carrying around legacy PHP, etc. systems but want to develop with the "new hotness" for new work. Being somebody who can handle dealing with both would seem to be a significant advantage.

BTW: if you were in Ohio, I'd be wanting your resume. We're currently looking to hire a developer with (mostly) PHP and a little Rails background. A certain bank whose name is a verb starting with C has seriously depleted the local Rails pool... :slight_smile:

--Matt Jones