How to prepare for Java job interviews? describes that right preparation will empower you to choose from multiple job offers & negotiate better rates.
1. Firstly, reflect back on your past experiences and achievements by going through your resume to sell yourself more effectively. Think of situations where you have
- fixed performance issues, security holes, memory leaks and/or concurrency issues.
- took a project through full Software Development Life Cycle (SDLC) inclusive of Setting up a Maven repository, Jenkins for continuous integration, SonarQube for code quality & test coverage to facilitate TDD.
- Initiated & championed “QuickWins” projects to enhance end user experience.
- Debugged Spring transaction management & fixed issues related to incorrect transactional boundaries.
- Set up JMeter scripts to performance tune & profile Spring boot RESTFul web services using Hibernate as the ORM tool.
- Developed the initial vertical slices across all the layers & established the necessary patterns with unit testing strategies using JUnit, Mockito, Spring Test, and HSQLDB for a number of mission critical JEE applications for the rest of the team members to follow.
- Designed & developed low latency systems utilizing TCP sockets with non-blocking I/O in an event driven architecture
- Designed & developed a compliance system in Java utilizing
— JMS with Websphere MQ to asynchronously receive high volume of data as events
— Applied 450+ compliance rules externalized into spreadsheet with Drools for each event so that the business can be the custodian of those volatile rules.
— Produced compliance reports as PDFs using Jasper Reports.
- Designed & developed BigData solutions to ingest, store, and analyze large volume of data from external government agencies & internal systems with Hadoop Eco System, HBase NoSQL database & Spark.
2. Secondly, understand your prospective employers’ requirements and correlate the requirements to your experiences and achievements so that you can convince your prospective employer as to how you can add value.
Carefully inspect the job description, and adapt your answers. The mentioning of your accomplishments & involvements in the “16 technical key areas” are vital to set you apart from your competition. I am yet to work for an organization that did not face challenges relating to the technical key areas like design, performance, scalability, security, memory management, concurrency, etc, hence you can up-sell them in any Java job interviews.
What are these 16 technical key areas?
Most interviewers like to quiz you on design, performance, SDLC, concurrency, memory management, and security.
Learn more about these 16 key areas at What are the 16 technical key areas of Java programming and how will they help you fast-track your career?
3. Thirdly, research the organization you will be interviewing with. Employers like to hire those who show real interest in them.
4. You have no control over what questions get asked, and also not expected to know everything as Full stack Java/JEE technologies are very vast. Interviews are not memory contests to see who gets the most questions right. The quality and clarity of the answers you give to some of the key & FAQs type questions will not only make you standout from your competition, but also make your interviewers overlook other shortcomings like not having enough experience with a particular framework/technology or not knowing answers to some other less important questions.
Full stack Java/JEE technologies are very vast
One of the key decisions you need to make is whether to get a depth of knowledge in a few technologies with certifications, etc or to have a breadth of knowledge and market yourself as a full stack developer with sought-after know hows & skills, and improve on the depth with experience & ongoing learning? I chose the latter approach and has paid off for me. Most employers are after full stack developers with a wider range of skills.
5. Open ended questions don’t have right or wrong answers, and give you the greatest opportunity to sell yourself with quality answers with good practical examples. Focus on the 16 key areas to answer open ended questions.
1) Writing robust and quality code with proper unit tests. While coding, ask the right questions like is it thread safe? should this be executed in a transactional context? is this code easy for the humans to read? Is it easy to unit test? Can this cause potential memory leak? Can this cause potential performance issues? Is there any potential for security holes?, etc.
2) Kaizen (i.e. continuous improvement) Continuously improve code, design, architecture, and development/business processes. Can this code be further refactored? Can this SDLC or business process be automated to make it less error prone? Should we improve the security with 2-way SSL and two factor authentication?, etc.
3) Looking at things from both business and technical perspective . Looking at both the big picture to see how the business operates and pros/cons of the current architecture and then digging deeper into details to get things done.
4) Learning new things in terms of tools, frameworks, paradigms and technologies. Acquiring domain knowledge in finance or improving the much needed soft skills like communication and leadership.
Another good question is:
A. Get a good handle on unit testing, mocking, TDD, BDD, profiling, quality checking tools, etc. Writing quality code in Java Interview Q&As.
I have covered lots of open-ended Q&As to judge your experience, and it pays to jog your memory.
6. Most of the interviewers start with your resume, and then get into more technical questions. Brush up on the fundamental technical questions. If you are confused about what to prepare, I have put together lots of Java/JEE interview questions and answers, and focus more on the FAQs if you are pressed for time.
7. Answer the following question — Q. Why are you better than the other developers? [Hint: Sell yourself as a well rounded professional and not just as a techie, e.g. ability to look at the big picture, ability see things from both technical and business perspective, SAR (Situation-Action-Result) based answers to technical key areas, etc.]
8. Preparing through the steps 2 (i.e. Tech Key Areas), 4 & 6 (i.e Core & Enterprise Fundamentals) and 5 (i.e. Open-ended Q&As) can give you the much needed confidence in the interviews. It is natural to be nervous, but think of each interview as a free training session where you get to assess your strengths and weaknesses.
9. An interview is a two-way process, and it is an opportunity for both parties to assess each other. With some preparation and questions to ask the interviewer(s), you can asses if a particular opening is a step in the right direction for you.
It is also important to understand that a prospective employer will be evaluating your team fit & soft skills. Right “Attitude” is equally important. No body knows everything. If anyone things he/she does, others would not want to work with such a person. So, if you don’t know, say you don’t know. Your soft skills like communication skills, interpersonal skills, ability to work as a team and personal traits like positive attitude, honesty, passion, etc will be under scrutiny in your job interviews as you will need to work as a team to get things done at your next job. It can be easier to work with your computer than working with people with different personalities.
So, don’t feel too discouraged by not performing too well in the technical questions, and maintain your composure throughout the interview. Your soft skills and right attitude could win you the next job.
10. Good Books and Blog posts can guide you to learn & fast-track your career from others’ experience, but for a measurable success in terms of empowering yourself to:
2) earning more
you need to pro-actively apply what you learn by experiencing it yourself. There is not substitute for hands-on experience.
How to fast-track and standout?
Relying only on your experience can take a long time to get a good handle on the full stack Java concepts and the 16 key areas. The best way to fast track your career is to proactively learn and apply them. This will certainly help you present yourself in a better light than people who are more qualified & experienced than you are. Preparation breeds confidence, and confidence with right know hows & attitude will open more doors. During the early stages of my career, I used to go through 15+ books and 50+ websites to prepare for my Java job interviews.
How to manage interview nervousness?
It is natural to be nervous before job interviews. Two tips are:
1. Prepare to succeed.
2. Treat each interview as a free training session to create a win-win mindset. If you get the offer you win, and if you don’t, you still win as you can learn from your failures to do better next time. Didn’t get the job offer or raise you deserve as a Java developer?