Birds, Hands, and Bushes

Less than a week ago I was uncertain where I might be picking up enough work to pay rent. I wasn’t too worried, to be honest, but there was a lot of unknown. Monday I was contacted by my good friends at TEK Systems, a contract placement firm, wondering if I would be interested in a job at Apple. I responded with an enthusiastic affirmative. From all I’ve heard, Apple is a great place to work.

Karen and Brian at TEK Systems set up an interview for me on Tuesday. Brian met me outside the building, took care of introductions, and I met with the woman who could potentially become my manager. The job was interesting; doing rapid development of Web-based tools for Apple’s financial group. I kicked butt in that interview, and left feeling that I’d probably landed myself a job in the land of Jobs. I got home and kicked off my shoes and called my TEK pals and told them I thought it had gone well, and that if Apple offered the position TEK Systems could accept on my behalf.

Later that evening, I checked my email. There was a message there from a recruiter at Apple, saying that the WebKit group had seen this page and wondered if I’d be interested in a full-time position as a WebKit developer. Cool! I’d be doing what I’d already been doing only now getting paid for it.

If only one of the jobs had been at Apple, my decision would have been easy. I mean, what are the odds of getting interest from another group at the same company on the same day, anyway?

So then I had a bit of a dilemma. On the one hand I had hit it off really well with the boss in the first interview, on the other hand the second opportunity was doing something I feel passionate about in an environment where I could grow a lot more personally. I haven’t had anyone to review my code in a long time. I wrote back to the Apple recruiter that I would be interested and quickly contacted TEK Systems to tell them of the wrinkle.

Wednesday I spoke to one of the WebKit guys, who asked me a few programming questions but mainly just wanted to get a feel for whether he thought I would fit. I passed that hurdle, the next step was another more technical phone meeting with another member of the team, on Thursday. I told everyone involved that time was critical.

Somewhere in there — Wednesday evening, maybe? — the first Apple group formally said they wanted me to work for them, and they want to get started as soon as possible. (Although my potential future boss was totally cool about me talking to another part of Apple. She’s a believer, and will be happy for me no matter where I end up — as long as it’s at Apple.

Wednesday night I didn’t sleep much. I had an offer for a good job with some cool people. They wouldn’t wait forever for me to decide. “I could just take the job,” I thought. “I’ll have my foot in the door at Apple and the flexibility that contract employment allows. Plus, I can keep working on WebKit in my free time.” That last thought made up my mind. WebKit is where I want to be, but I’ll be plenty happy with either.

So, Thursday I cleared the second hurdle for getting a full-time WebKit job. After the technical phone interview the Apple recruiter called me and asked if I still wanted to move forward. “Yes,” I said, but told him that I had a standing offer elsewhere at Apple and I didn’t want to jerk them around too long. He understood, and thus there was Friday.

Friday. Wow. The interview process for a permanent job at Apple is not trivial. Eight meetings, two interviewers per meeting. Many of the sessions involved solving coding problems on a whiteboard, which can be stressful to say the least. Because the whole thing was put together on zero notice, there were no breaks between interviews. I sat in the conference room (other meetings were moved to accommodate this process), and they came at me two by two (although they were all very friendly about it).

How did I do? I’m not sure. There are certainly places I could have done better. My C++ skills are atrophied. But I’m pretty good at problem-solving and eventually I came up with good solutions to the problems they threw at me, which is the main thing they were testing me for. Ultimately, however, any programmer should be able to solve those problems. Did I distinguish myself enough from the pack to make them choose me?

The one meeting they couldn’t schedule on Friday was the one where all those people get together and decide wether to hire me. Monday morning, they tell me. Meanwhile I haven’t had direct contact with the other Manager who already offered me a job. She’s been waiting a few days now for my answer, and she needs someone in there quickly. How long will she wait? Hopefully at least until noon tomorrow.

Brief coda: TEK Systems has been great for me, and even though they don’t make any money if I take the full-time job they have been very supportive. I can strongly recommend the company, especially Karen Do, who is my primary contact there. She has been terrific.