Summary
I recently interviewed with Publicis Sapient for a Senior Experience Engineer role and successfully cleared the first round of interviews.
Full Experience
I recently had my first-round interview with Publicis Sapient for the Senior Experience Engineer role. The discussion primarily revolved around React concepts, state management, API integration, and general frontend development practices. I am pleased to share that I successfully cleared this round.
Interview Questions (15)
Explain the differences between Controlled and Uncontrolled Components in React.
Implement a form using Uncontrolled Components in React. The form should have username and password fields and a submit button. On submission, log the field values to the console and reset only the form fields, not the entire form.
Apply basic CSS styling to the form created in the previous question.
Discuss the common use cases and scenarios where Uncontrolled Components are preferred in React.
Given an API, render the data it provides. Implement a dropdown with 'asc' and 'desc' values. When a dropdown value is selected, pass this value as a query parameter to the API and re-fetch/render the data accordingly.
Following up on the previous question, enhance the functionality to sort the displayed items in descending order based on their price.
Describe your experience working with GraphQL.
List and discuss the state management libraries you have experience with in your projects.
Explain the step-by-step process of setting up Redux Toolkit in a React application.
Discuss the various rendering methods available in React.
Explain the differences between Single Page Applications (SPA) and Multiple Page Applications (MPA).
Elaborate on why Single Page Applications (SPAs) do not typically reload the entire page, unlike Multiple Page Applications (MPAs).
Discuss strategies and techniques to reduce the build size of a React application.
Explain the differences between useMemo and useCallback hooks in React. Provide real-world use cases from your past projects for each.
Describe the different types of testing you have implemented or performed in your applications.
Summary
I went through an interview process for a Senior Associate Platform L1 role at Publicis Sapient, which included a Hackerrank test followed by a technical round covering various Java, multithreading, OOP, and system design topics.
Full Experience
I interviewed for the Senior Associate Platform L1 position at Publicis Sapient. The process began with a Hackerrank test, which I found to be quite easy, although I don't recall the exact problems.
The second round was a comprehensive technical discussion covering a wide array of topics. I was asked several coding problems, including finding the nearest number in a sorted array and designing a multithreaded program to print numbers in a specific sequence. Additionally, there were numerous conceptual questions on Java serialization, creating immutable classes, Functional Interfaces, CompletableFuture vs. Future, different ways to create thread pools with ExecutorService, CachedThreadPool vs. FixedThreadPool, Stream API, fail-fast vs. fail-safe mechanisms, Kubernetes Helm charts, Factory design pattern, AWS services, and API Gateway.
Interview Questions (14)
Design a program where three threads (t1, t2, t3) print numbers in a specific interleaved sequence: t1 -> 1, t2 -> 2, t3 -> 3, t1 -> 4, t2 -> 5, and so on.
Discuss concepts and aspects related to Java serialization.
Given the following Java class, explain and demonstrate how to convert it into an immutable class:
class Employee {
private String name;
private Integer age;
private Address address;
}Discuss concepts and usage of Functional Interfaces in Java.
Explain the differences between Java's CompletableFuture and Future interfaces.
Describe the different ways to create a thread pool using ExecutorService in Java.
Explain the differences between CachedThreadPool and FixedThreadPool in Java's ExecutorService.
Discuss concepts and usage of Java Stream API.
Explain the concepts of fail-fast and fail-safe iterators in Java collections.
Discuss concepts and usage of Kubernetes Helm charts.
Demonstrate or explain the implementation of the Factory design pattern.
Discuss various AWS services and their use cases.
Discuss concepts and functionalities of an API Gateway.
Summary
I received a full-time offer from Publicis Sapient after an on-campus recruitment process, which involved an online coding round, a deep dive technical interview with the Head of Engineering, and a final technical/HR round with the Sr. Director.
Full Experience
I successfully secured a full-time offer from Publicis Sapient through an on-campus recruitment drive. The entire process was quite comprehensive, starting with an online coding round on the Hackerrank platform. We were given 90 minutes to solve two problems. The first was a dynamic programming problem, which was a variation of the 0/1 Knapsack problem. The second problem involved graphs, requiring me to find the shortest route between two points while ensuring two specific intermediate nodes were visited in a fixed order, solvable by multiple applications of Dijkstra's algorithm. Only candidates who solved both questions were shortlisted for subsequent rounds, though other factors like CGPA and tab switching might have also been considered.
My interview experience was unique as it was conducted by the Head of Engineering. Unlike many others, I wasn't asked any typical DS-Algo questions. The interviewer focused heavily on my thinking process, delving deep into my projects and CV. I was challenged to explain Time and Space complexity to a layman without using the classic dictionary/phonebook example. A system design question involved designing a Captcha feature to assess my problem-solving approach. We also discussed various theory questions on file systems, OS modules, and network fundamentals like 'What happens when you enter a URL'. He inquired about OOPs concepts, modularity, message passing, and detailed how files are stored, specifically within Windows. He was particularly interested in my knowledge of low-level and high-level system design concepts. I faced some questions, such as the specific MySQL version I used or the justification for a particular Pandas method, for which I had no immediate answer. In such instances, I politely admitted my lack of knowledge to save time, hoping to perform better on the next question. The interviewer maintained a friendly and helpful demeanor throughout this 1 hour and 20-minute discussion, and I somehow managed to impress him. I passed this round and was informed about my next interview within 30 minutes, scheduled to start in just 10 minutes.
The final round was with the Sr. Director of the company (COO) and lasted about 30 minutes, blending technical and HR aspects. Technically, I was asked to design an e-commerce website similar to Amazon for a client, elaborate on a unique feature I'd add, and discuss the front-end design. The HR questions covered how I incorporate feedback into projects, instances where I helped peers with technical work, and my reasons for wanting to join Publicis Sapient. The following morning, I received the good news – I was selected for the role.
Interview Questions (11)
A dynamic programming problem that could be broken down into a 0/1 Knapsack problem structure, though it was not a direct application of the classic Knapsack.
Find the shortest route from node A to node B in a graph, with the constraint that two specific intermediate nodes, X and Y, must be visited, and always in the order X then Y. This problem can be solved by applying Dijkstra's Algorithm multiple times.
Explain the concepts of Time and Space complexity to a non-technical person, specifically avoiding the common dictionary/phonebook analogy.
Design the architecture and functionality for a Captcha feature.
Explain how files are stored in a computer, focusing on the specifics of how the Windows operating system handles file storage.
Explain the entire process that occurs when a user enters a URL into a web browser until the page is displayed.
Justify the choice of a specific Pandas method for combining two tables, and discuss alternative approaches.
Design an e-commerce website similar to Amazon for a client. Include one unique feature to differentiate it from competitors and describe the front-end design approach.
Describe a situation where you received feedback on a project from someone else and how you went about incorporating their ideas.
Share an experience where you assisted your peers with a technical project they were working on.
Explain your motivation for wanting to work at Publicis Sapient.
Preparation Tips
My journey to this offer began without prior coding experience; I hadn't written a for loop until September, and I had zero lines of code in my first two years of college. However, I believe it's never too late to start. My preparation primarily revolved around two key principles: consistency and practice. I focused on solving as many LeetCode questions as possible and maintained a consistent study schedule. The LeetCode community and its discuss section were invaluable resources for me, helping me learn new concepts, techniques, and how to deconstruct problems into familiar patterns. This platform is truly amazing, and I am grateful to everyone whose solutions and insights helped me grow. I want to encourage everyone not to give up, even when faced with challenges or doubts about one's capabilities; consistent hard work will eventually yield great results.