Application Developer Interview: 10 Steps to Success, Page 2
4. Business Knowledge
There is no doubt that knowledge of the business is a great supplement to your technical skills. No employer would pass up an opportunity to interview a candidate who has previous experienced working in the same business area. Unfortunately for employers (and fortunately for you), it is very hard to find a technically proficient person with good communication skills and with specific business knowledge of the job. Furthermore, employers look for candidates who have general experience in the underlining industry (brokerage, banking, manufacturing, publishing, and so on).
What can you do if you are interviewing for a position that belongs to an industry that you have no previous experience with? One way you can distinguish yourself from the rest of the candidates is by depicting your interest and knowledge of the organization's line of work. Try finding out about the specifics of application development for this particular industry and, more specifically, for the department at which you are interviewing. For example, if you are interviewing at a publishing company, show the interviewer that you understand the challenges of the industry and the rewards of working there. If, for example, the department you are interviewing at is responsible for maintaining client and product data and allowing users to view and modify this data, try to explain that you understand the challenges related to creating and maintaining such applications.
5. Relational Database Knowledge
Name one application that is not connected to a relational database. Let me think ... I can't come up with one. Almost all modern applications work with a relational database. That is why it is essential for a candidate to have advanced database knowledge. What are some of the things you must know? Basics Topics include SQL, Entity Relationships, Data Type, and Table Definition Language. Advanced topics include Optimization, Stored Procedures, PL SQL, Triggers, Tuning, and DBRM Commands. I am not advocating that you should become as proficient as a database administrator, but you should be able to freely discuss advanced topics. If you failed to acquire advanced databases knowledge during your previous work engagements, you can acquire it by reading technical literature on the subject.
6. Area of Expertise
What is your area of expertise? Mine is web-based application development using J2EE. You have to choose your area of expertise in application development and cultivate it—become an expert. I am skeptical when a candidate claims that he is an expert in web-based, asynchronous, and fat-client applications. If a job requires a web-based application developer, I would prefer to find one that has mostly web-based application development experience. If you are a subject matter expert in a given area, you have a far greater chance of getting the job you want.
Forgive me for stating the obvious: Your résumé is the first impression of you. So, beside the fact that your résumé must be neat and informative, it must also have two characteristics:
- Executive Summary. An executive summary must explain, in three to four sentences, the position you are seeking and the most valuable skills you possess for the position.
- Resume Length. I have seen a number of resumes that are more than two pages long; I tend to reject them just because of their length. I attribute long resumes to either the candidate's inability to concisely select the most important aspects of his/her work experience or his/her inadequate word processing skills (double spacing, wrong font and size, or wide margin length).
8. Full Application Development Cycle
Almost every job posting on Monster.com (a popular job posting site) contains this line: "Candidate must have experience with all software development life cycle phases." It means that hiring managers place premium value on full development cycle experience. Let me review the system development phases:
- Project planning, feasibility study: Define the scope and create the project charter.
- Systems analysis, requirements definition: Define project activities, work-breakdown structure, and technical aspects of the project.
- Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudo code, and other documentation.
- Implementation: The real code is written during this phase.
- Integration and testing: Brings all the pieces together into a special testing environment. The production is QA tested.
- Acceptance, installation, deployment: The final stage of development, where the completed product is ready for production use.
- Maintenance: What happens during the rest of the software's life: changes, correction, additions, moving to a different computing platform, and more.
What do you take away from actively participating in a full development life cycle? You take away the working knowledge of all the processes of a project—stakeholder relationships, implementation and testing team dynamics, integrated change control processes, business requirements, time/cost/budget constraints, risks, and resource/procurement/communication management. Most of all, you start understanding the success factors of a project.
It took three years of my professional career as an application developer before I could claim that I had completed one application development life-cycle. The odds of successfully completing a project (on time, under budget, according to scope) are not great; in the year 2000, only 28% of all projects were considered a success.
9. Ask Questions
You should ask at least three questions during/at the end of your interview. When you ask questions, you let your interviewer know that you are interested in the position. It also lets you make a more educated decision about whether this job is right for you. Avoid vague questions in favor of specific ones:
- What is the group size and structure?
- What applications are you supporting/developing?
- Are you budgeted for next year?
- Are there opportunities for professional growth?
- What will my regular day look like?
10. Offshore and Onshore
"If you can't beat them, join them." Offshoring and outsourcing plans are in motion in every organization and in every aspect of application development. If the company you are working for is not outsourcing some parts of application development today, it will most definitely do so tomorrow. But there is good news: When it comes to outsourcing, certain equilibrium between onsite and offshore resources exists; an organization can not fully outsource all of its work. In application development, there are processes that are unwise and/or impossible to outsource. Outsourcing is about cost cutting. But, what happens when you cut cost? The project scope and timeline suffer. You have to understand (and sometimes argue) what it is that separates you from an offshore resource. But also, you absolutely must understand (and sometimes argue) the benefits of offshored/outsourced application development.
This article highlighted ten things to know for a successful application development interview. Such interviewing tips as self confidence, proper dress code, eye contact, and being on time are outside of the scope of this publication, but they must not be overlooked. It is the overall impression that will land you a job.
About the Author
Aleksey Shevchenko has been working with object-oriented languages for over seven years. For the past four years, he has served as a technical lead and a project manager. Aleksey has been implementing Enterprise IT solutions for Wall Street and the manufacturing and publishing industries.