1. Tell us what's Your Favorite Kind Of Role?

Answer it as honestly as possible. If you are keen on moving on to a managerial role, let your potential employer know that. If you want to stay in the technical field itself, make that clear too.

2. Tell us do you enjoy management or execution more?

Every senior professional will be asked this full stack web developer interview question. Recruiters want to know if you want to stay in a technical role or would want to switch to a managerial position. They also at times might push a bit and ask if you prefer to work alone or in paired groups. It's important, to be honest here. The company's requirements might be different from your interests, so it is ideal that the expectations are set straight from the get-go.

3. Explain me how Familiar Are You With Design Patterns?

This question will reveal your understanding of maintenance and code reuse, especially clean and readable code. Any aspiring full stack developer should know the principle and skill of basic prototype design, UI design, and UX design to manage different scenarios at work.

4. Explain me how do you keep yourself updated about the new trends in the industry?

This is a typical question to understand your involvement in technology. A good way to demonstrate your involvement in continuous learning would be by speaking about the community meetups you visit. You can also talk about the webinars and the forums you regularly attend. If you have personal projects on which you apply your skills, this is a good time to showcase that as well.

5. Tell me some Examples Of Web Application That You've Built And How Did You Do It?

Through this question, the interviewer will get an idea of how you think and work with tools. The answer should be specific and clearly state why you developed it either on front-end or back-end.

6. Explain me the main difference between GraphQL and REST?

This is a moderately difficult question but a good developer would be able to get through with this in ease. An important difference between GraphQL and REST is that GraphQL doesn't deal with dedicated resources. Everything referred to as a graph is connected and can be queried to app needs.

7. Explain me what are you coding currently?

A person who loves technology is always working with it. Whether it be for your company or for your own recreational reasons. Good programmers will always have something to share. Candidates who code willingly for personal learnings will always stand out here.

8. Explain me what is the difference between final, finalize and finally?

final is a Java keyword used to indicate that either a method can not override in a subclass, or a class can not be extended or a field can not be modified. finalize is a method that gets called on an instance of an Object when it is garbage collected. finally is a Java keyword used in exception handling to indicate a block of code that should always be run whether an exception is thrown or not.

9. Basic Full Stack Developer (Java) Interview Questions:

☛ What is your total experience?
☛ Have you ever worked with web applications? Describe the projects.
☛ Did you ever have problematic situations or conflicts when fulfilling the task? Describe them.
☛ What software, technologies and/or tools did you use in your previous projects?
☛ What are your expectations as to the opened position?

10. Tell us what's the most recent thing that you have learned?

This question is used to probe the authenticity of the information you furnished in your last question. It is important that you are aware of the latest in the industry and have a pulse of what's happening. You might talk about a website that you tested recently, or talk about an obnoxious case study about a serious bug you recently read about. A point to note, never give the interviewer an impression that you have learned nothing in the past 6 months. This is a fast-changing tech game, and being up-to-date with the current trends is an absolute must.

11. Do you know what is inversion of Control?

This question is very commonly asked to check the candidate's understanding of design patterns. It is a broad term but is more specifically used by software developers for describing a pattern which is used to decouple layers and components in a system.

12. Tell us have You Tried Implementing Your Knowledge In Full Stack For Pet Projects?

Working at your job will not always boost your learning curve. Any aspiring developer should try and implement codes on their personal projects that include website development. Remember, a self-motivated coder might have several projects to experiment and learn. Hiring managers are constantly looking for candidates who enjoy the whole process of web development.

13. Explain me what is the JIT?

The JIT is the JVM's mechanism by which it can optimize code at runtime.

JIT means Just In Time. It is a central feature of any JVM. Among other optimizations, it can perform code inlining, lock coarsening or lock eliding, escape analysis etc.

The main benefit of the JIT is on the programmer's side: code should be written so that it just works; if the code can be optimized at runtime, more often than not, the JIT will find a way.

14. Please explain what is Event Loop?

Node.js is a single threaded application but it support concurrency via concept of event and callbacks. As every API of Node js are asynchronous and being a single thread, it uses async function calls to maintain the concurrency. Node uses observer pattern. Node thread keeps an event loop and whenever any task get completed, it fires the corresponding event which signals the event listener function to get executed.

15. Tell us why isn't String‘s .length() accurate?

It isn't accurate because it will only account for the number of characters within the String. In other words, it will fail to account for code points outside of what is called the BMP (Basic Multilingual Plane), that is, code points with a value of U+10000 or greater.

