Arcesium Interview Experience for Senior Software Engineer

Online Coding Round (HackerRank): 3 Coding Questions with 1-hour time limit.

  1. Given a binary string, find the minimum number of replacements to make the binary string alternating
  2. There are N product numbers from 1 to N. There are two numbers X and Y. There are two types of discounts $A and $B. A discount of $A is given if i (index of the item) is divisible by X. Discount of $B is given if I(index of the item) is divisible by Y. If the i (index of the item) is divisible by both X and Y, either $A or $B discount can be given. You need to calculate the maximum discount on all the items.
  3. Given a string of lowercase chars and a dictionary having key-value pairs as a character. Replace all characters in string (which are present as a key in the dictionary) to their corresponding value OR Replace all characters in the string (which are present as the value in the dictionary) to their corresponding key.

Example: 

if string is ‘abc’ and the dictionary has pair
{‘a’:’c’}, then replace all ‘a’s with ‘c’ and all ‘c’s with ‘a’.

Round 1:

  1. Quick introduction
  2. OOPS ( What is Interface? What is Abstraction?)
  3. What is HashMap? What is HashTable?
  4. What is Synchronization? How is it achieved in Java?
  5. Given a root node, Write an algorithm to give the list of the nodes which contribute to the left view of the tree.
  6. What is garbage collection in java? When it is invoked? How does it work?
  7. What is ExecutorService in java? What is CompletionService in java?
  8. There is one old grocery shop. They have an old computer system that uses a linked list to add customer info (Customer mobile number and Customer name) and retrieve the information through mobile number. When a customer comes to Shope, we ask for their number and fetch the customer info from the system. If not present, we ask for a name and add the info. There are many frequent customers also. The system already has many records, so retrieval is becoming very slow. Now, you need to alter the addition and retrieval logic such that we can improve the performance. You can not change the data structure. I provided different policies for different scenarios and discussed each:
    • Whenever we find the customer in the linked list, we move that node to first. We add new customers at the start of the list.
    • We keep the insertion point for the new insertion. Just after the logic change, it will be at the start of the list. Whenever we find the customer in the linked list, we move that node to first. Every new insertion is at the insertion point. New insertion will be shifting one place right, whenever there is a repeated customer. By this, all the nodes on the left of the insertion point will be the recently visited customers. so, a new customer will also be recently visited, but the last of it as it has visited the shop only once.
    • Every time we retrieve the customer info we need to bring the node 2-3 steps ahead.

    I have discussed that every policy is inclined to a particular case.

    For example, 1st is for the assumption that a new customer will visit the store again. 2nd, the new customer does not visit again. 3rd, general policy, where we are gradually increasing the position. The interviewer was satisfied.



  9. You are receiving feedback from the customer that your service has become slow for 2 months, It was fine 2 months ago. How will you debug this? This question was a very generic question. He wanted to see what steps I take when I have to debug something. For example, Checking the commits of the past 2 months for that function, etc.
  10. How do you review code?

This round lasted for 75 minutes.

Round 2: In an assembly, Students from the same class are standing in increasing order of height in the same row. There are N class and K students in each class. You need to give the set of students which follows below two policies :

  • The set should contain at least one student from each class.
  • The difference in maximum height and minimum height in the set should be minimum.

This round lasted for 60 minutes.

Round 3:

OOP design for the Bank system. Banks have different kinds of accounts. Account has withdrawal, deposit, compute balance, and compute interest functions. Not all the accounts have all these functions. For example, Current accounts do not have the compute interest function. The interviewer was more interested to know how I design my class structure.

SQL question:

t_Product :

P_id , P_name
1,     OnePlus 6T
2,     OnePlus 7
3,     Oppo F7



t_Transactions:

P_id, Date,     Quantity
2,    8/1/2020, +20
1,    8/1/2020, +10
2,    8/2/2020, -2

Retailers have these two tables. +Ve quantity in the Transaction table shows, retailer purchased items from the supplier. -Ve quantity in the Transaction table shows, retailers sold items. Given a date, write an SQL query to give current stock(Product Name, Quantity) of item till that date.

Answer:

Select t_Product.P_name as Product_Name,
SUM(t_Transactions.Quantity) from t_Product 
inner join t_Transactions where t_Product.P_id 
= t_Transactions.P_id AND t_Transactions.Date. 
<= @date GROUP By Product_Name;

This round lasted for 60 minutes.

Round 4 (HR Round) :

  1. Quick Introduction
  2. Information about family
  3. Why do you want to leave your current organisation?
  4. Why do you want to join Arcesium?
  5. You have left your organisation in a short period. Convince me why I should not believe that you will do the same with Arcesium.
  6. Expected CTC.

Hired! the interview process was remote on the blue jean platform. It was quick and well arranged. Just after 2-3 hours of finishing an online coding round, I have received the mail from Arcesium to schedule the first round of interview. On Average, every round was scheduled 2-3 days apart. The offer letter was sent after a week from the HR interview. So, the Interview process was around 15 days long.


Write your Interview Experience or mail it to contribute@geeksforgeeks.org

My Personal Notes arrow_drop_up

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.