Tue Feb 13 16:08:55 PST 2007

Return of the Server

As you may have noticed if you tried to visit over the weekend, my server was down. On Friday evening, its power supply blew in a clap of electricity and the smell of burned electronics. I didn't have a suitable replacement power supply, so I had to wait until today to get the replacement. It's now operating well, and this power supply is certainly durable enough to last as long as I need it to.

Tue Feb 6 23:39:00 PST 2007

Apple Interview, Round 3

As I posted before, my third interview with Apple was a phone interview with an engineer from the Java team. Specifically, this engineer works on the framework, OS X to Java bridging, look-and-feel, and similar "neato" stuff. As such, I was expecting the interview to be Java-heavy, and also to focus on my JNI experience with the Summer of Code. It turned out that my Summer of Code project was so interesting to the interviewer that he had someone else from the Java team, a tech lead, call me to discuss the project - either that, or they didn't believe I really did what I said, and they wanted to grill me to make sure I wasn't lying.

I managed this interview better than my last one. My mind wandered less, and I had practiced answers to questions I knew I was going to be asked. I haven't put together a transcript for this interview, and I don't know if I will. I'll list some of the questions asked, and maybe I'll write a transcript from my notes later.

  • Tell me about the experience you have in writing in Java, specifically your OpenGL game engine.
  • Tell me about your experience using JNI.
  • Now some more basic questions: could you tell me what the difference between a set and a list is?
  • What would a linked list be good at that an array wouldn't be good at?
  • What is the level of complexity for lookup and insertion for: a hash table, binary tree, and linked list.
  • How would you get two threads to deadlock?
  • Is there an advantage to running a multithreaded application on a single-processor computer?
  • Tell me about different kinds of locking structures.
  • What does the Java synchronized keyword do?
  • What is the difference between an abstract class, a concrete class, an instance, and an interface?
  • Are you familiar with virtual methods in C++? Is there an analogous structure in Java?
  • What is the difference between a checked and unchecked exception?
  • What is your Objective-C experience?
  • What's the mechanism to return values you no longer care about in Obj-C?
  • How much experience do you have with Swing?
  • What are some design patterns used in Swing?
  • What are some design patterns in general? How and when do finalizers get run in Java?
  • Referencing the SoC project again - did your JNI interact with the garbage collector? Did that factor into your design at all?
  • Tell me more about the design you used in your JOGL game.
  • Why didn't you use Java3D?

At this point he asked if he could have one of his colleagues call me - he mentioned the colleague's first name offhand. While I waited for the call, I did some Googling and quickly found the guy he was talking about, a tech lead in the Java team. This person called me and asked me questions about my Davinci project for twenty minutes. He especially focused on how I dealt with interactions between the threads, and I opened up (an older version of) the code and took him through a portion of the callback sequence.

Now, I wait. I have a feeling this is it - I think I would match best in the Java team. If I measure up, I hope they let me know quickly so I can stop being anxious. If I don't, maybe they'll kick me over to yet another department, or maybe they'll realize that this is my best chance, and let me go. I hope for the first result, because I'm feeling excited to work on the Java team - the other two interviews didn't give me that feeling.

Tue Feb 6 13:36:44 PST 2007

Third Apple Interview Complete

I've finished my third interview with Apple, which turned out to be a double header. I'm still processing the conversations in my mind, but I'll update here once I've got it all figured out. Looking at my server logs, I have a feeling someone's eager to see my thoughts...

Mon Feb 5 22:49:35 PST 2007

Apple Interview 3 Approaches

My next phone interview with Apple is tomorrow morning. I was originally going to be interviewed by a manager from the Java team, but today I found out he can't make it. Instead, I'll be interviewed by an engineer in the department. I think I've been able to find out enough about this new interviewer to make a strategy, but I'll have to see how everything sounds when he calls tomorrow.