Designer manipulation of light at the nanoscale is key to several next–generation technologies, from sensing to optical computing. One way to manipulate light is to design a material structured at the sub–wavelength scale, a metamaterial, to have some desired scattering effect. Metamaterials typically have a very large number of geometric parameters than can be tuned, making the design process difficult. Existing design paradigms either neglect degrees of freedom or rely on numerically expensive full–wave simulations. In this work, we derive a simple semi–analytic method for designing metamaterials built from sub–wavelength elements with electric and magnetic dipole resonances. This is relevant to several experimentally accessible regimes. To demonstrate the versatility of our method, we apply it to three problems: the manipulation of the coupling between nearby emitters, focusing a plane wave to a single point and designing a dielectric antenna with a particular radiation pattern.