Design, develop, document, test, and debug applications software and systems containing logical and mathematical solutions. Conduct multidisciplinary research collaborating with hardware engineers on electronic data processing systems.… Analyze system capabilities to resolve problems related to program intent, output requirements, input data acquisition, and programming techniques. Ensure software standards are met and prepare operating instructions; may involve designing compilers, assemblers, utility programs, and operating systems.