Best Practices For Arduino Programming Software