I've added an appendix to my "Enough Polynomials and Linear Algebra to Implement Kyber" article with the little extra needed to implement Dilithium/ML-DSA.

Maybe I'll stream an ML-DSA implementation tomorrow at https://www.twitch.tv/filosottile.