Tip 1 : Start with basic practise and once we are strong with basics, start coding.
Tip 2 : Use and get strong in only one coding language.(preferable Java, C++)
Tip 3 : Do some project which can be useful to explain in HR or intro process and Be strong with OOAD concepts.
Tip 1 : List down only the skills which we are perfect at.
Tip 2 : Add projects in 1st page and give a brief intro about the project as description in the resume.
Tip 3 : Add your profiles in the resume.
Write a program that can merge a series of files containing JSON array of Objects
into a single file containing one JSON object.
Example:
Suppose there are 3 files - data1.json, data2.json, data3.json.
Let's say data1.json contains -
{"strikers": [
{ "name": "Alexis Sanchez", "club": "Manchester United" },
{ "name": "Robin van Persie", "club": "Feyenoord" }
] }
data2.json contains -
{"strikers": [
{ "name": "Nicolas Pepe", "club": "Arsenal" }
] }
data3.json contains -
{"strikers": [
{ "name": "Gonzalo Higuain", "club": "Napoli" },
{ "name": "Sunil Chettri", "club": "Bengaluru FC" }
] }
A merge of these 3 files will generate a file with the following data.
merge1.json -
{"strikers": [
{ "name": "Alexis Sanchez", "club": "Manchester United" },
{ "name": "Robin van Persie", "club": "Feyenoord" },
{ "name": "Nicolas Pepe", "club": "Arsenal" },
{ "name": "Gonzalo Higuain", "club": "Napoli" },
{ "name": "Sunil Chettri", "club": "Bengaluru FC" }
] }
Functional requirements:
1. Accept the following parameters as an input –
a. Folder Path: The folder where all the JSON files are stored.
b. Input File Base Name: The common prefix all file names share. In our
example above, this prefix was data.
c. Output File Base Name: The prefix for the merged file name
generated by the merge utility.
d. Max File Size: The maximum file size (in bytes) that each merged file
is allowed to be.
2. The utility will read all files in the Folder Path that begin with the Input File
Base Name, and process them in increasing order of the number added as a
suffix to each file (1,2,3,....,12,13,...).
3. The utility will ensure that the output files are named using the Output File
Base Name as a prefix, and a counter as a suffix.
4. Merged files will never be greater than Max File Size.
5. Each output file will contain a proper JSON array.
6. Bonus points for making the solution generic so any kind of JSON array can
be merged. (e.g.: The root key "strikers" becomes "employees". The objects
in the array carry fields like "name", "id", "designation", etc.)
7. Bonus points for supporting non-English characters.
Non-functional requirements:
1. The algorithmic complexity of the merge will be as small as possible. Please
capture the algorithmic complexity of your solution in the README file.
2. The merged files will be as large as possible, without exceeding Max File
Size.
Languages:
Ideally, we would not restrict you from working on a language of your choice.
However, it would be preferable if you stick with one of these:
• NodeJS
• Java
• Python
• GoLang
• Ruby
• C/C++
Tip 1 : Should satisfy all functional and non functional requirements without miss
Tip 2 : Follow OOPS concepts and the code should be scable and should follow design patterns.
Tip 3 : Add any extra functionality to make your assignment standout of others.
First round was completely problem solving.
Initially interviewer went through the resume and asked for self intro(keep self intro short as the aim of the round is problem solving).
Interviewer asked questions on different kind of sorts and asked to implement merge and quick sort(expected to write running code)
Next question is to print all the combinations for a given string.
Atlast interviewer asked few questions on networks(basics).



Merge Sort Algorithm -
Merge sort is a Divide and Conquer based Algorithm. It divides the input array into two-parts, until the size of the input array is not ‘1’. In the return part, it will merge two sorted arrays a return a whole merged sorted array.

The above illustrates shows how merge sort works.
It is compulsory to use the ‘Merge Sort’ algorithm.
Step 1 : As the question is straight forward, proceeded implementing the algorithm.



Let the array = [ 4, 2, 1, 5, 3 ]
Let pivot to be the rightmost number.

Step 1 : As the question is straight forward, proceeded implementing the algorithm.



Input: str1 = “ab” , str2 = “aoba”
Output: True
Explanation : Permutations of first-string str1 i.e. “ab” are [ “ab”, “ba” ].
The substrings of str2 i.e. “aoba” are [ “a”, “o”, “b”, “a”, “ao”, “ob”, “ba”, “aob”, “oba”, “aoba” ].
The string “ba” is present in the list of substrings of string str2.
Step 1 : Discussed my algorithms with interviewer.
Step 2 : Once he is satisfied with the mentioned algorithm, we have done a dry run for few examples.
Step 3 : To optimise the algorithm , I have used back tracking technique .
This round the interviewer went through the resume in detail and asked questions on various projects throughout and the technologies used in the projects.
Later he asked questions on application of data structures and few puzzles.
System design of my project
Tip 1 : List the entities used in your project
Tip 2 : Add sequence , use case, activity diagram for few features.
Tip 3 : List the DB schema and the queries used in the project
If a bowl was thrown from n stored buliding, find the floor which the bowls breaks with minimal iterations.
(Question on binary search applications )
Tip 1 : Think of the use case properly and optimise using existing algorithms.



If the input tree is as depicted in the picture:
The Left View of the tree will be: 2 35 2
Step - 1 : Described all CRUD operations of nodes in binary tree and wrote methods for each operation.
Step - 2 : Cover corner cases like doing null validations
Tell me about yourself.
Are you Willing to relocate?
Have you any existing offers?

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?