Well it all depends, I waited until my boy was 2, but you can do it after 12 weeks of age I think. If you are 100% sure your dog will never be let outside to a bitch in heat, then I would suggest waiting until he is fully grown. There really is theories and documentation proving early s/n could have problems and as many articles and vets saying there are benefits to an early s/n. Its really a personal choice. Everyone will tell you different responses. Personally, I would spay a girl before her first heat and wait until my male is 2. But that's JUST my OPINION.
"There are two temptations to which people fall prey with dogs. The first is to think that biology counts for everything. The second is to think it counts for nothing"
- Tom Junod
“When you KNOW better you DO better.”
― Maya Angelou