Publicis Sapient came to BITS Pilani Hyderbad Campus for two profiles: Data Scientist & ASDE-II.There were separate tests for both the roles.I applied for the latter and the following is my experience.
This 90 min round consisted of 2 coding questions(20 marks each) and about 25 MCQs(4 marks each) from Aptitude, OOPs, DBMS, OS and Networking domain.There was no negative marking in MCQs and here are the coding questions:
Q1: Given an array of integers, you have to print a number which can be written as sum of squares of two different pairs of numbers present in the array.It was assured that such a number always exists & is unique in the input.max_Arr_size=100
E.g.: if input Arr: [0, 3, 4, 5, 9, 12, 6], the code should print 25 as : 0^2 + 5^2 = 25 = 3^2 + 4^2
My Approach: Easy Hash-map solution in O(n^2) was sufficient for full score here.
Q2: Similar to this: Remove brackets from an algebraic string containing + and – operators.
I quickly scanned through the coding questions in the beginning and then finished MCQs in about 15 min.Got full score for the first question and 9/10 test cases for the second one.Many of my friends who submitted partial solutions(above 6 test cases done) and did fairly well in the MCQs were also shortlisted for the interview.
As expected from the available interview experiences of Sapient from GfG, there was only one Technical Round.But this is where the similarity ended.The interview was totally different from those articles as there were no typical DSA questions or puzzles asked.
The interview started with introductions and then he asked me about my internships and one of the projects.He was more concerned about the approach and usefulness of it rather than implementation.
After that, he gave me a Netflix type system, where we have 3 types of content: movies, documentaries and TV shows.There were multiple parameters of classification: ratings, genre, age, year.I was asked to come up with a data-structure to store it with minimum redundancy and faster read-heavy operations.I started with Hash-Maps, tried to optimise searching, then moved to Indexing which was what he was expecting I think.Then we moved on to discussing how indexing works.
Then he asked to find & replace a string in a paragraph.I started with the Naive-pattern search, but he asked for optimisation.So I told him about the KMP-search and explained how it works in O(n+m).He seemed impressed but was persisting for further optimisation when the paragraph size is much large, say 50 GB.Then I realised that it’s not algo he is looking for as answer so I moved to Sharding .The discussion went on to discuss Messaging Queues, polling and edge cases of search.
After that he asked me what I understand with DevOps and testing.Since I had worked on k8s, docker etc in my internship, it was easy for me.Then I was asked about OOPs principles and where I have applied them in any of my projects/internships.Then he asked me for any questions from my side after which the interview ended.
I was the first to be called for this round.The interview began with introduction and how my day was going.The HR was very friendly and she told me that the I’ve got an amazing feedback from technical round.Being from Chemical background, she asked me how I took so many CSE subjects as open electives and projects while maintaining a good CGPA in my branch.The point here is you should guide the interview as your answers will form interviewers’s the next question.Then I was asked questions about working in team, ideal working environment according to me and other similar type questions.The interview went on for about 50 min.
Among the 12 people shortlisted for interview, I was the only select :’)