I am putting the interview experience with two companies as both these companies asked design & code to build an application with the expectation of good design & code within the timeframe of 2 days. And here both the popular coding & design questions on Family Tree & Parking lot were covered.
Interview at Oracle -
First Round(28th June 2019) -
a) Difference between SOAP & Rest
b) Benefit of using Spring boot
c) What is Iterator design pattern
d) Design custom iterator class to iterate the collection of iterators like -
You have a collection of 3 lists, 1st list contains characters like a,b,c.... & second contains integers like 1,2,3.... & third
contains the special characters #$%...
Now our iterator class should iterate through the iterators of all such collections & return the data as - a,1,#,b,2,$,c,3,%....
Code for this, I am not posting as it is kind of straight, like you do merging of different sorted arrays.
e) Design the parking lot
f) Find the first repeating character in the given string.
One can easily write this code & can even search on internet.
g) Difference between ArrayList & LinkList
Second Round(28th June 2019) -
I am not sure about the results of the above discussion but I was given below 2 problems on 28th June 2019 & I was given option to pick anyone, so I chose the 2nd one as this was the only one I could think about -
Challenge #1: RPC Service
Create an async RPC service and client that communicate over a message bus.
The goal of the RPC service is to parse trees using recursive decent.
Challenge #2: Family Tree
Semi-structure-to-kickstart-ideas:
Relationship {
SPOUSE
MOTHER
FATHER
SIBLING
GRANDPARENT
OTHER
NONE
}
public ? getFamilyTree(); // A call to <Person>.getFamilyTree() will return a graphic (either in text or image) of the person's familial connections with names and relationship shown.
I provided below first solution on 4th July 2019, & it will need improvements/changes as per your requirements -
https://github.com/nitinbly84/MiniProjects/tree/master/src/oracleFamily
Once I get the time, either I will improve the above code or will create a new one.
I have stopped sharing the code via my Github link as some fools started copying that.
Third Round(15th July 2019) -
I was told after a week of the submission of the code that Oracle people would like to have next round to discuss about my code. So I was called for the discussion after 10 days of submission, quite a slow interview process. When I reached there, they were expecting me to carry my own laptop. But they managed to provide me the Apple laptop on which I was not comfortable. After few questions on the code design, they asked me make some changes in the code & I was not ready for any change & that too at the same time there. So this was my last round there. As per my experience, I will just say that in such coding rounds companies shouldn't take more than1-2 days to review the code which itself was written in 2-3 days & reviewers must provide their feedback & the kind of changes they are expecting. I don't know what such interviewers look for in the person after 10 days of submission of the code & expect the changes in the code to be done at the same time. If these don't have time for discussion on time then they shouldn't start interview process with half hearts.
Interview process needs time & patience to select the right candidates & every candidate has the right to get the feedback.
So my feedback to Oracle interviewers is also negative, as they even didn't show the courtesy to give the feedback.
GoJek -
I got the call for the requirement in this company.
And as part of first round before moving for other rounds of discussions, I got the problem statement on 1st August 2019 for which I was supposed to design, code & write the unit test cases in 2 days, Problem statement was to design the Parking lot. I have shared the code on GitHub, along with inputs, test cases & the code coverage report. You can use that code for your coding interviews, where company asks you to design & code for parking lot. But if there are some specific requirements then you have to make the changes or have to write your own code. And will be helpful if you can provide the improvements in the code, which will be helpful to others.
But surely you will get a good idea to design your custom code, as this code also have enough comments to help you.
GoJek has taken enough time to review the code which was written in 16 Hrs. Design was submitted on 2nd August 2019 & execution results were shared on 3rd August 2019, then shared the code on 5th August 2019. Go-Jek team was expecting me to design, write the code along with proper test cases & configure the code to execute it in their environment against their test data in 2 days. Obviously I didn't write the test cases as these things again take time to correctly write the test cases, not just to have these like it is done in general projects & regarding configuration to execute in their environment I requested to have a quick session with me where I can configure it as per their requirement, & now after 3 days I get the response from the consultant that my profile is not shortlisted. GoJek people didn't even have the courtesy to reply me over the email with their feedback about my code.
I have written the test cases with code coverage of around 77% with 31 test cases & you guys can complete it to 90% including the Mockito as Mockito not working currently.
Note:- I can't post the problem statement here but I have posted the working code along with the input file which gives the desired output. So you can understand the expected inputs & expected outputs.
Update :- I have stopped sharing the code for such problems as some people started copying that directly.
Interview at Oracle -
First Round(28th June 2019) -
a) Difference between SOAP & Rest
b) Benefit of using Spring boot
c) What is Iterator design pattern
d) Design custom iterator class to iterate the collection of iterators like -
You have a collection of 3 lists, 1st list contains characters like a,b,c.... & second contains integers like 1,2,3.... & third
contains the special characters #$%...
Now our iterator class should iterate through the iterators of all such collections & return the data as - a,1,#,b,2,$,c,3,%....
Code for this, I am not posting as it is kind of straight, like you do merging of different sorted arrays.
e) Design the parking lot
f) Find the first repeating character in the given string.
One can easily write this code & can even search on internet.
g) Difference between ArrayList & LinkList
Second Round(28th June 2019) -
I am not sure about the results of the above discussion but I was given below 2 problems on 28th June 2019 & I was given option to pick anyone, so I chose the 2nd one as this was the only one I could think about -
Challenge #1: RPC Service
Create an async RPC service and client that communicate over a message bus.
The goal of the RPC service is to parse trees using recursive decent.
Challenge #2: Family Tree
Semi-structure-to-kickstart-ideas:
Relationship {
SPOUSE
MOTHER
FATHER
SIBLING
GRANDPARENT
OTHER
NONE
}
public ? getFamilyTree(); // A call to <Person>.getFamilyTree() will return a graphic (either in text or image) of the person's familial connections with names and relationship shown.
I provided below first solution on 4th July 2019, & it will need improvements/changes as per your requirements -
https://github.com/nitinbly84/MiniProjects/tree/master/src/oracleFamily
Once I get the time, either I will improve the above code or will create a new one.
I have stopped sharing the code via my Github link as some fools started copying that.
Third Round(15th July 2019) -
I was told after a week of the submission of the code that Oracle people would like to have next round to discuss about my code. So I was called for the discussion after 10 days of submission, quite a slow interview process. When I reached there, they were expecting me to carry my own laptop. But they managed to provide me the Apple laptop on which I was not comfortable. After few questions on the code design, they asked me make some changes in the code & I was not ready for any change & that too at the same time there. So this was my last round there. As per my experience, I will just say that in such coding rounds companies shouldn't take more than1-2 days to review the code which itself was written in 2-3 days & reviewers must provide their feedback & the kind of changes they are expecting. I don't know what such interviewers look for in the person after 10 days of submission of the code & expect the changes in the code to be done at the same time. If these don't have time for discussion on time then they shouldn't start interview process with half hearts.
Interview process needs time & patience to select the right candidates & every candidate has the right to get the feedback.
So my feedback to Oracle interviewers is also negative, as they even didn't show the courtesy to give the feedback.
GoJek -
I got the call for the requirement in this company.
And as part of first round before moving for other rounds of discussions, I got the problem statement on 1st August 2019 for which I was supposed to design, code & write the unit test cases in 2 days, Problem statement was to design the Parking lot. I have shared the code on GitHub, along with inputs, test cases & the code coverage report. You can use that code for your coding interviews, where company asks you to design & code for parking lot. But if there are some specific requirements then you have to make the changes or have to write your own code. And will be helpful if you can provide the improvements in the code, which will be helpful to others.
But surely you will get a good idea to design your custom code, as this code also have enough comments to help you.
GoJek has taken enough time to review the code which was written in 16 Hrs. Design was submitted on 2nd August 2019 & execution results were shared on 3rd August 2019, then shared the code on 5th August 2019. Go-Jek team was expecting me to design, write the code along with proper test cases & configure the code to execute it in their environment against their test data in 2 days. Obviously I didn't write the test cases as these things again take time to correctly write the test cases, not just to have these like it is done in general projects & regarding configuration to execute in their environment I requested to have a quick session with me where I can configure it as per their requirement, & now after 3 days I get the response from the consultant that my profile is not shortlisted. GoJek people didn't even have the courtesy to reply me over the email with their feedback about my code.
I have written the test cases with code coverage of around 77% with 31 test cases & you guys can complete it to 90% including the Mockito as Mockito not working currently.
Note:- I can't post the problem statement here but I have posted the working code along with the input file which gives the desired output. So you can understand the expected inputs & expected outputs.
Update :- I have stopped sharing the code for such problems as some people started copying that directly.