By combining machine and crowd intelligence, we can open up a broad new class of software systems that solve problems neither approach could solve alone. However, while crowds are increasingly adept at straightforward parallel tasks, they struggle with complex work because participants vary in quality, well-intentioned contributions can introduce errors, and future participants amplify and propagate those errors. I introduce techniques that decompose complex tasks into simpler, verifiable steps, and return crowd results in realtime. I use these techniques to create crowd-powered systems: interactive applications that react with a combination of human and algorithmic intelligence. These systems support goals like rewriting and shortening text, polling opinions within seconds, and taking better photographs.