The reason is historical: when Java was first defined, one of its goal was to treat all text as Unicode; but at this time, Unicode did not define code points outside of the BMP. By the time Unicode defined such code points, it was too late for char to be changed.

16. Explain me what are the success factors for Continuous Integration?

☛ Maintain a code repository
☛ Automate the build
☛ Make the build self-testing
☛ Everyone commits to the baseline every day
☛ Every commit (to baseline) should be built
☛ Keep the build fast
☛ Test in a clone of the production environment
☛ Make it easy to get the latest deliverables
☛ Everyone can see the results of the latest build
☛ Automate deployment

17. Can you explain me the key advantages of HTTP/2 as compared with HTTP 1.1?

HTTP/2 provides decreased latency to improve page load speed by supporting:

☛ Data compression of HTTP headers
☛ Server push technologies
☛ Loading of page elements in parallel over a single TCP connection
☛ Prioritization of requests
An important operational benefit of HTTP/2 is that it avoids the head-of-line blocking problem in HTTP 1.

18. Tell me what is the most puzzling programming challenge you have come across recently?

Speak about the most recent bug or a discrepancy you came across and explain how you went ahead to overcome it. Tell the interviewer that you are a person who believes in collaborative work. Depict how you could solve the issue with the help of a colleague, online community or your mentor. It is always good to ask when you don't know.

19. Do you know how does Garbage Collection prevent a Java application from going out of memory?

This is a tricky one… it doesn't! Garbage Collection simply cleans up unused memory when an object goes out of scope and is no longer needed. However an application could create a huge number of large objects that causes an OutOfMemoryError.

20. Please explain what is the best implementation or debugging you have done in the past?

This is a tricky question. This will actually give the hiring manager an idea of both the complexity and the style of projects you have done in the past. You should explicitly mention the issues you faced and the measures you took to overcome that roadblock. You can additionally speak about the learnings you earned from the issue.

21. Tell me how do you stay aware of new technologies related to full stack web development?

This question is asked to find out how involved or uninvolved a candidate is in the technology community. Interviewees should respond by describing a few meetups they are part of related to JavaScript, or personal projects that they have displayed in GitHub

22. Tell me the main difference between REST and GraphQL?

The main and most important difference between REST and GraphQL is that GraphQL is not dealing with dedicated resources, instead everything is regarded as a graph and therefore is connected and can be queried to app exact needs.

23. General Full Stack Developer (Java) Job Interview Questions:

☛ How can you define such terms as inversion control, virtual function, and dynamic bidding?
☛ How can you define tail recursion?
☛ Describe the working process of the garbage collector. What's it like?
☛ What is A/B testing and when it is applicable?
☛ What design principles do you know?
☛ If separation of concerns is not used in development, what will be the drawbacks to your mind?
☛ What are the pros of microservices?
☛ What is 3-tier architecture?
☛ What is 3-layer architecture?
☛ Why use an application server? What is it for?
☛ How do you understand the aspect-oriented programming?

24. Explain me what is an ETag and how does it work?

An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at an URL. If the resource content at that URL ever changes, a new and different ETag is assigned.

In typical usage, when an URL is retrieved the web server will return the resource along with its corresponding ETag value, which is placed in an HTTP “ETag” field:

ETag: "unique_id_of_resource_version"
The client may then decide to cache the resource, along with its ETag. Later, if the client wants to retrieve the same URL again, it will send its previously saved copy of the ETag along with the request in a "If-None-Match" field.

If-None-Match: "unique_id_of_resource_version"
On this subsequent request, the server may now compare the client's ETag with the ETag for the current version of the resource. If the ETag values match, meaning that the resource has not changed, then the server may send back a very short response with a HTTP 304 Not Modified status. The 304 status tells the client that its cached version is still good and that it should use that.

However, if the ETag values do not match, meaning the resource has likely changed, then a full response including the resource's content is returned, just as if ETag were not being used. In this case the client may decide to replace its previously cached version with the newly returned resource and the new ETag.

25. Explain me which technologies and languages would you need to develop a project from scratch?

This is a hypothetical question geared at understanding the level at which the hiring manager will gauge your readiness to start the job. It is an easy way to distinguish a good full stack developer from someone who is an amateur. People who have difficulty transmitting their thoughts will have bleak chances of getting through at this point.

26. Tell us what is the biggest mistake you did in any of your projects? How did you rectify it?

As they say, ‘No man is an island'. Similarly, you can't be working on technology and be right all the time. That is not imaginable. You need to be honest here and talk about a mistake that you think was serious. To add to it, speak about your learnings from this mistake and explain the procedure you adopted to minimize the damage done.

