Current software is typically brittle and of low quality: Software is hard to debug, hard to change, and hard to optimize. This proposal explores a compiler-based approach for improving the quality of software. In particular, this approach, and its the implementation in the Broadway compiler, provides automated support for error detection and performance optimization. The key observation is that performance and correctness are no longer issues that can be dealt with purely at the level of language primitives. The solution then is to inject domain-specific information into the compilation process. This information is expressed using a simple annotation language that directs a configurable compiler to perform domainspecific analyses and transformations. The result is a compiler that can detect domain-specific security vulnerabilities and can perform domain-specific optimizations that exploit, for example, the semantics of a graphics library or a parallel matrix library.