Heme is a versatile redox cofactor that has considerable potential for synthetic biology and bioelectronic applications. The capacity to functionalize non-heme-binding proteins with covalently bound heme moieties in vivo could expand the variety of bioelectronic materials, particularly if hemes could be attached at defined locations so as to facilitate position-sensitive processes like electron transfer. In this study, we utilized the cytochrome maturation system I to develop a simple approach that enables incorporation of hemes into the backbone of target proteins in vivo. We tested our methodology by targeting the self-assembling bacterial microcompartment shell proteins, and inserting functional hemes at multiple locations in the protein backbone. We found substitution of three amino acids on the target proteins promoted heme attachment with high occupancy. Spectroscopic measurements suggested these modified proteins covalently bind low-spin hemes, with relative low redox midpoint potentials (about -210 mV vs. SHE). Heme-modified shell proteins partially retained their self-assembly properties, including the capacity to hexamerize, and form inter-hexamer attachments. Heme-bound shell proteins demonstrated the capacity to integrate into higher-order shell assemblies, however, the structural features of these macromolecular complexes was sometimes altered. Altogether, we report a versatile strategy for generating electron-conductive cytochromes from structurally-defined proteins, and provide design considerations on how heme incorporation may interface with native assembly properties in engineered proteins.