Why a Java Guy Was Hired for a Ruby on Rails Job

Earlier this week, I explored the frustrating process a startup, WidgetCo, went through as it searched for an engineer who could work on its Ruby on Rails platform. After tepid results, the company’s leaders switched gears to look for a skilled engineer who could be trained in the necessary technologies. Here’s what happened once they relaunched their search.

Hiring Flow ChartFinding a ‘Trainable’ Engineer

Once it removed the “Ruby on Rails” filter from its job requirements, WidgetCo quickly discovered that its network of advisors and friends came up with more candidates. Some were .NET engineers or Java engineers who had the kind of interface experience WidgetCo needed. Others were Ruby on Rails engineers who just didn’t know the front-end technologies. They didn’t have someone to hire yet, but they at least had a talent pool to work with.

WidgetCo would have to teach whoever it hired some of the technologies. The successful candidate would have to have one characteristic that wasn’t in the job description: They’d have to be trainable.

Problem One: How to Train

Fortunately, there were training options. WidgetCo was willing to sponsor the new hire through a Ruby on Rails class at a local technology group. The company’s tech lead was also a pretty good teacher, patient and effective at showing others how to accomplish things. He could help, too.

There’s also nothing like on-the-job training. WidgetCo had a feature branch/pull request model in place and was already doing code reviews. Providing feedback is a natural part of that process.

Problem Two: Was the Candidate Trainable?

How do we know that a candidate is trainable? With just a resume and maybe a phone screen, how can we be sure that a candidate is a good fit? Additionally, how do we know that he or she can be trained within our budget and style? Someone who can only learn in a semester-long structured class wouldn’t be a good fit for WidgetCo. The company just didn’t have that kind of time or money.

However, trainable candidates leave clues in their resumes. Some characteristics WidgetCo looked for:

  • Experience with many technologies: For example, if a candidate knows only Java, learning a new language (Ruby) might be difficult. If a candidate knows Java, C++ and Python, learning another language would probably be easier. In engineering, it’s a truism that the first language is hard, the second language is hard, and they get a lot easier to pick up after that.
  • Experience with similar technologies: WidgetCo uses Rails, which is a Web framework. Experience with another Web framework, like Django or even ASP.NET MVC, should mean candidates had concepts they could apply to the company’s particular technology.
  • Lack of ego: Learning is a lot harder when there’s a big ego involved, so WidgetCo looked for signs of ego, like a need for inflated job titles. Frequent references to rewrites and restructuring of systems can also be signs of ego. They can indicate people who manipulate the system into something they understand, rather than taking the time to learn the system. One or two rewrites is normal, but many rewrites are a sign of something else — and possibly an inability to learn new systems. (This characteristic usually comes out more in interviews than in a resume.)
  • Ability to work with different types of systems: The more different patterns a candidate has seen, the more likely it is that a company’s patterns will be recognizable, or at least similar to something they’ve observed. Exposure to many different kinds of systems — across industries or different areas of technology — is another indicator of the ability to learn.
  • Knows at least one of your technologies: Learning goes a lot faster when some part of the system is known. It gives the engineer a solid foundation to work from, rather than floundering in an environment in which everything is an unknown.
  • Personal projects: Candidates who spend their free time working on personal projects are people who teach themselves after hours. They’re comfortable tackling problems in an unstructured environment, which is what a startup like WidgetCo will provide, at least in terms of training.
  • References learning opportunities: A candidate who talks about taking classes outside work or discusses going to Meetups or technology demonstration sessions is one who seeks to learn. They’re likely to have applied for the job specifically because it offers to teach them a new set of skills. That makes for an eager learner.
  • Gut instinct: This characteristic applies mostly during interviews and phone screens. The existing team has to believe that the candidate is trainable. Listen to your gut — can you work with this person and can you teach him what you know?

We Can Work With This

Armed with this new thinking, WidgetCo conducted another round of resume reviews, phone screens and interviews. Ultimately, they found their engineer. He definitely wasn’t the kind of person they’d originally pictured. He didn’t know Ruby on Rails at all, and he’d never worked in an Agile environment. He was a Java engineer, and he’d spent the past five years building interfaces for a large insurance company.

However, he met all the must-have requirements: He could build high-volume data interfaces, he could work directly with clients and engineers at client sites, and he had written an open-source data-integrity checking tool that was quite popular. It was safe to say he knew a thing or two about data analysis.

Finally, he seemed trainable. In interviews he said, “I don’t know” when he didn’t have an answer, and he asked intelligent questions. Between two rounds of interviews he dabbled with Ruby on Rails and came back with some code that, although definitely Java-like, was at least syntactically Ruby. He also asked for and accepted feedback on it. This was as close to the perfect candidate as WidgetCo was going to get any time soon.

And that’s how the startup and the engineer met. In my next post, I’ll talk about the retraining process itself, and we’ll reveal the end of the story.

