The problem of sending a secret message over the multiple-input multiple-output (MIMO) wiretap Gaussian channel is studied. While the capacity of this channel is known, it is not clear how to construct optimal coding schemes that achieve this capacity. In this work we show how to use linear operations along with successive interference cancellation in order to reduce the problem to that of designing optimal codes for the single-antenna additive-noise Gaussian wiretap channel. Much like popular communication techniques in the absence of an eavesdropper, the data is carried over parallel streams. The design approach is flexible enough to allow for using the same scalar wiretap code over all streams, or alternatively to use different scalar wiretap codes over parallel sub-channels without successive interference cancellation. This approach is applicable to more involved secrecy settings, by adjusting the linear operations performed by the encoder, and by jointly processing several channel uses.