At the interface between distributed computing and software engineering, we present three contributions that seek to help developers build better large-scale distributed computer systems. More precisely, we look a some key research problems related to software reuse in three representative instances of large-scale networked systems: peer-to-peer overlays, gossip-based protocols, and grid middleware. The work we present touches on three different, but interrelated, aspects of these systems: modular fault-tolerance (in peer-peer overlays), component-based development and programmability (in gossip-based protocols), and interactive performance analysis (in grid middleware). The message emerging from our contributions is twofold: first we demon...