Develops, documents and maintains architectures, requirements, algorithms, interfaces and designs for software systems. Develops and maintains code and integrates software components into a fully functional software system. Develops software verification plans, test procedures and test environments, executing the test procedures and documenting test results to ensure software system requirements are met. Performs software project management and software supplier management functions. Develops, selects, tailors and deploys software processes, tools and metrics. Executes and documents software research and development projects. Serves as a subject matter expert for software domains, system-specific issues, processes and regulations. Tracks and evaluates software team and supplier performance to ensure product and process conformance to project plans and industry standards. Works under general direction.