Below I document how to successfully run a remote company. I work for a successful startup receiving regular accolades for our product.
Hiring:
Never hire very junior unless the person shows extreme talent combined with superior communication skills. Generally you are looking for people that are: highly efficient, organized, responsible, disciplined and able to stay on task with limited oversight. They should be self-starters with numerous projects they can point to that they delivered on their own.
Product engineering:
Near all communication happens in Slack/Hipchat/etc. Group meetings, when including remote people, happen in skype / Hangouts. We use shared google docs to brainstorm product and document specs. We use Trello to translate those high level specs into actionable stories. Use github to organize code reviews. You need a results-driven mentality. What did a developer deliver this week? This month? Weekly standups on Google Hangouts + monthly 1-on-1's with each developer can give you a good sense of how well a person is performing.
Culture-building:
Have in-person meetups 2-4 x a year for beneficial face-time and for people to get to know each other better on a personal level. Have monthly video conf/hangouts on non-work technical topics where people rotate presenting. Have a separate monthly book club to discuss technical or nontechnical topics.
Onboarding new people:
First, never hire very junior people. When a new person is hired, have them do 20 min 1-on-1's with all team members to get to know each other and their job role. Pair them up with a another person to work on a shared project. Have them paired for several projects before releasing them on the own.
I am happy to answer any specific questions if you have any.