At the simple side of things you can write your own implementation and use known test vectors to verify that your implementation is acting the same as other implementations. That should cover interoperability.
Some of the issues in cryptography implementation are subtle things that can affect it like timing concerns, if you have a time optimization it can be exploited to leak information on the data or the key. This is one thing that a less experienced developer may fall into.
There are other side channel attacks as well that one needs to be cautious about. Optimizations for power usage may also leak information.
Part of writing crypto is to optimize for security on the expense of time and power.
Some of the issues in cryptography implementation are subtle things that can affect it like timing concerns, if you have a time optimization it can be exploited to leak information on the data or the key. This is one thing that a less experienced developer may fall into.
There are other side channel attacks as well that one needs to be cautious about. Optimizations for power usage may also leak information.
Part of writing crypto is to optimize for security on the expense of time and power.