* Analyzes complex system requirements, including identifying program interactions and appropriate interfaces between impacted components and sub systems.
* Makes recommendations towards the development of new code or to reuse of existing code.
* Leads or participates in assigned projects, including assigning tasks, coordinating efforts, and monitoring performance.
* May recommend new technologies and methodologies to management for meeting business needs, resolving problems and exploiting opportunities. Remains current with new technologies.
* Obtains and evaluates information on factors such as reporting formats required, costs, and security needs to determine hardware configuration.
* Participates in software system testing and validation procedures, programming and documentation.
* Provides technical advice and assists in solving programming problems.
* Writes and/or reviews system specifications, including output requirements and flow charts.
* Assists in preparing project plans using project management tools.
* Reviews test results; documents test activities, and records remedial actions.
* Ensures proper analysis of problems and programming approaches to prevent rework and schedule slippage.
* Performs other duties and responsibilities as assigned.