How Boom uses software to accelerate hardware development