One of the common poor design decisions I have seen in the field is using a single Web Application to host everything (My Site & any other team sites etc..); to me this is like putting all your eggs in one basket; instead consider creating multiple web applications one for each of the high level functional segments of your SharePoint farm; so one to host My Sites and maybe one or more to host your actual team sites and organization content where each is provisioned with its own application pool and designated service accounts. segmenting your web applications to this extent provides a good level of fault isolation and better manageability for each; so that if a custom solution would to experience memory or CPU issues you can easily triage it by itself without having to reset the entire web server causing a wider outage than necessary. Also consider creating multiple content databases per web application to host the various site collections you might provision and in the context of each web application so that you drive a bit more resilience into your content taxonomy and design.
So here is what happens; when you create a web application in SharePoint you also create an associated content database (Example: WSS_Content) then you will need to create at least one site collection in order to be able to start browsing the web application you had created. so far so good.
Now over time your customers, team mates, etc.. will ask you to create more site collections and work spaces; as some might ask for a site with a calendar and a document library and others might ask for a performance and business intelligence sites; over time each new site collection you create by default gets stored in that original content database so in a way you end up with a possible single point of failure content database; instead why not create additional content databases and split each of these site collections across multiple databases?! doing so establishes a bit more fault isolation into your design and gives you the flexibility of more granular backup and restore abilities.
Stay SharePoint Awesome!! 🙂