Most interviews start with these 4 open-ended questions. These are ice breaker interview questions with no right or wrong answers to ease nervousness, but the quality of the answers can make a good first impression. Your answer can reveal a lot about your experience & industry knowledge.
Q1. Tell us about yourself?
A1. Let’s start with a video & then list down the key points to remember.
— 5 year hands on experience in building web based applications to integrating disparate systems using micro services, messaging, and XML/JSON/Protobuff data formats.
— Completed 3 projects through full SDLC process using sought-after technologies X, Y, and Z, and frameworks P and Q in 2 of those projects. One of the projects was a mission critical transactional system that handles 300 concurrent users
— Designed & developed 40+ micro services using Springboot & Kafka at XYZ Bank.
— Initiation of any “QuickWins” projects. The focus is to improve the overall effectiveness and usefulness of a system through small changes in a collaborative effort with the business. For example, automating tedious manual tasks, improving website user experience & independent rankings, stabilising the environment, etc.
— Fixed security holes. Security is of paramount importance to any application or website. Applications with security vulnerabilities can not only tarnish the reputation of a company, but also can adversely impact the bottom-line of that organization.
— Isolated and reproduced intermittent issues. Intermittent issues are hard to reproduce and debug. A novice developer will promptly mark those defects in the bug tracking system as “cannot be reproduced” without having the skill to isolate, reproduce and then fix the issue. An experienced developer with good grasp on the key areas will not only have will not only have the competency to isolate, reproduce, and fix these issues, but also will have the skill to identify these potential issues during code review. 15 things to tick off in every Java project for the experienced
— Acted as a change agent to enforce standards and improve processes. A change agent not only changes a system’s or application’s behavior but also people’s behavior, attitude, and culture towards writing quality software. People’s behavior can be changed by enforcing good coding standards. Substandard software development processes can also demotivate developers and adversely impact their behavior and attitude. The development processes need to be continuously improved by adopting good tools and practices.
— Identified performance issues and bench marked them with JMeter to prevent the server from having to be restarted every second day. I have never been in a project or organization that is yet to have any performance or scalability issues. It is a safe bet to talk up your achievements in fixing performance or memory/resource leak issues in job interviews. Unlike web security testing, performance testing is very prevalent in many applications. Premature optimization of your code is bad as it can compromise on good design or writing maintainable and testable code. But one needs to be aware of potential causes for performance issues that can occur due to major bottlenecks in a handful of places or minor inefficiencies in thousands of places (i.e. death by thousand cuts ).
— Championed continuous improvement programs. Organizations must develop a culture of continuous improvement in order to flourish. I am yet to work for an organization that did not have any environmental or process related issues and challenges. Many of these tasks can be simplified, automated, and integrated to avoid monotonous and error prone human intervention. So, experience with the agile practices, continuous integration and build, environmental improvements, etc will be of great asset to any organization. A software must be designed for deployability. Deployability is a non-functional requirement that addresses how reliably and easily a software can be deployed from development into the production environment.
— Assessed non-functional requirements . Many non-functional requirements like security, performance, transaction management, thread-safety, quality of service, etc are often neglected or overlooked during application development. Inexperienced or rushed developers can create systems that work great in development, but have many problems in the test or production environments due to sheer load, concurrent access, locale or timezone settings, portability issues due to operating system specific file separator or new line character, hard coded values requiring externalization, etc. If you identify any gaps in these non-functional requirements, take the initiative to close the gap as you would do with any functional requirements. 16 technical key areas Q&As with code & diagrams will help with many of the drill down questions & open-ended questions you can get.
Q2. Tell us about the most satisfying project you had worked on in the last year? What were your contributions?
A2. [Hint: Rewriting the whole batch process framework that not only used to take 17 hours to run but also was very hard to maintain as changing one part of the code can break another part of the application. The re-written batch framework with modular design, multi-threading, distributed caching, tuned SQL statements, and revised database tables completes in under 3 hours. My contributions involved designing the solution and leading the development.]
Q3. What are some of the challenges you faced both technically and non-technically in your past assignments?
A3. [Hint: Fixing performance, thread safety, transactional issues and security holes, spearheading process improvements, taking the initiatives to close the gaps in business requirements, convincing the management with the open-source adoption, streamlining the release and deployment processes with CI/CD pipelines, and getting the business users to agree on alternative solutions.]
Q4. Can you describe the high-level architecture of a recent application you had worked on?
You will be asked:
1) to draw an architectural diagram on a white board and
2) to provide a brief description of the architecture, and
3) to elaborate on decisions, technologies & frameworks used, alternatives considered, pros, cons, challenges, risks, etc ….
A4. Let’s start with a video.
More details at: Java Architectural patterns & integration styles
TIP: Starting job interviews with technical questions may cause more nervousness. To reduce nervousness, please treat each interview as a free training session to get the win/win outcome. If you get the offer you win, if you don’t get the offer, you still win as you can learn from your mistakes. Preparation can give you the much needed confidence & edge over the other candidates.