The INDI library is geared toward experienced programmers planning to develop backend hardware drivers to run under the INDI architecture. The task of developing hardware drivers requires programmers with sufficient experience in at least one high level programming language such as C/C++. The INDI core library is written in C, while the INDI drivers library is developed in either C or C++.
Naturally, you need to understand the ins and outs of your hardware thoroughly. This includes communication, control of electronics/motors, physical limitations, and safety considerations.
While the INDI wire protocol is platform-independent, the INDI library is designed to operate specifically on POSIX platforms. Developers can port the library and device drivers to different platforms as desired.