Date: July 2022
We asked Marat Zimnurov, Lead Front End Engineer at EPAM Anywhere and practicing technical interviewer, to share his take on the most common front end developer interview questions.
The front end role has a significant impact on the end product. That’s why it is crucial for interviewers to ask questions that will determine whether the candidate is a good fit for the project. And for interviewees, it is essential to showcase the experience and knowledge they gained from their previous projects.
This task is easier if you learn what the most popular questions are before applying for remote front end developer jobs.
Usually, the interviewer will give you 3–5 minutes to talk about yourself, so it is important to speak briefly and clearly, without going into unnecessary detail. The best self-presentation includes:
- Current position
- Current company, team size, and team composition
- Years of experience and past employers
- The stack you work with
- Country of residence and time zone
- English language skills
With modern web apps, front end development is much more than just building user interfaces; it’s also about implementing HTML5 technologies. Without a solid understanding of asynchronous JavaScript in particular, or pure JavaScript in general, you will have trouble understanding some powerful HTML5 APIs like Web Workers, WebSocket, WebRTC, and IndexedDB.
More importantly, engineers with poor knowledge of JavaScript often write unmaintainable code. So while preparing for the front end developer interview, ensure you know the answers to the questions below.
- Explain the difference between synchronous and asynchronous functions.
- Why is fetch the preferred way to send a network request via the browser?
- If the browser encounters malformed HTML, what happens?
- Is there another option, besides explicit promises, to handle asynchronous code in JavaScript?
- Explain the function and syntax of the array forEach() method.
- Explain the function and syntax of the function bind() method.
- Is there a way to stop an event from bubbling up?
- How is the event loop defined in the JavaScript engine?
- How do callbacks work in JavaScript?
- What design patterns do you know?
ECMAScript is the official name of the language standardized by ECMA (the European Computer Manufacturers Association), which is the body that outlines the language specification. This is the standard every browser vendor should adhere to in order to make their browser's JavaScript engines compatible.
Make sure you know the differences between arrow functions and traditional functions. Also, the interviewer may ask different questions about ECMAScript modules and classes.
- What are the differences between arrow functions and function expressions?
- Are there any language structures that implement strict mode by default?
TypeScript is a superset of JavaScript that contains a single open-source compiler. It is mainly developed by a single vendor — Microsoft. TypeScript aims to help catch mistakes through type systems quickly and make JavaScript development more efficient.
Before the interview, make sure you know what typing is for, and understand TypeScript generics and data structures. These questions are common in interviews for front end developers of all levels — from junior to senior.
- Is static typing faster than dynamic typing?
- What is the difference between a type and an interface in TypeScript?
- What is the difference between “Unknown,” “Any” and “Never” in TypeScript?
- What are the five key data structures?
- What are the advantages and disadvantages of generics?
Software engineers should know basic SQL. You don't need to know about optimization, performance, database setup, or other complicated areas, but you should be able to write an SQL query.
It is essential to know at least the basic SELECT, INSERT, DELETE and UPDATE functions and understand relational databases. That’s why all front end developer interviews should include at least one question regarding that.
- What types of relationships are possible in a relational database?
- How would you describe the concept of database normalization to a non-developer?
As for Node.js, it is enough to know how to run a simple “Hello, world” server. Also, ensure you understand how REST API works. It is crucial for front end developers to have basic REST API knowledge because a stateless solution is rare.
- What is the difference between API and REST API?
For a front end developer, it is enough to know why a virtualization service (i.e., Docker) is needed and how to run your front end or Node.js application, or simply enable the service for the database through Docker Compose. The questions usually cover only a basic familiarity.
- What is Docker, and how can it be useful for a front end developer?
Bash, ZSH, OhMyZSH, or just Shell — all are suitable here. The idea is that you have to navigate it and understand the specifics of your OS. You should be able to connect to a container without GUI, terminate the process or open a port, use the CLI database, work with Git, update packages, or at least be able to copy-paste and run the revert commit command from StackOverflow.
A component of software configuration management, version control, also known as revision control or source control, is the management of changes to documents, computer programs, large websites, and other collections of information. Every engineer should know how Git works and what the basic commands are.
- What is the difference between Git's “push” and “pull” requests?
- What is the difference between Rebase and Merge in Git?
- How do you squash already pushed commits?
- Which branching workflows for Git do you know?
- How do you use the version control system?
- What version control system providers did you work with (GitHub, GitLab, BitBucket, Azure DevOps)?
Engineers need to understand the software development life cycle to create high-quality software. It not only ensures that software has been tested and perfected but also that costs and production have been lowered for successful implementation. This topic is especially important for senior developer interviews.
- How would you define Kanban?
- Why do agile teams need daily stand-up meetings?
- What are sprint planning, review, and sprint retrospective meetings?
- What is the purpose of decomposition in programming?
Task management is an essential component of effective project management and successful business operations. It’s important to have experience working with task trackers and to understand their impact on your projects. During the interview, feel free to describe Jira, Trello, YouTrack, GitHub, or any other to-do tool.
- What project management tools have you used?
Engineers should know basic task evaluation terms to be on the same page as other team members. The interviewer may ask about your experience with task evaluation and whether you understand the most basic terms.
- What is the planning poker technique?
- How do you define story points?
Object-oriented programming (OOP) is a fundamental programming paradigm that every front end developer should know. In your interview, get ready to answer the following questions.
- What is a class in programming? Can you give an example?
- What is the benefit of interfaces?
- What is inheritance in OOP?
- What is meant by polymorphism in OOP?
- Why is encapsulation important in programming?
- Why do we use abstraction in programming?
- What is the difference between a function and a constructor?
- What is the difference between prototype inheritance and classical inheritance?
It is important to learn functional programming concepts and train your mind to use those constructs while solving a problem. Functional programming teaches you to think about relationships between data rather than a set of instructions. Answer these questions during the interview to show that you understand basic functional programming concepts.
- What does closure mean in programming?
- What is a higher-order function in functional programming?
- What are pure and impure functions?
- What is idempotency, and where is it used?
- What is a monad in programming?
- How do you know if a function is composite?
- When is function currying used?
Frameworks provide a structure in which software engineers can build programs for a specific platform. Frameworks are needed when code for an application or program seems to have zero structure and rough functionality, because as frameworks, they mandate how your code is structured and how it will run. That’s why interviewers often mention frameworks in senior front end developer interview questions.
- What is React used for?
- What are the advantages and disadvantages of Virtual DOM?
- Are TSX and JSX the same?
- How do props work in React?
- What are Hooks in React?
- What is NextJS used for?
As front end developers, our job is to turn designs into reality via code. Understanding and being competent in styling is an important component of that. As for styling, the most common front end developer interview questions are about CSS, UI frameworks, and preprocessors.
- Which is more responsive, Grid or Flex?
- What are the most popular UI frameworks?
- What are the advantages and disadvantages of using CSS preprocessors?
Some developers tend to skip testing and just throw the code “over the wall” to QA testers and wait for them to report issues. This creates a bottleneck in the process, and teams become slow.
It takes a lot of time to go back and forth, deliver a feature, test, report a bug, fix it, test again, and repeat. That’s why interviewers commonly mention basic testing concepts in front end developer technical interview questions.
- Which software is used for manual testing?
- What is unit testing, and why is it important?
- What is the primary purpose of integration testing?
- What is E2E testing, and why do we need it?
- What is the difference between debugging in the browser and in IDE?
Hopefully, you’ve found these interview tips helpful. Make sure to prepare yourself well when it comes to technologies that are your strongest suit.
You don’t have to be good at everything, though. During a typical interview, you will also be asked to solve some practical cases, so just learning definitions by heart is not a good idea. Familiarize yourself with front end interview questions, but think of them as nothing more than a guideline.
Good luck with your interview!