Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Why are Java developers so boring?
16 points by jread on March 28, 2011 | hide | past | favorite | 22 comments
Over the past few months I've interviewed about 2 dozen Java developers. I'm leaving a consulting position with a large online auction company and they've asked me to help interview replacement candidates. They mandate use of Java for all software development. I don't generally stereotype, but I've become very frustrated with the type of candidates I'm interviewing. They are just so boring. While most of them know Java well enough, they don't seem to know or care about much else. They are usually very narrowly focused, accustomed to working on large teams where they manage some little cog, have little understanding of full stack web development, and don't seem very passionate about software development. I'm new to interviewing, and I'm interested to know if this is typical, or if we are just getting a bad batch of candidates.

This might have nothing to do with Java and everything with your company.

Maybe you are attracting boring people because the company presents itself as a place for such people.

Maybe the company has a reputation or a vibe that simply does not attract the kind of people you are looking for.

Maybe job openings are worded in such a way that they attract these kind of people.

"... consulting position ... large ... company ..."

This may be part of your problem. I've been doing software startups in Java since Java 1.0.0 days, and I've had no problem finding extremely talented developers with broad backgrounds and deep expertise. I've certainly seen my share of developers who have done freshman-level projects all dressed up in EJB, but they don't get hired.

I suspect that given an interesting job at an interesting company will attract more interesting candidates. And as has been often noted on HN, the best candidates aren't going to appear via headhunters, they'll appear via connections.

Maybe you're asking the candidates boring questions?. Try asking them moderately probing, but non-boring questions like:

  "What made you want to go into software development?"
  "If you weren't a developer, what other job would you want to do?"
  "What features do you especially like about Java?"
  "What was an interesting problem that you've solved?"
  "What was the most challenging bug that you've fixed?"
  "Why do you want to work here, as opposed to some other place?"
  "If you could change the Java language, what would you change about it?"

I'm surprised this is the only comment potentially criticizing the interviewer. My guess is that the questions are poorly asked and applicants never really get a chance to shine.

Thanks, I'll try a couple of those in the next interview.

I think this has less to do with Java per se and rather the types of candidates you will see in 'safe' languages.

By safe, I mean, easily employable languages. People working with haskell, clojure, scala, factor or whatever more obscure language probably aren't doing it because it makes them employable.

Plenty of people working with Java, PHP etc are doing it because it makes them employable. That doesn't mean that all PHP, Java etc developers are only interested in getting a paycheck but given the pool you are selecting from, you are more likely to select such a person at random then if you were selecting from a pool of developers working in a 'purely for the love of it' language.

I've started doing Java development for a day job again and between that and other projects, have met plenty of people who are java developers who are quite the opposite of what you have seen so they are out there. I've also met plenty of people who fit the stereotype you are talking about.

Doesn't matter if it's Java, .NET, ColdFusion, PHP or whatever. The majority of programmers out there are 9-to-5ers and couldn't care less about your company's vision. They're just looking to get hired, be told what to program, write code, turn it in and go home.

I think the problem is that most of the passionate, big picture developers already have jobs or have started their own companies.

BTW, this isn't intended as a flame post, I just would like to know if this is typical or not. I keep recommending to my manager that we hold out for someone that has more breadth of experience, but at this point I'm not sure we are ever going to find that type of candidate.

I think Java as a whole, especially its use in enterprise development, is actively trying to prevent the developer from doing anything out of the ordinary, or even wanting to understand anything outside of the task at hand. This is preferable as it allows for effective division of labor, and protects each part from too much damage from any other part.

I think you may be over stereotyping a little bit, but there may also be something else going on which is that anyone seeking a job may want to appear as close as fitting a mold as anyone else, errr, such as not to seem dangerous or wild or uncontrollable ... especially in the enterprise.

When you say Java I immediately think of all the crappy programmers in my CS program who would choose Java as their favorite language even when it would be the worst possible choice. Hackers don't program in Java unless Java is the only solution. If you want better programmers offer more money. If you're tired of interviewing make them take an online coding test before they get a face to face interview. I wouldn't event interview someone if they can't pass the code test.

There are a couple reasons that you might be getting bad candidates. Since you are working for a large company, you will be getting candidates who are more interested in stability then anything else. i.e. your 9-5ers.

Your posting could just be to generic and focused on Java. i.e. throw some of the other technologies that you use into the job posting, JSP, Tiles, Struts, Ajax, etc. Hopefully the candidates will have some experience in the full stack then.

Secondly, be picky on who gets through your candidate selection. My process was to scan their resume for keywords that showed me they had experience in what I wanted (the full stack). I would then have HR ask them 10 tech questions over the phone. If they seemed to do alright with that I would have them brought in. The very first thing they did was take a technical test based upon the desired skill for the job. If they passed I would meet with them, if not I would send them packing.

The key is to not waste your time on interviewing all the 'ok' people but interview only the good people. You have to have them jump through some hoops before you meet them face to face.

I'd be shocked to find anyone I consider a great dev willing to jump through all those hoops for a consulting gig in big, boring corporate-land. For us, the hiring process is as much about a company proving itself to us as the other way around. Procedural red-tape and long talks with non-technical HR drones are huge red flags that will send many (most?) great devs heading in the other direction.

there are multiple types of candidates, most likely the ones you are getting are active job seekers and you need to be finding the passive job seekers. The passive job seekers are secure at their job, do a great job, but might jump ship for the right opportunity but tend to get jobs through recommendations and referrals. The active job seekers as a pool have a high rate of crap. If your company has a bad recruiting department they probably just arent finding good candidates. We can't afford a great recruiter so we screen about 200 people to hire 1 (product manager)

Maybe change the candidate requirements to ask for Python or Ruby knowledge, even if it's not required for the actual job. You might get more people with enjoy programming rather than those for whom it is just a job.

However, be upfront with anyone who contacts you and asks about Python/Ruby usage, e.g. "The environment is basically all Java, but we want a candidate who has broader knowledge of development outside the Java ecosystem".

My two cents.

Done this way, it could easily come off feeling like a bait and switch. As a potential employee it would harm my opinion of the company unless it was clear enough in the requirements that you do Java dev but want a more rounded individual.

I wouldn't lose hope just yet. In my experience it takes on average 6 months to find a qualified full stack java developer, or just any qualified developer. Just by luck of the draw, you're going to run into 9-5 ers more than anyone else. For most people, a job is a job.

Why do you need interesting people for a consulting position at a large online auction company?

We are developing a new application that operates separately from the auction software. The team is small and we all have fairly diverse roles.

What carrots does the position offer that would entice an applicant who, presumably, is skilled enough to get an enterprisey job nearly anywhere?

Not many I suppose, a decent consulting rate is about all. Those are things I don't have much control over.

One other thing, try to recruit from people your current employees know to get the passives vs. job ads

I can't think of anything that will erode your soul faster than enterpriee Java, except maybe enterprise .Net.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact