Application Developer Interview: 10 Steps to Success
The national IT job market has been on the rise the past two years. The hiring statistics over these years have revealed an interesting trend: Companies prefer to hire strong application developers onshore and junior/entry-level developers offshore. Furthermore, hiring managers are looking for "all-around" knowledgeable employees—self-starters, independent, technically proficient, business savvy, and so on.
What does it mean for us, the local developers? It means that the current interviewing process is more vigorous than ever. Technical interviews are only a part of the whole interviewing process. Do not get me wrong; the technical interview is still an essential part, but it is not a sole factor in the ultimate decision making. The contemporary onshore developer is a programmer plus business analyst, designer, architect, DBA, and often, project coordinator. If you are just a programmer, you must re-evaluate your current situation and start evolving with the evolving job market because your job might be at risk.
If you are looking for a new position in IT, here is what hiring managers are looking for:
1. People Skills
During the interviewing process, you must show at least three of the seven traits listed below.
- Self-Discipline: Ability to choose your task, create a plan of attack, and execute the plan.
- Motivational Skills: Ability to stimulate others to action toward a desired goal.
- Organizational Skills: Ability to effectively control resources in the time-constrained environment.
- Communication Skills: Ability to effectively communicate with others by using presentation, writing, and listening skills.
- Strategic Skills: Ability to apply methodology for systematically spotting and exploiting opportunities to improve one's position.
- Conflict Resolution: Ability to control how conflicts are handled and resolved in a group setting.
- Assertiveness: Ability to distinguish yourself as a leader and a person of authority.
If you feel you do not possess any of the traits listed above, you should come up with a plan of action to acquire them. There are a number of great books you can read that will help you acquire these skills. Please consider the following books:
- Cairo, Jim. 2004. Motivation and Goal-Setting - How to Set and Achieve Goals and Inspire Others. New York: Career Press.
- Chandler, Steve and Richardson, Scott. 2005. 100 Ways to Motivate Others. New Jersey: The Career Press.
- Steven W. Flannes and Ginger Levin. 2005. Essential People Skills for Project Managers. New York: Management Concepts.
- Gregg Lee Carter. 1994. How to Manage Conflict in the Organization. New York: AMACOM.
- Stewart Levine. 2002. The Book of Agreement: 10 Essential Elements for Getting the Results You Want. New York: Berrett-Koehler Publishers.
Furthermore, during your interview, you should be ready to discuss your previous professional experience where you had shown your proficiency in the skills above. You also should be prepared to explain what each skill means to you personally.
2. The Basics
When I conduct interviews, I always ask several elementary questions. Why do I do that? I want to make sure that candidates have done their "due-diligence." I want to know if they came prepared. For example, I ask senior Java Developers relatively easy questions such as the following:
- What are reference type variables and primitive type variables?
- How are constants implemented in Java?
- What is an expression?
- Name ten operators in Java.
You should always be ready to answer these questions. Remember, your interviewer cannot assume that you are senior only because you say so; you have to be ready to prove it.
3. Advanced Topics
If you are a senior application developer, you must be ready to discuss advanced topics of the language. The following list highlights advanced topics for Java developers (skip to the next section if you are not a Java developer).
- OO Design Patterns: Application developers must know at least five "design patterns." Every senior developer has come across many design patterns in his/her career. However, he/she might not know how to effectively explain how each pattern works and what the benefits are of one over the other. I recommend you do some reading before you start interviewing. This is a good start: http://en.wikipedia.org/wiki/Design_Patterns.
- UML: Unified Model Language has long ago become a required skill for business analysts, software developers, architects, UI designers, database professionals, testers, and project managers. UML is used as a standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems. UML is also used for business modeling and other non-software systems. There are at least three UML diagrams that a senior Java developer must be familiar with:
- Use-Case Diagram: Shows interaction between application users and application functions.
- Sequence Diagram: Depicts interactions between objects in the sequential order that those interactions occur.
- Class Diagram: Shows static representation of classes and interfaces along with relationships and collaborations between them.