Purpose of Position
The Programmer Analyst’s role is to define, develop, test, analyze, and maintain new software applications in support of the achievement of business requirements. This includes writing, coding, testing, and analyzing software programs and applications. The Programmer Analyst will also research, design, document, and modify software specifications throughout the production life cycle.
Responsibilities
- Collaborate with developers, programmers, and designers in conceptualizing and development of new software programs and applications.
- Liaise with network administrators, business analysts, and software engineers to assist in resolving problems with software products or company software systems.
- Analyze and assess existing business systems and procedures.
- Assist in the definition, development, and documentation of software’s business requirements, objectives, deliverables, and specifications on a project-by-project basis in collaboration with internal users and departments.
- Assist in defining software development project plans, including scoping, scheduling, and implementation.
- Research, identify, analyze, and fulfill requirements of all internal and external program users.
- Consistently write, translate, and code software programs and applications according to specifications.
- Write programming scripts to enhance functionality and/or performance of company applications as necessary.
- Design, run and monitor software performance tests on new and existing programs for the purposes of correcting errors, isolating areas for improvement, and general debugging.
- Administer critical analysis of test results and deliver solutions to problem areas.
- Generate statistics and write reports for management and/or team members on the status of the programming process.
- Develop and maintain user manuals and guidelines.
- Train end users to operate new or modified programs.
- Conduct research on emerging application development software products, languages, and standards in support of procurement and development efforts.
- Liaise with vendors for efficient implementation of new software products or systems and for resolution of any adaptation issues.
- Recommend, schedule, and perform software improvements and upgrades.
- Install software products for end users as required.
- Manage and/or provide guidance to junior team members.
- Other duties as assigned by the Manager of Information Technology
Education, Skills, and Experience
- College diploma or university degree in the field of computer science, information systems, or software engineering, and five to seven years work experience in the field
- Proficiency in a variety of programming languages, including Powerbuilder, Java, SQL, EA Server and N-tier architecture is preferred. Experience with Rational would be an asset.
- Excellent understanding of coding methods and best practices.
- Extensive relational database and operating systems experience.
- Thorough understanding of current platforms.
- Solid working knowledge of current Internet technologies.
- Prior experience interviewing end-users for insight on functionality, interface, problems, and/or usability issues.
- Able to communicate effectively with non-technical staff and with members of interdisciplinary teams.
- Hands-on experience developing test cases and test plans.
- Flexible and adaptable in regards to learning and understanding new technologies.
- Knowledge of applicable data privacy practices and laws.
- Strong written, oral, and interpersonal communication skills.
- Ability to conduct research into software-related issues and products.
- Highly self motivated and directed.
- Keen attention to detail.
- Proven analytical and problem-solving abilities.
- Ability to effectively prioritize and execute tasks in a high-pressure environment.
- Experience working both independently and in a team-oriented, collaborative environment.