They make some really cool toys. The campus is great. There are some really smart people to work and play with at Apple.
Apple corporate memory is very spotty at best, strewn across emails, bug reports, and the occasional standalone blog. It is very difficult to come up to speed.
Information is also highly restricted by project rather than cross-functional, which makes work difficult and design from foresight very difficult.
Every part of the entire software stack is modified at once throughout a new OS product/version cycle, including dev tools.
QA is much, much too sparse, and Apple depends on all devs eating the dog food while trying to meet their own very aggressive schedules.
In the groups I experienced, there is very little real design except in the heads of individual engineers.
Their software stack sucks. Objective-C is archaic and long of tooth as a dev environment.
Every developer, regardless of seniority and experience, is expected to sling fixed bugs (radars) at a certain rate to be seen as worth keeping around. Everyone has to prove they are a good Apple drone before they can do anything creative.
And/or they have to work nights and weekends (if they don't already have to to even keep up) to do something that gets them beyond drone mode and have some measure of control over their time and destiny. The people that make it seem to all work 60 hours or more a week.
Stagger new product development so changes to pieces used by many developers are done and perfected early.
Hire a lot of real QA instead of expecting dev folks to do it all in addition to development.
Make a lot more space/slack for your people to innovate.
Drop the idiotic grading of contributions by number of radars.
Make more room for different types and temperaments of workers instead of cramming almost everyone into the same mold.
Open source all software products you can, as Apple is not great at bread-and-butter software apps like Mail, Calendar, and Address Book.
Unify all data persistence outside of per-app silos as much as possible.
The interview process was comprehensive and well-structured, starting with a recruiter screen before moving into Round 1, which was a behavioral conversation with the hiring manager focusing on past projects, collaboration, and situational questions.
The interview process was pleasant but lengthy, involving six people. The interview staff were friendly, but the interview was by no means easy. The whole process took about six hours and was quite exhausting.
The interview consisted of three rounds, featuring a mix of behavioral, technical, and LeetCode-style questions. While not overly difficult, the technical questions did require a deep understanding of the subject matter. Overall, it was a good expe
The interview process was comprehensive and well-structured, starting with a recruiter screen before moving into Round 1, which was a behavioral conversation with the hiring manager focusing on past projects, collaboration, and situational questions.
The interview process was pleasant but lengthy, involving six people. The interview staff were friendly, but the interview was by no means easy. The whole process took about six hours and was quite exhausting.
The interview consisted of three rounds, featuring a mix of behavioral, technical, and LeetCode-style questions. While not overly difficult, the technical questions did require a deep understanding of the subject matter. Overall, it was a good expe