Photo by Glenn Carstens-Peters on Unsplash
Interview Round 1 - Frontend Developer Role @ Invictus Data AI
I have recently been interviewed for the Frontend Developer Role at Invictus Data AI (Company's LinkedIn). I will explain the interview process and the questions I have been asked in this article.
Interview Duration : Around 40 minutes.
NOTE : Please note that while the terminology and phrasing used in this article may not exactly align with the interviewer's original wording, I will try my best to maintain the context and intent/meaning of the question.
First, the Interviewer introduced himself. He is a Senior Software Engineer working for the Samsung client.
Question 1 : Introduce yourself
I have introduced myself in the format, what I have prepared.
Question 2 : Have you worked with DevOps?
I replied saying yes, and explained what I have worked on.
Question 3 : Can you explain how you have used Kubernetes in your organization? How would the deploy.yml file look?
I have explained to him all the Kubernetes resource types we are using like pods, ingress, etc.
(Cross Question)
Question 4 : Can you provide a complete Kubernetes architecture, like how nodes, pods, etc. are used?
I told him about architecture as per my knowledge, on a high level
(Cross Question)
Question 5 : Have you implemented this or is there a team dedicated to implementing this architecture?
Since we have a team dedicated to DevOps architecture, I told him the same.
Question 6 : Is Azure Kubernetes Service a serverless architecture or server-based architecture?
I told him it is serverless architecture, since I remember seeing it somewhere in the docs, but I wasn’t sure.
But I was wrong, I should’ve said I wasn’t sure about it, since I don’t know the exact answer.
(Cross Question)
Question 7 : How is it a serverless architecture?
I replied saying I wasn’t exactly sure how it is defined, since I have never worked that closely in terms of devops, and told him the same.
Question 8 : Have you encountered any performance-related issues, during rendering or data loading, etc.? If yes, how did you resolve it, have you faced any failures or issues?
I replied saying I have optimized the image loading mechanism, by implementing lazy loading of images. I explained the delay in page load response time we were observing due to those previous images.
(Cross Question)
Question 9 : In what format were the images used?
I replied saying we used images of type svg mostly, and also used png images.
Question 10 : Have you heard of webp?
I told him that I have heard of WebP
(Cross Question)
Question 11 : Is the (webp) optimized version of images?
Since I have never worked with images of the webp format, I admitted the same, saying that we haven’t used webp images.
Interviewer explained that those are optimized images, and are the compressed format of images without degrading the image quality.
Question 12 : Tell me about Redux and what do you know about Redux Toolkit?
I told him about what is the purpose of redux toolkit and how we have used it in our projects at our organization.
Question 13 : Tell me the difference between Context API and Redux?
I replied saying that context API can be used for smaller scale applications, but Redux is used for managing state in large scale applications, and it also offers out of the box solutions like useSelector, useDispatch hooks, etc., and more.
Question 14 : Tell me about other hooks in React? There is a hook to manage the state, right? What is it?
I told him that the useState hook can be used to store and manage the state data. I took this as a chance to explain to him why React is found in the initial place, the problem it solves - the phantom message problem (explained in my previous article), the creator of the state concept, the prop drilling problem, etc.
Question 15 : What is ESLint? When someone is asking if ESLint is configured in your React project or not, what does it mean?
I have explained to him what ESLint is, and also mentioned that the Prettier extension is used along with ESLint to format the code and follow best standards. But, the interviewer got confused about whether I am saying ESLint is an extension. He asked the same, for clarification. So, never explain what you are not asked in the interview, or at least be clear when you are explaining multiple things.
Question 16 : Have you worked with unit testing for React applications? Have you written unit test cases?
I have mentioned the testing framework, which we can use for writing test cases for React applications like Jest, Mocha, and Chai. But, since I have not worked with unit test cases, I admitted the same.
(Tricky Question)
Question 17 : Let’s say we have 40 million users in the DB, and I want to render 1 million users on the page. Tell me, can we render this much data on the web page?
I told him that we can achieve this by not fetching all the data at a time, instead limiting the data we are fetching, and progressively fetching the data when required, and also by implementing pagination.
(Cross Question)
Question 18 : How can you do it without pagination? I don’t want users to click on the page at all.
I replied saying we can implement infinite scroll and fetch the data as and when the user scrolls through the list.
(Cross Question)
Question 19 : But, again you are rendering the data anyways, right? Is there any limit on how much data can be rendered onto the web page? Does the web page become unresponsive or exit?
I told him that the page can become unresponsive and the browser might exit if we don’t follow good practices while fetching the data.
Interviewer’s explanation : So, as you know, right, every browser has the JS Engine which converts this component code to an HTML file which is responsible for displaying the UI. So, for this also, every JS Engine has the memory and CPU utilization, and they have a limit. So, to display millions of users, once the memory and CPU limits of the system/machine on which the browser is, are full, the browser becomes unresponsive and might exit. So, it differs for each system.
Question 20 : Are you aware of local storage and session storage? Is there any limit on how much data we can store in the local storage, or is it unlimited?
I replied that I know that the data persists across browser reloads, when the data is stored in either local or session storage, but I am not sure about the limit.
Coding Exercise : Implement a counter. It should have increment and decrement buttons. The count should not be decreased below 1 and should not be increased above 10.
Question 21 : Do you have experience with NextJS?
Since I haven’t worked on NextJS yet, but am starting to learn it, I told him the same, and also said that I am learning it since many MNCs in the industry have started using it for their projects, and will be able to build projects with it soon.
Question 22 : Do you have someone in your team for deployments of applications? What was your role in DevOps?
I told him that we only take care of committing and merging changes, triggering builds and deploying applications, etc. But, since we have a dedicated resource for creating architecture for new devops flows, I told him the same.
Question 23 : You use Docker, right? What is port mapping in docker?
I explained to him how we can link the port on the machine to the port on the server.
The interviewer has concluded saying he doesn’t have any further questions and asked me if I have any. I have asked the tool and technologies that they are using, and if there are any plans to pull in new technologies in the future. The interviewer has explained what his team works on, on a day-to-day basis. We also talked further on how data is being stored, interviewer’s tasks and responsibilities, and we were sharing a few things about AI advancements and where our company is using AI products like NotebookLM, Gemini, etc.
This is my interview experience for the first round at Invictus Data AI company, for the role of Frontend Developer. I will write about my experience in further rounds and interviews in my upcoming articles. Like, share and follow me, so that it encourages me to create more such content.