1

I am to interview a developer for a team lead role. Can you suggest few good questions for the following topics:

  1. Spring 2.x or 3.x
  2. EJB
  3. J2EE
  4. Java Multithreading

Thanks.

Sid
  • 4,510
  • 14
  • 51
  • 100

3 Answers3

8

It doesn't add up to ask questions that are not relevant to your projects. So first of all figure out what technologies and frameworks are used. Then you can ask questions in next areas:

  • Java Core (Object#methods(); String#intern(); Checked & Unchecked exceptions and when should you use them; Memory Leaks)
  • Collections API (ArrayList vs. LinkedList; how HashMap works and what's the difference betwixt HashMap, Hastable & ConcurrentHashMap; what is a ConcurrentModificationException; what concurrent collections do you know)
  • Databases:
    • General (prepared statements; mapping class hierarchies to the relational DB; types of locks; transaction isolation)
    • ORM, let's say we're talking about Hibernate (Levels of cache; examples of HQL; problems with mapping concrete collections such as LinkedList; caveats implementing equals())
  • Concurrency (atomic operations; volatile; Executors; BlockingQueue; detecting deadlocks in applications)
  • MOM (in what situations it's better than SOAP; ask for some EIP)
  • Spring IoC (how to define an ArrayList in XML; bean scopes)
  • XML (namespaces; SAX vs. DOM; XML Catalogs; XPath expressions)
  • OO:
    • OOD (LSP, SRP, OCP, DRY, ISP; give some example to the interviewed guy to solve some OO-problem)
    • Design Patterns (all 3 types of Factories, Lazy Singleton with a proper synchronization, Command vs. Strategy)
  • Algorithms and structures (trees, heaps, lists; soring, iterating, etc.)
  • Testing (what types exist; TDD; testing DAO layer; some puzzle to test)
  • Build tools, e.g. Maven (dependencyManagement; profiles; resource filtering; deploying artifacts/applications)
  • CI (why do we need it; what problems it solves)
  • Dev process (Agile/Scrum, RUP)
  • Work in team, team management skills (there might be plenty of questions, I'm too lazy to give examples :))
Stanislav Bashkyrtsev
  • 11,403
  • 7
  • 33
  • 38
  • "MOM (when and why it's better than SOAP..." - what do you mean by this? as I don't think MOM is comparable with SOAP – Vlad Mar 28 '12 at 23:42
  • Thanks, I've made changes, I meant: in what situations MOM is better. Like: – Stanislav Bashkyrtsev Mar 29 '12 at 04:26
  • Sorry, to continue.. Like: because of its asynchroneous model it can be used when the reply is not expected in nearest future, it can be transactional, it can be used in pub-sub architecture, it can use durables, guaranteed delivery, it allows implementing sophisticated EIP and so on. While SOAP is great for open public API. And worth mentioning here that SOAP can be used over JMS (though for me it's hard to find a reason why you should complicate things with SOAP if you already have JMS). – Stanislav Bashkyrtsev Mar 29 '12 at 04:43
  • again, you can't compare MOM+JMS, which is an integration mean (middleware+API), and SOAP - a message format protocol (from the JMS standpoint a SOAP message is the content of a TextMessage). Both solve different types of problems, and can be combined in one solution without overlapping. – Vlad Mar 29 '12 at 20:27
  • Makes sense.. Any suggestions on how would you call a synchronous web services in general as an opposite to asynchronous messaging systems? – Stanislav Bashkyrtsev Mar 30 '12 at 08:37
  • I guess, a simple answer would be: "via web" :), meaning that mainly (99.8% of cases) web services are exposed via HTTP. Though, in Java you would normally use some framework implementing JAX-WS (JAX-RS for RESTful services) framework, eg. CFX, Axis, Jersey etc. – Vlad Mar 30 '12 at 14:21
2

Take a look at this question. It's pretty much the same question as yours.

Community
  • 1
  • 1
ryanprayogo
  • 11,041
  • 11
  • 47
  • 65
2

One that immediately sprung to my mind regarding EJB - if you want to see if they really have some experience with EJB ask them

"When EJB 3 was introduced - tell us about the troubles you had deploying your first EJB3 applications on different Application Server implementations with regard to differences of the actual implementations and the official specs."

We had endless problems where JBoss and Oracle Application Server etc. (and even GlassFish) did not behave the way they were supposed to. The worst part was mixing EJB 2.1 with EJB 3...

Another one about Java EE - let them explain to you what Java EE actually means to them - there are a lot of misconceptions about this.

emboss
  • 36,575
  • 7
  • 93
  • 103
  • what if the first ejb used was 3.0? – KevinDTimm Aug 15 '11 at 22:45
  • Then you still had enough problems to solve in the beginning. I'm just saying if somebody has stories to tell there then you can be sure that they *do* have some experience. I'd prefer someone like that over somebody who pretends to be an ace in EJB but has nothing to respond to this question. There's the chance of being wrong, sure, but still... – emboss Aug 15 '11 at 22:49