How can a non-crypto-expert implement crypto libraries in a programming language? I'm a regular developer and thus not a crypto expert. I'd like to use ECDSA as a library in a programming language, Idris, which still doesn't have one. I could, obviously, try and port a particular implementation of my choice, run some tests, and call it a day. But that sounds unprincipled for something that needs strong security.

Is there any standard procedure or best practices to guide a normal developer to implement such a thing properly, without falling on the "don't roll your own crypto" trap?
The best option is to avoid doing so as much as possible. Ideally, your language of choice will offer a wrapper around a battle tested library such as libsodium (or maybe bearssl one day). 

Additionally, in a perfect world, the interface that the library/wrapper provides should be designed to make it difficult if not impossible for you as the developer to shoot yourself in the foot. For example, if generation of the nonce for some kind of CTR-like mode is left up to you and not handled by the libraries you're using, you probably want to use a different library.