Archive for August 17th, 2007

Worst. Interview. Ever.

Friday, August 17th, 2007

Updated 08/18/2006: Check out the discussion about this post on The Serverside.


What a waste of 27 minutes. Two of us were asked to do a 1-hour phone interview to see if it was worth bringing the candidate in from Indianapolis; another team member had already done a phone screen and had a good impression and thought it was worth our time.

The candidate was being considered for a Senior Java Developer position; we’re ideally looking for developers with Spring and/or Hibernate experience.

We thought that the resume seemed suspect; 5 pages for a 6-year career seems like a bit much, and in looking at the details it was a very repetitive resume, although it was loaded with buzzwords and acronyms:

Expertise in Java, JSF, Oracle ADF, Struts, JSP, Spring, Hibernate, JSTL, Servlets, JDBC, Applets, Swing, JNDI, RMI … Experience with JUnit, Log4J, ANT and Hibernate … Experienced in patterns like MVC, Session Facade, Business Delegate, DAO, Value Object, Service Locator and Fast Lane Reader.

Q: So tell me the difference between Statement, PreparedStatement, and CallableStatement and when you’d use each:
A: Um, you use a Statement to perform a query from a database.

Q: Sure, but when might you use a PreparedStatement or CallableStatement instead?
A:

Q: According to your resume, you’ve used the Fast Lane Reader pattern. What issues were you trying to address?
A:

Q: Ok, so let’s get past raw JDBC – we use Hibernate here and according to your resume you’ve used it fairly recently – how did you use Hibernate in the past?
A: Mostly for 1-1 mappings, but for many-to-one mappings involving collections we used JDBC.

Huh? Ok, I’ll be nice, let’s change direction a bit.

Q: It says on your resume that you’ve written an Exception handling framework. Actually, I see that you’ve written two of them at two different places. That sounds interesting – tell me about that.
A: We wanted to replace our many exceptions with one exception.

Hmmm. Doesn’t sound like much of a framework.

Q: Ok, more generally though – if you were writing a module and realized that you needed a custom exception, what factors would you use to decide whether to create a RuntimeException or an Exception?
A: I have no idea how to answer that question.

Thank you – finally, some honesty. Switching gears again …

Q: Let’s talk about the Java framework for a bit – you’re familiar with Collections I’m sure. What’s the difference between a Set and a List?
A: You use an ArrayList to gather a Collection to render the data in a JSP.
Q: Um, ok. But when might you use a Set?
A:

Changing direction again …

Q: Tell me about JSPs. Ideally in an MVC application there’s a clean separation between the tiers, but often we end up overlapping, so for example the view ends up having some business logic in it. Tell me how you might manage that?
A: crickets …
Q: Ok, I see that you’ve used JSTL – what are some of the more commonly used JSTL tags?
A: Form, Logic, Iterate.
Q: Sorry, those are Struts tags, right? I was asking about JSTL – your resume says that you’ve used them.
A:

Ok, so we need to throw this guy a softball …

Q: How about JavaScript. You’ve used Ajax – do you use frameworks, e.g. Prototype, Dojo, etc.?
A: No, I tend to write my own, for example to validate form input.
Q: Ok, how might you validate an email address?
A: Check for an @ symbol, that sort of thing.
Q: Really? That’s your only criterion? What if there’s 2 of them. Or spaces?
A: Well, then you can break the string up into parts and …

AAAAAAAAAARRRRRRRRRRRRRGGGGGGGGGGGGGGHHHHHHHHHH REGEX. SAY IT! REGEX!!!!

Ok, we’re all set. We’ll confer and get back to the contract agency.

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 License.