Many organizations around the world have already succeeded in building simple quantum computers with a limited number of "qubits" (the most basic unit of information), and demonstrating simple algorithms. But qubits are notoriously fragile, difficult to control, and prone to errors i.e. "noisy". Connecting them together requires an enormous engineering effort; current machines don't yet have enough qubits to be able to spare any for error correction. This era of quantum computing is often referred to as "noisy intermediate-scale quantum computing" (NISQC), and represents the near-term possibilities for quantum computers. As well as advancing both hardware and software for NISQC approaches, we are also investigating the longer-term possibilities of a universal fault-tolerant quantum computer (UFTQC) which would use logical qubits and quantum error correction, and could be programmed to do any task. Through the previous Networked Quantum Information Technologies Hub (NQIT), we have successfully demonstrated all of the building blocks of a universal quantum computer.