A doubly constant weight code is a binary code of length n 1 + n 2 , with constant weight w 1 + w 2 , such that the weight of a codeword in the first n 1 coordinates is w 1 . Such codes have applications in obtaining bounds on the sizes of constant weight codes with given minimum distance. Lower and upper bounds on the sizes of such codes are derived. In particular, we show tight connections between optimal codes and some known designs such as Howell designs, Kirkman squares, orthogonal arrays, Steiner systems, and large sets of Steiner systems. These optimal codes are natural generalization of Steiner systems and they are also called doubly Steiner systems.