Structural health monitoring (SHM) is an important application area for wireless sensor networks. SHM techniques attempt to autonomously detect and localize damage in large civil structures. Structural engineers often implement and test SHM algorithms in a higher level language such as C/Matlab. In this paper, we describe the design and evaluation of NETSHM, a sensor network system that allows that allows structural engineers to program SHM applications in Matlab or C at a high level of abstraction. In particular, structural engineers do not have to understand the intricacies of wireless networking, or the details of sensor data acquisition. We have implemented a damage detection technique and a damage localization technique on a complete NETSHM prototype. Our experiments on small and medium-scale structures show that NETSHM is able to detect and localized damage perfectly with very few false-positives and no false negatives, and that it is robust even in realistic wireless environments.