I applied online. They got back to me quickly and were very interested in my background.
First, I had a quick phone screen with the HR guy. We talked about technologies I've used and what I'm looking for in a job. It was not difficult at all.
Then, I had a technical phone interview with an experienced software architect. During the first half of the call, he asked some basic software engineering questions (e.g. "What's the difference between an interface and an abstract class?"). During the second half, we got onto collabedit.com and shared an interactive session. He asked me to write a method that accepts two character arrays and determine whether the first could be recreated using only the characters in the second. I solved the problem by putting both arrays into hashmaps (with the character as the key and the number of occurrences of that character as the value), then checking the number occurrences of the first hashmap against the second.
Finally, I had an in-person interview at their Durham office. They sat me in a little meeting room (that could hold maybe 5 people max). I met with four people, for one hour each. Each person would ask me some questions about my background, some technical questions, and one big problem for which they wanted me to write stuff on the a white board. The big problems I encountered were:
-Write a method that accepts a list of integer pairs. The method should compare the integer pairs and combine/delete pairs that intersect/comprise other pairs on the number line(for instance (1,4) and (2,5) could be reduced to (1,5); (1,4) and (1,3) could be reduced to (1,4); (1,4) and (6,8) couldn't be reduced). The method should return this list of integer pairs. This problem took me a while to solve. It was important to sort the list first.
-Design the class structure and explain the general methodology of software that would guide museum-goers on an audio tour. The museum-goers enter a customized list of which exhibits they want to see and the software figures out the best path for them to take. Also design a file format so that the museum can tell the software the layout of the museum (I did a simple XML format that gave each room a name and described which rooms connected to each other).
- Write a method that accepts a list of integers and returns each number as a percentage of the largest number. This wasn't too difficult, though it did bring to light some questions about efficiency. Again, it was a big help to sort the list first.
- (The fourth interviewer didn't have a big question.)
I thought I did pretty well on the interview. It seemed more like a stress test than anything else. Though the HR guy told me that they usually only take 48 hours to make a decision, a week had gone by and I'd heard nothing. I called and emailed the HR guy, but I couldn't get a response from him. It took him almost 4 weeks to finally get back to me and tell me that they weren't interested in hiring me. Then I got a check in the mail for a third of my interview costs (hotel room and mileage). I tried to ask for the rest, but again couldn't get ahold of anyone.
Wireless Generation was pretty professional up until the end there. They seemed like a cool company, but now that I know how they deal with people they aren't interested in anymore, I'm glad I have nothing to do with them.