what are the things to keep in mind when interfacing two digital devices?
(Broad question gets a broad answer)

I don't think there's much of a worry about damage provided your voltages and directions are correct and current isn't going where it shouldn't. If you're passing the connection outside a case over some sort of connector you should consider ESD protection.

(I'm going to assume your interface is "short", ie up to a few meters of cable)

Getting digital interface signals to work is mostly a question of speed, noise, termination and timing.

For low speeds, none of the others present a problem. As the speed gets higher, there's a risk of noise transients being mistaken for signal. The edges of the signal itself start to become a problem, requiring consideration of impedance and termination. Termination resistors: are they needed? is a good read, but you could fill several books with a detailed discussion of the subject.

The usual techniques for addressing noise are to either shield the signal carrier (coaxial cable) or twist it with a ground or an inverse image of the signal. On a PCB, keep it suitably spaced from other signals and running over a ground plane. Both of these affect the characteristic impedance. You can rule-of-thumb your way round this by declaring everything to be 50 ohm and finding out from your PCB house what the required rules are for your chosen board and thickness to achieve that.

Timing - relative timing between different signals in a bundle - becomes an issue above a few MHz. Avoiding this issue is one reason why modern computer interfaces are all different flavours of high-speed serial (USB, Firewire, SATA etc).