We present a first-order quadratic cone programming algorithm that can scale to very large problem sizes and produce modest accuracy solutions quickly. Our algorithm returns primal-dual optimal solutions when available or certificates of infeasibility otherwise. It is derived by applying Douglas--Rachford splitting to a homogeneous embedding of the linear complementarity problem, which is a general set membership problem that includes quadratic cone programs (QCPs) as a special case. Each iteration of our procedure requires projecting onto a convex cone and solving a linear system with a fixed coefficient matrix. If a sequence of related problems are solved, then the procedure can easily be warm-started and make use of factorization caching of the linear system. We demonstrate on a range of public and synthetic datasets that for feasible problems our approach tends to be somewhat faster than applying operator splitting directly to the QCP, and in cases of infeasibility our approach can be significantly faster than alternative approaches based on diverging iterates. The algorithm we describe has been implemented in C and is available open-source in the solver SCS v3.0.