Mixing of binary fluids by moving stirrers is a commonplace process in many industrial applications, where even modest improvements in mixing efficiency could translate into considerable power savings or enhanced product quality. We propose a gradient-based nonlinear optimization scheme to minimize the mix-norm of a passive scalar. The velocities of two cylindrical stirrers, moving on concentric circular paths inside a circular container, represent the control variables, and an iterative direct-adjoint algorithm is employed to arrive at enhanced mixing results. The associated stirring protocol is characterized by a complex interplay of vortical structures, generated and promoted by the stirrers action. Full convergence of the optimization process requires constraints that penalize the acceleration of the moving bodies. Under these conditions, considerable mixing enhancement can be accomplished, even though an optimum cannot be guaranteed due to the non-convex nature of the optimization problem. Various challenges and extensions of our approach are discussed.