We address the following general problem: "Connect a given set of sites by a network with desirable properties." Different applications require networks with a different combination of desirable properties. Desirable properties include planarity, small size (number of edges), small weight (total length of the edges), small dilation (largest ratio of network distance to metric distance), small degree (maximum number of edges incident on a site), diameter (distance between farthest sites), fault-tolerance, large minimum angle (angle between edges), small number of Steiner points (points not in the input set of sites). Many of the properties reflect conflicting needs. In this talk we discuss theoretical limitations, interesting tradeoffs between desirable properties, and efficient algorithms for the design of such networks, with an emphasis on the property of fault-tolerance.