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.
Overall smooth. Had 3 interviews: one behavioral and 2 technical. Heavy system design and debugging. Interviewers were nice, standard interview format with an introduction and then mostly technical questions. Some OOP concepts needed as well.
It was a pretty standard big tech interview process. At a high level, it had the following steps: * Recruiter call * Hiring Manager screen * Technical phone screen * Onsite
One interview, supposed to be with the hiring manager, was followed by a group of three interviews. These interviews were primarily focused on computer architecture and verification concepts. There was also some coding related to these computer archi
Overall smooth. Had 3 interviews: one behavioral and 2 technical. Heavy system design and debugging. Interviewers were nice, standard interview format with an introduction and then mostly technical questions. Some OOP concepts needed as well.
It was a pretty standard big tech interview process. At a high level, it had the following steps: * Recruiter call * Hiring Manager screen * Technical phone screen * Onsite
One interview, supposed to be with the hiring manager, was followed by a group of three interviews. These interviews were primarily focused on computer architecture and verification concepts. There was also some coding related to these computer archi