Designs, develops, documents, tests, and debugs new and existing software systems and/or applications for market sale or large-scale proprietary software for internal use. Serve as technical expert on development projects. Participates in full development life cycle including requirements analysis and design. Writes technical specifications based on conceptual design and stated business requirements. Supports, maintains, and documents software functionality. Identifies and evaluates new technologies for implementation. Analyzes code to find causes of errors and revise programs as needed. Participates in software design meetings and analyze user needs to determine technical requirements.