As massive datasets and distributed computation become commonplace, the field of optimization is quickly evolving to meet new challenges. As a response to the challenges posed by big data, first-order (splitting) methods have become the workhorse behind large-scale systems because of their low complexity. These methods have been well studied in the context of smooth, unconstrained optimization. For more sophisticated problems, important practical considerations such as adaptivity, acceleration, and stopping conditions are not well understood. Furthermore, incorporating these features into solvers creates challenges from both a theoretical and practical perspective. This talk will address these issues, and discuss applications of fast splitting methods in machine learning, imaging, and wireless communications.