The hiring process typically takes around 3 to 4 weeks. I had applied to this position through Indeed.com. I was initially contacted by the HR to discuss about my interest for this position and later I was asked to complete an Assignment. The Assignment typically consists of questions related to application of UNIX shell scripting, Regular Expressions, writing test cases for a given scenario, MySQL scripts to restore a database, MySQL queries to perform joins and rounded off with some algorithm related questions that can be written in a language of our choice. The assignment had 8 questions and I was given 10 days to complete it, which was an ample time.
I was selected for the next round of interview with a member from the Operations engineer team. This was a 30 to 45 min interview which was based on the assignment that I had worked on earlier. The interview started off with questions regarding my background in computer science and my projects. I was asked to make by regular expression handle incorrect formats better. Also I was asked question regarding inner join, outer join, ISNULL, AVG, SUM, COUNT and make certain column values as 1000 if the column value was found to be NULL as a result of join operation. The interview turned out to be like a natural conversation and overall, I was quite confident about answering the questions thrown at me.
After a few days time, I was contacted by the HR that I had been selected for a 3 hour technical interview. Initially I was a bit worried, but as the interview went on, I was very calm and relaxed. This video interview happened over an interview portal called blue-jeans where I had to talk with 3 members from the engineering team at Opower. The first interview was an open ended question. I was asked to extract certain information from a large number of flat files and also I was asked to list down the scenarios that I would need to handle. I told that I could use a Java program with Reg-Ex to extract these details and what my Reg-Ex would look like. Next, I was asked to store them in a MySQL database and questions were asked related to this, such as checking constraints, checking for invalid data formats, checking against the foreign key and so on.
The second interview was based on MySQL queries such as inner join, outer join and usage of built-in functions like COUNT, AVG. The interview ended with question related to version controlling features such as Commit, and Branch. I was also asked questions like "When would you need to perform a Branch on the main trunk?".
The third and final interview was also based on MySQL. Once again I was asked to perform outer joins, inner joins based on three tables. Finally I was asked to write a code to perform a division operation without using a "/" operator. I was also asked to explain about the various possible test case scenarios for this piece of code. Also all the three interviewers told me that I will be learning to write Ruby scripts.
I got the offer after 6 days through a phone call from the HR. I am really looking forward to this summer internship at Opower.