Apple Software Engineer III Interview Questions | Glassdoor

Find jobs for Software Engineer III

Apple Software Engineer III Interview Questions

Interviews at Apple

3 Interview Reviews

Experience

Experience
67%
0%
33%

Getting an Interview

Getting an Interview
50%
50%

Difficulty

3.7
Average

Difficulty

Hard
Average
Easy

Helpful (67)  

Software Engineer III Interview

Anonymous Employee in Cupertino, CA
Accepted Offer
Negative Experience
Difficult Interview

Application

I applied through an employee referral. The process took 6 weeks. I interviewed at Apple (Cupertino, CA) in September 2012.

Interview

I gave my resume to a friend who works at Apple, who submitted it on their job site with his name attached as a referral. My application targeted several open positions that I thought matched my skills. I started receiving emails from Apple recruiters from various teams in a couple of days. Some of the recruiters talked to me about positions that I don't remember applying for and were beyond my capabilities, so I had to turn some of them down. In the end I ended up being scheduled phone screens with two separate teams.

Team A's phone screen almost entirely general, with one extremely basic technical question ("What is an affine transformation?"). This one led to a second phone screen two weeks later that was slightly more technical but still heavily focused on my experience. In the end I did not make it past this stage.

Team B's phone screen on the other hand ran the gamut of generic programming interview questions:
"Describe an interesting problem and how did you debug/solve it."
"What is const correctness?"
"What is the mutable keyword in C++ used for?"
"What is the difference between a list and a vector?"
We didn't talk about my experience or anything on my resume at all. But the evening after the phone screen, I was contacted by the recruiter via email informing me that the team would like me to interview me onsite.

As I already live in the area, I was responsible for getting myself to their headquarters so I have no idea how they manage interviews with non-local folks. My first interview was at 11:15am. I planned to get there at 10:45am just to be safe, but parking was so bad that I didn't end up checking in until 11:05am. Luckily I decided to be early! In general, parking at the main campus is an awful experience if you arrive after 10am.

The interview itinerary was as follows:
2 engineers (45 minutes)
1 engineering manager (lunch + interview) (1 hour)
1 recruiter who I talked to on the phone (30 minutes)
2 engineers (45 minutes)
2 engineers (45 minutes)
2 engineers (45 minutes)
1 engineering manager (45 minutes)

I received one break in between the engineering manager and recruiter interview only because I requested to use the restroom. Aside from that my schedule was back-to-back interviews and it was honestly a very draining experience.

The interviews all involved writing coding solutions in C on a whiteboard. The problems themselves were mainly contrived variations of string and list manipulations, and character permutations. Unlike the interview process of a certain other notorious tech giant, they didn't care much about time complexity or improving solutions. Once I came upon the solution that the interviews seemed to be looking for, they immediately moved onto the next one. The problems alone were not terribly difficult, but there is the consideration of nervousness and anxiety that turns an intermediate problem into a difficult one. While I was able to get the right answer for every problem, I definitely wandered down the wrong path and went in circles a bit before arriving at the correct response.

The day after the onsite interview, I received an email from the recruiter saying that the team thought I would be a good fit, but I needed to talk to one more higher level manager who happened to be on vacation. So fast forward another two weeks and I'm on the phone with him. His questions are fairly general and he seemed to be mainly interested in selling the position to me rather than attempting to identify whether I qualify for the position, which I saw as a very good sign.

A couple of days after that, the recruiter contacts me again and provides me with an offer.

Interview Questions

  • Print all permutations of a string of characters, without printing any duplicates.   1 Answer

Negotiation

Reading a couple of negotiation books beforehand, I knew going in that the person who drops a number first usually loses. That being said, the recruiter's experience in negotiation crushed mine and I ended up telling him my current salary first, much to my disappointment. When he asked how much I was looking for, I figured that I had little to lose and gave a high ball number (but still reasonable). He said he would talk to the director about it and get back to me.

The next day, they gave me a counter offer. However, the offer was even higher than my high ball number, and they added RSUs and a signing bonus on top of it. I had never heard of a company that did that.

I accepted the offer immediately.

Other Interview Reviews for Apple

  1. Helpful (3)  

    Software Engineer III Interview

    Anonymous Employee in Cupertino, CA
    Accepted Offer
    Positive Experience
    Difficult Interview

    Application

    The process took 2+ months. I interviewed at Apple (Cupertino, CA) in November 2008.

    Interview

    It was an internal transfer. Interviewed with 11 people. It was a pretty grueling process of computer science puzzles and system level questions.

    Interview Questions

    • How would you implement a threading model for handling network, filesystem, UI system, etc. as a user-space framework in a very limited resource environment?   Answer Question

    Negotiation

    No negotiation as this was an internal transfer.


  2. Helpful (3)  

    Software Engineer III Interview

    Anonymous Employee in Cupertino, CA
    Accepted Offer
    Positive Experience
    Average Interview

    Application

    I applied online. The process took 5 days. I interviewed at Apple (Cupertino, CA) in January 2014.

    Interview

    First interaction was with a tech recruiter - very pleasant. Setup a phone interview with a hiring manager. The hiring manager knew his stuff, I instantly knew that I'm talking to someone who intrinsically understands programming and software design. The discussion went smoothly. I was asked mostly about handling concurrency, some algorithmic questions etc.

    The recruiter reached back to me several hours after the initial interview and set up an on-site interview loop with the team 3 days later. On-sites where pretty straightforward; standard CS stuff, algorithms, software/api design, etc. They focused too on understanding your users and HCI.

    Everyone was very respectful and intelligent. I instantly knew that I want to work with those people.

    They got back to me with an offer on the same day.

    Interview Questions

    • Nothing unexpected. Happy numbers problem, implementing a lock free data structure, designing asynchronous APIs, etc. Typical tech interview.   Answer Question

    Negotiation

    I was offered way more than I asked for, I didn't even think about negotiating when I heard the numbers.

Don't Miss Out On a Job You Love
Upload a resume to easily apply to jobs from anywhere. It's simple to set up.