Hardware Development For Non-Hardware Engineers