Responsible for the design and development activities associated with software using a range of applicable technologies (e.g., programming languages, compilers, assemblers, debuggers, other tools) for products used in local, networked or Internet-related computer programs. Analyzes requirements and develops innovative, useful software. Modifies existing software products to add new functions, adapt to new hardware, improve performance or enhance product usability. Participates in product development in all stages from planning and design to development and testing. Completes documentation and procedures for installation and maintenance. Assists training with production of formal training material for sales/marketing.