In some respects, even the most technical role demands qualities common to strong candidates for all positions: the willingness to learn; qualified skills; passion for the job.
Even college performance, while it helps you to assess formal education, doesn’t give a complete picture. This is not to underplay the importance of a solid background in computer science. Some things to look for:
• Understanding of basic algorithmic concepts
• Discuss basic algorithms, how would they find/think/sort
• Can they show a wider understanding of databases
• Do they have an approach to modeling?
Do they stay up to date with the latest developments? If so, how? Probe for their favorite technical books. Who are they following on Twitter, and which blogs do they turn to?
Are they active on Github? Do they contribute to any open-source software projects? Or take part in Hackathons. In short, how strong is their intellectual interest in their chosen field? How is this demonstrated? Ask for side projects (like game development). Committed, inquisitive candidates will stand out.
Computer Science Questions #
- How do you know if a linked list has a cycle in it? As in, one of the nodes in the linked list points to a previous node in the list.
- How is the preemptive threading model different from the cooperative threading model?
- What tools & practices would you consider necessary for a Continuous Delivery solution?
Role-specific questions #
- Is Java a statically or dynamically typed language?
- Do arguments in Java get passed by reference or by value?
- What is the difference between an abstract class and an interface and when would you use one over the other?
- What is a factory pattern and how would you implement the Singleton pattern?
- What is the difference between “==” and equals(…) method? What is the difference between shallow comparison and deep comparison of objects?
- How is Java SE related to Java EE?
- How are Runtime exceptions different from Checked exceptions?
- What are the most important features introduced in Java 5, 7 and 8 respectively?
- Choose a Java EE platform API and give a short description of it.
- In a 3-tier application running a Java application server you notice freezes for several seconds during high load. What are the most likely reasons? How would you troubleshoot them?
- Servlets 3.0 introduced async support. Describe a use case for it.
- Why do you think lambda expressions are considered such a big thing for Java 8?
- Is this possible in Java?
A extends B, C