It was one hell of a interview. Or I shall say my first interview. I can still feel myself high on all that adrenaline.
I had anticipated that the interview questions might be a bit tough and tricky, so was prepared for them. Alas, it didn’t turn out to my best.
It started with a brief confirmation. Matching my education background and CGPA. He then moved to next section and asked me tell about two projects which I had mentioned. I asked any specific. Random. I picked my final year project. He liked it pretty much and was cool with it. He asked in the end whether it was done in team and what language I used. Since it wasn’t done in team, I selected my second project,quite ambitious one, as Imagine
Game design. It had a theme perfectly suited for the kind of work which I prefer to do and also EPIC does. So i could explain it perfectly, and the interviewer liked it as well. I now feel, I should have picked Mess portal one as my first, since it is a product development.Anyways.
Next, I was given a choice. I wanted to be asked on Databases, Chess or Sudoku. This was completely new. I had though I would be given some puzzles and riddles to solve or the career goals etc kind of questions, but this was something unprecedented. I chose chess. Simply because I was much more familiar with the moves, pieces and strategies than Sudoku.( Honestly, I wasn’t familiar with pseudocode for making a Sudoku, which would have been most probable question). Moreover, I had some experience in programming a two player chess… fine enough of blahs and over to the questions I was asked:
If you had to make a list of all the possible moves, how would you?
I answered, I would store the exceptions that a particular piece can make. Gave examples, like a knight can cross a pawn but Queen cannot. I would also store the possible moves a piece can make.
(I know the question sounds too easy and the answer too foolish. But I bet you to do it perfect in the first time in the dead of the cold night to a foreign accent over the telephone)
Interviewer’s response:You can take an array and store in them and few more points.
If you have to design a high level AI Chess game, how would you?
What is the way you would find whether a move is good or not?
will firstly see, if am not putting my king in a possible vulnerable position. Then would check, if i can put the adversory’s king in a position of check or check mate.
If the game has to proceed as normal. No checks or check mate, how would?
i would search for moves which could put the opposites valuable pieces in a threatening situation, thus forcing him to make a particular moves which could be judged-
Would you make a seperate function to check or do it the same way?
A seperate function could be made which would return set of possible values. Then can check against the possible moves. (I didn’t want to argue over the way of implementation. It shouldn’t matter, in terms of result, if we do it procedurally or functional)Still, I stuck to fi=unctional since that is a better approach in terms of such large possibilities.
Back to previous question, How would you say that a particular piece is valuable?
If that could lead to game loss it is–
If you had to prioritze the pieces, how would you?
there cudn’t be a particular set ranks. But, firstly the King, secondly Queen, thirdly rook or bishop, fourthly knight followed by pawn.
You have to loose quickly, how would?
i said by finding the most vulnerable position -this question had me stumped- maybe place by king at the center of the board away from any pieces to protect it.
He replied- would you use the make_move function for the adversary and try to find the best move?
I was like, Damn it!!. He wants technical answers. I was told that it would be brief introductory interview abt my CV and why epic etc stuff. So, i was replying in all the non tech fashion throughout.
I said a surrendering yes.
That, in short would certainly change the way I play chess ever again.
Then, it was a description about what my interviewer did at epic, which proved to be a complete tech guy. finding bugs, correcting them and completing the modules. He told me about work culture, which is pretty awesome. I quite liked the kind of environment they have at. he said that everyone is a coder, even the VP, so you can expect to get a comment on your code from him. Awesome.
At the end he told me I showed keep checking my mail for a link to the Remote Test. Should get it in few days. Maybe I am through, this round at least. It won’t be good to be rejected on the basis of test. Off to chilling.