Skip to content
Related Articles

Related Articles

Endurance Interview Experience (On-Campus)
  • Last Updated : 12 Jan, 2019

Endurance International Group visited our college for the Software Developer profile. It consisted of 5 rounds ( MCQ, CODING, TECHNICAL 1, TECHNICAL 2, HR).

 

Roound 1( MCQ round of 45 min):

There were 60 MCQ questions with 4 choices. The questions were of GATE level and had +3 for correct and -1 marking for negative answer. The questions covered topics like OOPS,   Analysis of Algorithms, Networking, DBMS and OS.  I was able to “attempt” 54 of them and ace the first round among approximately 70 other competitors. Around 25 people were shortlisted for the next round.

 



Round 2 (Coding):

EIG’s coding round is different from normal coding rounds. You have to code in an IDE in your own laptop, disconnected from the internet. They provide you with all the library commands of all well known programming languages through the college LAN, which you can refer to . You are allowed to code in any language, in any IDE of your choice.
Problem Statement:

Implement an in-memory key-value store with the following features in command line:

  • The program should support the following
  • Italics – Command typed by user
  • Bold – Response from the command line
CommandDescriptionExample
set key value [ttl]set the key with specifiedset hello 5
value. optional ttl in secondsdone
can be specified. if ttl isset test data
specified, the key shoulddone
expire after ttl.set ttl_test 10 5
done
get keyget the key if found in dataget hello
store. or return nil.5
get world
nil
get test
data
flushflush all the keysflush

flushing done

get hello

nil

savesave all keys to a filesave

saved to data.dat

load filenameload keys from a fileload data.dat



loading done

Bonus PointResolve conflict when set isSet hello 5
done over same key twice.Set hello 6
Get hello
Resolve conflict when set is5 6
done over same key twiceSet ttl_test 5 10
with ttlSet ttl_test 6 20
Get hello
5 6
After 10s
6

 

Solution:  I created a Data class with attributes value and timestamp. The timestamp stores the expiry time of the data item using the system based timestamp in milliseconds and a negative value if it doesn’t have an expiry time.

While getting the data,   I checked if the expiry timestamp is less than current timestamp, then output nil (output already expired), else show the data.

During saving in file, I only saved the items which have not expired yet, checking in a similar way.

For the bonus part, You can use a Linked List of Data items .

The outputs were reviewed by at-least 2 people.

3 people made it to the next round, myself included.

Round 3(Technical 1):

 

The panel had two judges and the round took about 30 mins. Firstly they asked me about my projects and which one of them were my favourite. I described all my machine learning projects and Android applications. They also noticed web based projects in my Internships and were curious about them.

After querying about the basic process of data retrieval from a server, they gave me a situation based on data retrieval from a website followed by a sequence of hurdles that are needed to be taken care of. They were as follows:

How to ensure that the user is logged into server, without checking credentials in every step of data retrieval.

I propsed a solution by adding an is_online column in the database . But that will auto-authencicate user if he is accessing from multiple devices.

 

How to ensure that a user is accessing the site from one device only?

I suggested to Use the device-id with the user_Id for authencication. But they did not want the details of the user to be exchanged in airtime so often. They gave me some hints of using random numbers and I told them to generate a public and private key pair in the server side and give the private key to the user so that the unique identity can be preserved along with encryption of data. They said that I was over-doing it as such services are not free. The solution is to just send  a random key to the user for that session and use I thereafter for both the above problems.

 

How to block DDOS attacks so that multiple connections are not created in a given period of time from the same user ?

I proposed to use a separate lightweight script to check the number of connections made from the public IP of the user within a certain period of time (running a while loop with a counter), before it can access the server scripts. They enquired about the layer in which I would be using this script, as we needed to stop the connection way before the upper layers of OSI.

 

I was not selected after this round . They told me that I had a different skillset, one which were not of their requirements as of now.

After a conversation with other students, I learnt that were asked similar questions too. There was not much focus in coding or OS, in the interview rounds.

 

Advice: If you want to get into EIG, make sure you really are strong with web and networking based knowledge as most projects are based on that ( And make sure that you enjoy it too !).

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.   In case you are prepared, test your skills using TCS, Wipro, Amazon and Microsoft Test Serieses.

My Personal Notes arrow_drop_up
Recommended Articles
Page :