Search This Blog

Full Stack Developer Interview questions



In a full stack web developer interview, a candidate should be able to demonstrate great organizational skills and precise attention to detail.

These professionals are in a higher skill-intensive role and should be able to demonstrate sharpness and presence of mind.

General Questions

How do you keep yourself updated about the latest trends in the industry?

  • Community meet-ups
  • Webinars
  • Some personal projects
  • Training platforms like Pluralsight, Udemy etc.

What’s the most recent thing that you have learned?

The interviewer wants to check how you update your self, your learning interest. This is most important for the individual contributor role.

What are the most important qualities that a Full Stack Developer must have?

  • Coordination skills that he would need while working in a team
  • Mark excellent observation skills

What is Pair-Programming? Have you ever done it?

Pair-Programming involves two developers to work on the same terminal. While one developer is called the “Driver” who types the codes, the other developer called the “navigator” is responsible for reviewing the codes.

How you deal with poor quality code from colleagues?

Go with a positive tone on this question. This is common in almost every organization. You need to explain how your suggestion helps your colleagues and keep them motivated. You must pay focus on portraying that you are good at giving positive feedback, getting the work done without creating resentment. Also, share your learning from such incidents.

What is the best implementation or debugging 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.

Do you enjoy leading engineers or execution more?

Be honest here and answer according to your interest. Both streams are good but your interest will lead to job satisfaction.

Tools used to test your code

Explain about unit testing process & tools like NUnit, JUnit etc. Talk about some mocking framework also which you use.

Other common questions

  • Why do you want to work for X company?
  • Why do you want to leave your current/last company?
  • What are you looking for in your next role?
  • Tell me about a time when you had a conflict with a co-worker.
  • Tell me about a time in which you had a conflict and needed to influence somebody else.
  • What project are you currently working on?
  • What is the most challenging aspect of your current project?
  • What was the most difficult bug that you fixed in the past 6 months?
  • How do you tackle challenges? Name a difficult challenge you faced while working on a project, how you overcame it, and what you learned.
  • What are you excited about?
  • What frustrates you?
  • Imagine it is your first day here at the company. What do you want to work on? What features would you improve on?
  • What are the most interesting projects you have worked on and how might they be relevant to this company's environment?
  • Tell me about a time you had a disagreement with your manager.
  • Talk about a project you are most passionate about, or one where you did your best work.
  • What does your best day of work look like?
  • What is something that you had to push for in your previous projects?
  • What is the most constructive feedback you have received in your career?
  • What is something you had to persevere at for multiple months?
  • Tell me about a time you met a tight deadline.

Questions on Database

Write a query to retrieve number of likes for each post for a given user. Below are the tables.


CREATE TABLE `posts` ( `id` INT NOT NULL AUTO_INCREMENT, `text` TEXT, `user_id` INT unsigned NOT NULL, `updated_at` TIMESTAMP NOT NULL, `created_at` TIMESTAMP NOT NULL, PRIMARY KEY (`id`) ); 

CREATE TABLE `post_likes` ( `post_id` INT unsigned NOT NULL, `user_id` INT unsigned NOT NULL, `created_at` TIMESTAMP NOT NULL );

SELECT posts.id, COUNT(post_likes.user_id) AS likes FROM posts LEFT JOIN post_likes ON posts.id = post_likes.post_id WHERE posts.user_id = 1 GROUP BY posts.id

Different between clustered and non-clustered index?


Clustered index: Primary Key. Data is arranged physically as per the index key.
Non Clustered Index: All indexes other than the primary key. Data is logically index.

How will you optimize SQL queries?

  • Look for query execution plan
  • Check for locks and reduce loacks
  • Try to convert table scans to index scan by referring index
  • Use indexed column first in where clause
  • Use various query hits to match requirements like NoLock.

Difference between index scan & table scan in query plan?

Table Scan is good for small tables
Big table must make use of index scan in order to make the query more efficient by reducing the cost of operation.



Programming Questions

What is multithreading?

Explain multithreading 
Benefits to advantages of multi-core CPU, application performance improvements
Explain Low-level scenarios like span multiple threads, debug them, join, wait etc.
Explain how it is different then non-blocking IO, compare both
Explain about latest trends like Async & await
 