15 Responses to “Why a Java Guy Was Hired for a Ruby on Rails Job”

  1. It’s nice to see employers coming to their senses with recruiting. But one thing I noticed absent from the list of “resume clues”: learning and mastering new technologies on the job in the past. Was that not a factor? Or was it considered a trivial factor because most programmers end up learning new skills and technologies on the job, one way or another?

  2. Matthew

    Okay. So here’s the real deal in several paragraphs:

    20 years ago I told recruiters not to ever use the word “experience” when they presented a candidate for a job. I told them I want you to ONLY send me smart candidates’ CV’s. How frustrated they were with my request.

    Bottom-line is the world has gotten it wrong for a very long time. Never hire based on experience (they could have 20 yrs experience doing it all wrong-I have met them.) Hire smart people. How do you know if someone is smart or not? Well some of the forensic analysis presented in this article is a good starting point.

    There are not that many smart people alive. 2-3 standard deviations to the right of the mean are where they sit. That ends up around 2.1% as the mean for 2 STDs and around .1% as the mean for 3 STDs so there in lies the second dilimna. To put all that to numbers it is only around 6.4 million persons in the USA.

    Next on the list, smart people often are prima donnas and the rule from all HR schools around the lands is that they are simply too much trouble and avoid them at all cost. But try to run an Advertising Agency without them and you will never get an advert on the Superbowl show…

    So if no one wants hire these 6.4 million people, then with a slight paradigm change companies can grab them up. I really doubt than the Department of Defense let any of those that are 3 STD’s form the norm out of their reach.. So forget most of those they are probably not available. But there is probably only about 320,000 of those around. Take them from other countries.

    So here it goes:
    Remove the word “experience” from the discussion
    Only hire smart people find those that are at least 2 standard deviations from the norm.
    And get over the fact that Prima Donnas are difficult people to work with.

    If your goal is have a mediocre company then be sure to make sure NO prima donnas are hired.

    If your goal is to exceed way beyond your competition, then internal folks need to just “get over it” when it comes to working with really smart folks.

    Yeah right, none of these guys were prima donnas: Steve Jobs, Bill Gates, Mark Zuckerberg, Mark Cuban, Jack Welch, Michael Jordon? What do they all have in common? That damn 2-3 standard deviations form the norm. Imagine if the HR depart had lifted the CV’s of each one of these difficult persons from the pile based on some nutter testing scheme?

    Companies drank that HR cool-aide and filled their ranks with utter idiots pushing paper back and forth. They use terms like company culture to rid themselves of smart people. “We’re all idiots here so don’t come knocking if you are a smart prima donna.” Too funny right?

    Finally the world is waking up…Hire STARS!!!! and win! Little known secret is that smart people get along well with other smart people.. it is when they have to meander down the curve to those that are less than 2 STD’s that things start getting shaky….. 🙂

    Smart folks who read this will applaud and relate and the rest will simply look for ways to insult. Please pardon my typos as I just blazed through this so I can get back to work.

    • Matthew, while you’re right that smart people are going to change the company, I’ve seen all too often that (1) they are expensive, especially if you ask them to do things that they don’t care about (2) they tend to focus on smart things, which usually is not business, which means that you have to find someone to rein us in to ensure that we stay focused (3) you can really only hire 1 or 2 before they start to clash and you’ll need to find a mediator that they will trust.
      And hiring foreigners? Not necessarily a bad idea, but I’ve found that the cultural differences often cause more problems than they solve, on top of the prima-donna aspect that may come with that intelligence.
      So first you need to hire someone who knows how to manage smart people, THEN go hire smart and watch things grow like crazy. We had that at my last company and everything was going great until the CIO decided that we were too expensive…apparently the company is now struggling to get anything done well.

      • Matthew


        You are taking this stuff in the right direction by providing clarity on how we are to get there. Every little bit we do to get into that expert execution domain will lead to profits and success for the firms that find a way to execute this. The DoD has done this for years. But they of course just never told anyone. They are the absolute smartest and harness their capability to stay ahead of the rest of the world.

        By all means make sure you hire a manager who is also smart else you have the situation where you have an idiot trying to fly a 747…
        As for expensive? I what context? Cost a lot more than the other folks or really low cost when you compare getting the work done right the first time or worse yet never getting it right? Folks go around blaming “ERP” for projects that fail. Projects (any projects) fail because some so called genius (otherwise known as an idiot with 25 yrs experience in getting it wrong) decides he/she is going to buy a vcr out of the back of car trunk i.e. hire cheap resources solely because they are cheap and based on their looks they are “supposed” to know something about computers.

        Your last sentence proved out my point.

    • Hm, interesting response Matthew. Here I sit, about 2-1/2 (but not 3) standard deviations up. And I’m no prima dona. The best job I ever had was full of mostly-very-smart, very capable, people. The worst jobs I ever had were full of mostly-not-very-smart people and one “rock star”. At one of the places, the “rock star” wasn’t even especially smart or knowledgeable, but the rest of the not-so-smart people didn’t know that. They had their rock star and that’s what all tech companies were supposed to have – and they were terrified of losing him/her. They were truly horrible places to be. Maybe I am helping make your point – a place FULL of smart people is good, a place that over-glorifies one “rock star” and has no room for non-rock-star smart people is a terrible place for a smart person to be.

      In short, I have always believed that being the smartest person you know is a horrible fate to be avoided at all cost. It brings everyone down, but especially it brings down the smart person who is stuck being the smartest person they know (or work with).

      • Matthew

        Surround yourself with the best people you can find, delegate authority, and don’t interfere as long as the policy you’ve decided upon is being carried out.

        Ronald Reagan

        I never mentioned the concept of a rock star. I am not sure what that is other than someone like Bon Jovi I suppose. When I said hire stars I meant folks that are smart. Not someone who tries to imitate a smart person. So I will agree with you your story background does lend credibility to the idea..that hiring smart people works. I have seen that theme a couple of times within the responses today.

    • Managers need to “get over” managing folks who might be smarter, at least about a few subjects, than the manager. The manager’s role is to MANAGE the folks who do the work, not be capable of doing everything.

      • Sports managers have to be humble enough to know that they are managing people more talented than themselves and the good ones win World Series, Superbowls and other big games. Other businesses can learn lessons about winning accounts by hiring people more talented than their managers and having the managers ensure that they succeed.

  3. I feel the need to make one of my favorite points about experience.

    Once upon a time I was in a company moving into a fairly new technology. We were not the first to enter, so there were people around with a few years of experience in it. They invested heavily in training from some of the best sources available. We all had quite a bit of training, and were smart people to begin with. But the boss was in a panic about our lack of experience in this new area we were investing heavily in. He became aware of a small company breaking up and their staff being available. He managed to grab one of them – the least experienced. “Five years of experience!” he uttered with awe as he worked to be sure to grab the one guy, offering whatever it took. “Don’t invest everything in this one guy” I cautioned. “In five years, we will all have five years of experience.” He did hire the guy, we worked together for five years.

    Five years later, I was lead on the projects, and he was doing the same thing he was doing Day 1, which was the same thing he did at the company he left.

    There is a huge difference between five years of experience and one year of experience five times over.

    • *i dont know how many deviations i am but i can get things done*

      One of the big problems is that if you have a project where people are actually going to code then PLEASE hire a manager who has been a developer in the past. I am a firm believer that a manager with no developer experience cannot manage a team of developers. I think the reasons why should be clear.

      Second, those so called smart people? More and more of them want to work from home. They work better from home. They manage their time better. Most of them probably end up working more hours too. I know working from home isn’t for every job(check DoD jobs that require secure internet connections) but a manager should be able to set this up otherwise – that is if he has been a developer before(here we go again). So if your 320,000 number is right then i agree go out and find people like me(i may or may not be one of those people but i do get things done). Sadly, most companies (and managers) have this mindset that if you are not sitting in a chair at the office when they walk by then you arent getting work done. That has to change.

      I also think that learning too many technologies is bad. My first language was Pascal(for a brief period) then C++, OpenGL, then Java then onto Objective-C doing Cocoa/iOS development which I absolutely love. At some point in your career you have to take a path. What do you really want to do until you retire or do you really want to “wear many hats” for the rest of your life. That’s fine when starting out but somewhere along the line you have to pick a subset of your skills to really master and go with it. All that being said, please STOP putting 30 different buzzwords in your job descriptions. You won’t get any smart people that way. Please also rein in your recruiters that you hire to make sure they dont “fluff” up the job description.

      Lastly, i got tired of looking or applying for jobs that didn’t offer relocation packages. If a smart(and here i mean someone who has a little intuition) person finds out you wont pay for relocation (assuming that you wont approve working from home) then to that smart person you have a cheap mindset. The assumption is there, right or wrong, that if you are that cheap then you must not be willing to find the best person for the job. And if you aren’t willing to find the best person for the job, then why would I ever want to work for you?

      • I concur. I also have no idea how smart I am in statistical terms when compared to my peers but I find that I am typically the most capable, if not one of the most capable, at every company I’ve worked. Maybe that means I’ve only worked at sub-par companies. Who knows? Whenever I am looking at a job listing now, I notice that I quickly skim and discard the jobs that list a bunch of buzzwords or catchphrases like “fast-paced environment”. If all you are looking for is buzzwords and X experience in X technology, then you only want what looks good on paper and you don’t care to connect with the candidate on an individual level to find out more about the person and what the person can truly do. Additionally, there is a huge chance that your current employees are bored out of their minds from mundane work and watch the clock for their opportunity to leave the office. This is because everyone is treated as an anonymous cog in a machine. Most smart people don’t want to work like that and many do prefer to have the option of skipping the office altogether.

  4. Orthoducks

    It says a lot about the state of the working world that an HR department would consider “hire someone who’s trainable” a radical innovation, and that an article about it would be news.

    The skills we’ll need five to ten years from now mostly don’t exist yet. It follows that anyone who isn’t trainable is, ipso facto, incompetent.

    If I wanted really good employees I’d look for people who don’t need to be trained because they are vperfectly capable of learning new skills on their own, and who gain skills as naturally as couch potatoes gain weight.