The document discusses engineering pervasive computing applications and aggregate computing. It provides an overview of relevant technologies for pervasive computing like message brokers, streaming platforms, databases and cluster managers. It then discusses aggregate computing as a way to program collective behavior of device aggregates. Key aspects of aggregate computing include compositional programming with reusable abstractions, adaptivity, resilience and flexibility. The document analyzes requirements for an aggregate computing platform to support application specification, execution at scale and reliability even with unreliable devices and infrastructure.