27. Tell us have You Ever Struggled To Implement Or Debug Something In The Past While Working On Web Development?

This could be easily one among the trickiest questions in an average job interview. Any experienced full stack developer would have struggled at some point to implement or debug something. As a candidate, you should explain in a crisp manner why you faced the issue. Don't forget to end the answer with how you overcame the roadblock and what you learned from the experience at the level of an individual or team player.

28. Explain me what's the difference between a ClassNotFoundException and NoClassDefFoundError?

A ClassNotFoundException means the class file for a requested class is not on the classpath of the application. A NoClassDefFoundErrormeans that the class file existed at runtime, but for some reason the class could not be turned into a Class definition. A common cause is an exception being thrown in static initialization blocks.

29. Please explain what is the contract between equals and hashCode of an object?

The only obligation is that for any objects o1 and o2 then if o1.equals(o2) is true then o1.hashCode() == o2.hashCode() is true.

Note that this relationship goes only one way: for any o1, o2 of some class C, where none of o1 and o2 are null, then it can happen that o1.hashCode() == o2.hashCode() is true BUT o1.equals(o2) is false.

30. Explain me what is the difference between String, StringBuffer andStringBuilder?

String is an immutable class. In older JDK's the recommendation when programmatically building a String was to use StringBuffer since this was optimized to concatenate multiple Strings together. However, the methods on StringBuffer were marked as sychronized, which meant that there was a performance penalty, hence StringBuilder was introduced to provide a non-synchronized way to efficiently concatenate and modify Strings.

31. Explain me something About Your Favorite Language And Why?

In addition to being an ice-breaker, this is a good question to know how well the candidate enjoys coding and working with programming languages. An ideal candidate for the full stack developer job should have multiple favorite languages rather than just a single one. Your answer should definitely include HTML, CSS, Javascript, Python or Ruby On Rails etc.

32. Tell us can you relate of an experience when you found your colleagues code to be inefficient? How did you deal with it?

This helps to determine a candidate's quality standards and also gives an impression of his team playing skills. You must demonstrate that you have high-quality assurance standards, and show comfort in pointing out flaws or for that matter bugs to others. However, you must pay focus on portraying that you are good at giving positive feedback, getting the work done without creating resentment.

33. Tell us what's the difference between GET and POST?

Both are methods used in HTTP requests. Generally it is said that GET is to download data and PUT is to upload data. But we can do both downloading as well as uploading either by GET/POST.

☛ GET:
If we are sending parameters in a GET request to the server, then those parameters will be visible in the URL, because in GET, parameters are append to the URL. So there's a lack of security while uploading to the server.
We can only send a limited amount of data in a GET request, because the URL has its max limit and we can not append a long data string to the URL.

☛ POST:
If we are using POST then we are sending parameters in the body section of a request. If we send data after using encryption in the body of an http request, it's quite a bit more secure.
We can send a lot more data using POST.

34. Tell me what is the purpose of each of the HTTP request types when used with a RESTful web service?

The purpose of each of the HTTP request types when used with a RESTful web service is as follows:

☛ GET: Retrieves data from the server (should only retrieve data and should have no other effect).
☛ POST: Sends data to the server for a new entity. It is often used when uploading a file or submitting a completed web form.
☛ PUT: Similar to POST, but used to replace an existing entity.
☛ PATCH: Similar to PUT, but used to update only certain fields within an existing entity.
☛ DELETE: Removes data from the server.
☛ TRACE: Provides a means to test what a machine along the network path receives when a request is made. As such, it simply returns what was sent.
☛ OPTIONS: Allows a client to request information about the request methods supported by a service. The relevant response header is Allow and it simply lists the supported methods. (It can also be used to request information about the request methods supported for the server where the service resides by using a * wildcard in the URI.)
☛ HEAD: Same as the GET method for a resource, but returns only the response headers (i.e., with no entity-body).
☛ CONNECT: Primarily used to establish a network connection to a resource (usually via some proxy that can be requested to forward an HTTP request as TCP and maintain the connection). Once established, the response sends a 200 status code and a “Connection Established” message.

35. Do you know a use case for Docker?

☛ Docker a low overhead way to run virtual machines on your local box or in the cloud. Although they're not strictly distinct machines, nor do they need to boot an OS, they give you many of those benefits.
☛ Docker can encapsulate legacy applications, allowing you to deploy them to servers that might not otherwise be easy to setup with older packages & software versions.
☛ Docker can be used to build test boxes, during your deploy process to facilitate continuous integration testing.
☛ Docker can be used to provision boxes in the cloud, and with swarm you can orchestrate clusters too.