Arduino malfunctions occasionally, could this be a programming error?

Use of Strings causes memory problems and eventual program crashes, so is not recommended on Arduino.

 String out = device + " ON: ";

Also, electrical noise from motors/pumps/servos can cause random resets or malfunctions. Post a wiring diagram.