The actual day to day work though, was pretty routine. I was mostly fixing bugs and rebuilding parts of features that had to ship in yearly timelines. Every project I worked on that wasn't canceled was spent in refactor mode for a good portion of the year. Let's rewrite this for 64-bit for example, or let's rework this for this new framework. The actual customer should never notice a change in the product, and usually the visual changes are subtle if any. Lucky few got to work on the shiny demo-able new features and even fewer lucky folks got to lead teams from their new products.
Lastly, most of the tooling that I got really good at and used to great advantage was proprietary except for Xcode and Instruments. :(
So leaving to go to a startup I literally had to learn a whole new set of tools and APIs. Then again, I learned so much more about how to build a product from the ground up at a small 11 person startup than I ever did at Apple.
At a company like Apple, I gained skills adding a feature to an existing product. At a startup, I gained skills building a product from nothing but an idea.