starting graphics driver development

I just started working with embedded computing, and would like to learn some graphics driver development. I am thinking I should start by reverse compiling existing drivers for boards that I have. Is this the best way to go about it? does Nvidia have kits to help companies that may want to create complimentary technologies that work with GPU’s? any help is appreciated, thanks :)

I think the best way would be to go and work on nouveau, which is the reverse engineered open source NVIDIA driver.

They have a bit of documentation online:
And their set of tools called envytools to help with the reverse engineering.
Plus you can always just ask at #nouveau and learn from other developers.