Many programmers can design their own software for controlling their CNC machine if they understand how the CNC works and how the drivers work. Designing CNC software is an advantage since it gives deeper CNC understanding and make the work easier since the CNC software program will be well understood. Also it can be sold in return to earning some money. Visual Stdio.net makes it easy to design it.