Resource optimization for fault-tolerant quantum computing