4 years of going through the algebra of back-propagation with maths and physics undergrads, it's not that difficult :). The main challenge is combining it with stats and almost infinite dimensions of freedom which makes implementation extremely painful. hats off to the guys behind pytorch and tf for making it possible without having to rely on minuit or the promises of minuit2
That source is bearing a lot of weight.