This document provides guidelines for hardware engineers implementing a DDR4 memory subsystem. It recommends using simulation to optimize the design for signal integrity and timing and provides a checklist of key design considerations. These include routing the data and command/address signals in separate groups, using fly-by routing topologies, matching trace lengths, and properly terminating the various signal groups. Guidelines are given for impedance values and trace spacings for the different signal types.