I recently flunked an entire interviewing sequence at Coursera and figured it would be useful to recap the experience for the next candidate. While I was interviewing for a role on the iOS team, the interviewing process should be very similar for the Android side, as the team shares the same boss, if I recall correctly.
The mobile team at Coursera is very small compared to the company: three iOS engineers and three Android engineers out of a total company size of about 300 (90 of these can be counted as engineering). Wednesdays tend to be work-at-home days. Lunch and dinner are catered in the lunchroom every day, and catered breakfast happens two mornings a week. Most of the company works in the office on the south side of Mountain View, but there are other offices in London and Bellevue.
The mobile team is still small enough that the interviewing day was kept rather short (11 a.m. to about 3:30 p.m.), which meant I was able to avoid a lot of the heavy Google & Facebook-related traffic on US-101. I suspect interviewing days will get longer as they focus their interviewing process and add more members to the team.
The interview process took a couple of months to get rolling from their initial outreach. Once I passed the phone screen, I quickly moved along to the in-person rounds. The in-person rounds were split into three technical interviews covering system architecture, application writing, and a classic algorithm question. When you arrive, the recruiter will give you a schedule sheet showing how long each session should take, typically 45 minutes to an hour. The application writing section, where I was left alone in the room to write code, was a 2.5-hour block of time.
To prepare for this section:
In the system design round, I was asked to talk about what a download manager would look like and potential APIs associated with it (e.g., would you choose a singleton or an instance of a download manager).
The algorithms section was where I spectacularly failed. I went in fully expecting algorithm & data structures questions related to binary search trees and sorting, and instead, I was presented with a regular expression-related question that had me freeze up in frustration.
I've recapped as much as I could remember from memory below. The interviewers were pretty savvy and strict in collecting their materials at the end of each session, so I would fully expect them to switch their questions out when they figure out somebody explained the process here on Glassdoor. Hopefully, their interviewing approaches will remain the same, and this introduction will help you to properly prepare for success on your interviewing day.
If my notes helped you to prepare for your interview, please let me know by clicking on the "helpful" link below, as this motivates me to try to be as detailed as possible.
The interviewer wanted to see the answer to the algorithm question done in demo-able, live code, and he gave me the choice of using either CoderPad or my Xcode IDE.
You're given the assignment to implement your own regular expression parser with three different cases:
exact_matchwildcard_matchexact_wildcard_match (if I remember correctly)The API should look something like this:
exact_match("hello world", "hello") returns true.
exact_match("hello world", "llo") returns true (llo exists).
The first parameter is the string, and the second parameter is the query you're doing the matching on.
The wildcard in wildcard_match was a period, so a successful (true) wildcard_match could have inputs such as ("hello world", ".ello") (where the wildcard character is a period).
The phone interview question was done via CoderPad and was titled "The Threebonacci Table".
For the purposes of this problem, a Threebonacci sequence is a twist on the Fibonacci sequence where you would sum the previous three elements to get the next element. That is, if the Threebonacci function is defined as t, where n is the index of the element involved:
t(n) = t(n-1) + t(n-2) + t(n-3)
You can assume t(0) = 0, t(1) = 1, and t(2) = 1.
With this information, please complete the tableview in the following UIViewController so that each UITableViewCell displays its Threebonacci value corresponding with its row index. An example is as follows:
0 1 1 2 4
...and so on.
The following metrics were computed from 1 interview experience for the Coursera Mobile Software Engineer role in Mountain View, California.
Coursera's interview process for their Mobile Software Engineer roles in Mountain View, California is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Coursera's Mobile Software Engineer interview process in Mountain View, California.