Develop and maintain software applications that interface with hardware systems; Design, implement, and test device communication and control functionality; Troubleshoot software, hardware, and integration issues; Collaborate with engineering and technical teams; Participate in code reviews and documentation.