Apply software standards and processes to produce high quality, extensible, and maintainable software packages. Debug, refactor and reimplement existing software codebases into new systems and on new platforms. Participate in all aspects of the development lifecycle, including planning, requirements development, software design, implementation and build, documentation, te