2.1. Layered Software Architecture2.2. Layered Technologies2.3. Software Interface Design2.4. Getting from A to B2.5. The Software/Hardware Divide2.6. Hardware Platforms2.6.1. Shared Hardware2.6.2. Dedicated Hardware2.6.3. Co-Located Hardware2.6.4. Self-Hosting2.7. Hardware Platform Growth2.7.1. Availability and Lead Times2.7.2. Importing, Shipping, and Staging2.7.3. Space2.7.4. Power2.7.5. NOC Facilities2.7.6. Connectivity2.8. Hardware Redundancy2.9. Networking2.10. Languages, Technologies, and Databases