A novel optimization method is proposed to minimize a convex function subject to bilinear matrix inequality (BMI) constraints. The key idea is to decompose the bilinear mapping as a difference between two positive semidefinite convex mappings. At each iteration of the algorithm the concave part is linearized, leading to a convex subproblem. Applications to various output feedback controller synthesis problems are presented. In these applications, the subproblem in each iteration step can be turned into a convex optimization problem with linear matrix inequality (LMI) constraints. The performance of the algorithm has been benchmarked on the data from the COMPleib library.