What the interviewer looks for? – Part 2


Part 2 of this discussion focuses on interview assessments designed for the J2EE Platform. Most of the Tech Interview Sessions revolve largely around the development environment that the candidate is expected to work on. The figure below depicts a common environment for most J2EE projects. Technically, you can expect a question in any of the logical components wihin this environment.

The extent of technical coverage in an interview will obviously depend on your experience levels. For a fresh grad the focus would be more on the fundamentals where as for roles that are equivalent to a Technical Analyst / Lead / Architect the coverage would be a lot more broader and wholistic. I have prioritised the top areas of coverage based on what I have seen and experienced in the industry.

The candidate will be assessed for the following Technical and Functional (if you have domain expertise) competencies:
1. Skill Assessment to design, implement, administer and maintain an enterprise application on the J2EE platform
2. Understanding of the building blocks for Presentation Layer (JSPs & Servlets), Business Layer (EJBs and Web Services), Back-end Layer (JDBC and J2EE Connector Architecture)
3. Concepts related to application security
4. Concepts related to distributed applications and clustering
5. Functional knowledge / Business use cases related to Banking / Retail / Airline Verticals
6. Expertise on Developer tools such as “Eclipse IDE” and “Ant” that are required to design / develop, build, package and deploy web application software
7. Strategies for performance tuning of an existing web application
8. Testing and Quality Assurance – Concepts related to Functional Testing
9. Use of Ant scripts to generate nightly or weekly builds. Use of JUnit framework to build automated scripts that can be run to test scenarios after a nightly or weekly build
10. Performance Testing using open source frameworks such as JMeter
11. Overview of Transactions in a Distributed Environment (Transaction Isolation Levels that address data inconsistency scenarios)
12. JDBC Architecture and best practices to manage Database connectivity
13. Compare programmatic and declarative transaction scoping
14. How to Implement a container-managed transaction policy
15. Best practices to execute SQL statements, Construct Database Queries and Process results from a Database Query
16. Overview of Enterprise Application Architecture and Patterns – Understanding N-Tier Applications : Use a real life scenario e.g. Banking system
17. Modeling Techniques – UML (Usecase Diagram, Class Diagram, Sequence Diagram etc)
18. Web Application Design Strategy – Model View Controller Pattern (MVC) implementation for eg. Using Struts Web Application Framework
19. Other related J2EE patterns (Front Controller, Service Locator, Session Facade, Business Delegate, DAO) for Presentation, Business, Service Integration and Persistence Layers
20. Implementing High Availability Architecture – Application Failover and Clustering
21. Fundamentals of web services
22. List the specifications used to make web services platform independent
23. Java APIs used for XML processing and web services

Also, in parallel please be aware that as your conversation with the interviewer progresses, your Soft Skills are being seamlessly assessed mostly on the following parameters:
1. Integrity
2. Problem solving skills and learning/questioning attitude
3. Ability / Willingness to participate in requirement analysis, design and post production support (bug fixing)
4. Good Client interaction skills – communication, analytical and articulation skills
5. Team player – Willing to acknowledge and respect Team Priorities before Self
6. Proactive resolution of Technical issues, coding and configuration issues to ensure delivery of module/project
7. A formal approach that is process oriented

To summarise, enterprises are looking for Technical Human Resources who can wear multiple hats and execute multiple roles. From the Enterprise point of view, it reduces the time and cost overheads of hiring and inducting an additional person into a Project. From the Candidates point of view, it is imperative that he/she raises his/her competency level to acquire a broader perspective of the technology platform and architecture beyond just programming language proficiency.

Advertisements

5 comments

  1. Bharat · January 1, 2011

    Very informative..Thanks.Looking forward for more posts from you.

  2. Neha Sharma · January 7, 2011

    Thanks this helps! Can you please suggest some projects that I can try developing and hosting for review?

    regards.

    • Suraj Nair · January 7, 2011

      Hi Neha,
      The first step would be to choose a business domain that you think you would be excited to work with. Let’s say its the retail domain that you prefer, then you can start by building a simple web application that handles the inventory of a Smartphone Retail Store. Start with the Minimum Viable set of Usecases and test, gather feedback and iterate.

      Feel free to reach out to me for any help.

      thanks,
      Suraj

  3. Shobhit Saxena · January 7, 2011

    Suraj,
    Don’t you think, that for a fresh grad, the set of guidelines that you have prescribed is a bit too vast to cover. Our projects (Academic) currently are of the nature such as Hostel Management, Vehicle Management etc that can be done using the PHP framework + MySQL. So why go for J2EE?

    Shobhit.

    • Suraj · January 7, 2011

      True Shobhit. You can focus on Php + MySQL if that is what you are comfortable with. My point was from the industry perspective. Most of the projects in the IT services industry revolve around enterprise applications either based on J2EE or .NET. It would keep you better prepared should you try out an architecture that can mimic a real life application.

      Suraj

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s