Just google "bmw coding" and it'll take you to different websites with all the info you need to get started.
Be prepared to put a decent amount of time into collecting all the information you need. There's a lot of good info out there, but it's kinda scattered in several different places. Once you get the hang of doing it, coding is not bad.
09 E90 AW ///M3 6MT
07 LBP S2K