I follow the motto: "Don't spread yourself thin."
What I try to do is get into the core of whatever product I work on, as close to the beginning of the product's creation.
Then, I implement "good enough" solutions that work as a bridge until the team can grow to hire experts.
For example: At a startup I worked with another engineer on a desktop client. I focused on working mostly on the business logic, and muddled through the UI. We brought in a UI expert to polish the UI. Later, when we added a driver, we brought in a driver expert to implement the driver, and I worked on how it integrated into the product.
On that product I also became "good enough" at Mac programming because it was a cross-platform product, and I focused on our cross-platform logic abstracted Mac and Windows. We later brought in Mac experts who filled in the pieces that required more extensive Mac experience.