Programming challenge you have come across recently?

What is the biggest mistake you did in any of your projects? How did you rectify it?
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.

Questions related to Design patterns

What are your thoughts on design patterns & anti-patterns?

  • Ability to understand common errors
  • You must push the employer to gain confidence in the experience you possess in understanding a clean and readable code.

Explain Inversion of Control.

A pattern which is used to decouple layers and components in a system.

What are anti-patterns?

Commonly used design patterns for cloud applications?

Explain SOLID principals


  • SRP: Every module or class should be responsible for a single functionality.
  • OCP: A class, component, or entity should be open for extension but close for modification. We can extend any class via Interface, Inheritance, or Composition whenever it's required instead of opening a class and modifying its code.
  • LSP: a child class should be able to substitute a parent class, without any unexpected behavior. This is to ensure inheritance is being used correctly.
  • ISP: use many client-specific interfaces instead of one general-purpose interface. No client should be forced to implement other methods that it does not require.
  • DIP: high-level modules should not depend on low-level modules; both should depend on abstractions. Abstractions should not depend on details. Details should depend upon abstractions.

What challenges did you face while working on SOLID Principles?

Explain challenges & learning from your past projects



Technical Questions Related to Web Development

What is CORS?

Cross-Origin Resource Sharing is a process for accessing various web resources on different domains.

What is the main difference between GraphQL and REST?

GraphQL doesn’t deal with dedicated resources. Everything referred to as a graph is connected and can be queried to app needs.

How can we reduce the load time of a web application?

  • Enabling browser caching
  • Optimizing images: Smush it, Imagemin, OptoPNG
  • Minifying resources
  • Minimizing HTTP requests
  • Reducing redirects
  • Site optimization tools: YSlow, PageSpeed, LightHouse, Pagelocity, CSS-pref, JSPref, 
  • Use CDN
  • Lazyload: lozad.js, RequireJS
  • Minifiers: HTMLCompressor, HTMLMinifier, YUI Compressor

What is Long Polling?

  • Used to surpass pushing data from the server to the client. 
  • The client requests information from the server. If the server does not have any information about the client, the server holds the request and waits for some information to be available rather than sending an empty resource.

Explain various HTTP Verbs and HTTP Status

Best way to show a box in the center of the screen, irrespective of screen size and resolution.

display: flex, 
margin:auto

Let vs Var in Javascript. What would be output?

function sayHi() {  
  console.log(name);
  console.log(age);
  var name = 'Lydia';
  let age = 21;
}

sayHi();

ReferenceError because of variable age.

---------------------------------------
for (var i = 0; i < 3; i++) { setTimeout(() => console.log(i), 1); } for (let i = 0; i < 3; i++) { setTimeout(() => console.log(i), 1); }

For global i, as it already has incremented 3 times it will show 3 3 3
For local i, it will pick the value from the stack and will show 0 1 2


Javascript arrow vs regular function


const shape = { radius: 10, diameter() { return this.radius * 2; }, 
perimeter: () => 2 * Math.PI * this.radius, }; console.log(shape.diameter()); console.log(shape.perimeter());

ANSWER: 20 and NaN


What are the building blocks of HTML5


Semantics: describe your content
Connectivity: enable communication with servers
Offline and Storage: store data at client side
Multimedia: making audio & video first-class citizens
2D/3D graphics and effects: a diverse range of presentation options
Performance and integration: speed optimization
Device access: allow access to input and output devices
Styling

HTML5, difference between cookie, session storage & local storage



cookielocalStoragesessionStorage
InitiatorClient or server. Server can use Set-Cookie headerClientClient
ExpiryManually setForeverOn tab close
Persistent across browser sessionsDepends on whether expiration is setYesNo
Sent to server with every HTTP requestCookies are automatically being sent via Cookie headerNoNo
Capacity (per domain)4kb5MB5MB
AccessibilityAny windowAny windowSame tab

Difference between <script>, <script async> and <script defer>


<Script>: downloaded and executed immediately
<script async> downloaded in parallel to HTML parsing and executed as soon as it is available. Good for analytics requirements.
<script defer> downloaded in parallel to HTML parsing and executed after page finish parsing. A deferred script must not contain document.write.