Building Software for the Internet of Things