Summary: The role of the Software Programmer is to convert project specifications and statements of problems and procedures to detailed logical flow charts for coding into computer language. Develop and write computer programs to store, locate, and retrieve specific documents, data, and information. May also program web sites.
The role of the Software Developer is to design, develop, and test operating systems-level software, compilers, and network distribution software for computing applications. Set operational specifications and formulate and analyze software requirements. May design and develop embedded systems software. Apply principles and techniques of computer science, engineering, and mathematical analysis.
Education, Experience, Job Training:
NOTE: Managers may require more education and/or experience (see API document) for specific positions.
Bachelor of Science in Information/Computer Technology or a related technical discipline is preferred.
Level 3 requires 7+ years combination of education, certifications, and/or work experience in Computer/Information Technology or related field. Applicable certifications will count towards 1 year of experience and each applicable college degree will count towards 2 years of experience.
Typical Tasks may include:
Implement and integrate new system architecture into an existing environment
Modify existing software to correct errors, to adapt it to new hardware or to upgrade interfaces and improve performance.
Develop or facilitate software system testing or validation procedures.
Facilitate software programming and development of documentation.
Consult with customers or other departments on project status, proposals, or technical issues, such as software system design or maintenance.
Analyze information to determine, recommend, and plan installation of a new system or modification of an existing system.
Consult with engineering staff to evaluate interface between hardware and software, develop specifications and performance requirements, or resolve customer problems.
Design or develop software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.
Design, develop and conduct automated unit and regression tests.
Design, develop, implement, maintain and support applications.
Prepare reports or correspondence concerning project specifications, activities, or status.
Confer with data processing or project managers to obtain information on limitations or capabilities for data processing projects.
Store, retrieve and manipulate data for analysis of system capabilities and requirements.
Install and configure hardware including operating system and additional software to configure for optimal use
Provide technical support in production environments, to include troubleshooting reported issues and system architectures to include data management, network management, and overall client architectures.
Identify standard monitoring requirements and scripting or applying additional setting requirements
Troubleshoot hardware and system level problems, performance and interoperability problems and workflow issues.
Document implementation guidelines and installation guidance. Actively participate in implementation activities.
Perform fit gap analysis and propose implementation approaches.
Research new and emerging technologies to determine their applicability to application development and maintenance, as well as for support of the needs of operations.
Provide demonstrations of emerging technologies to acquaint BPA staff with capabilities and applicability to business solutions.
Perform application/process management, install/patch applications, troubleshoot connectivity issues, monitor performance and tune in complex three-tier architectures (client web interface, application engine, database engine).
Stand-up, configure and maintain application environments.
Code, test, configure and maintain various vendor and in-house applications.
Consult with managerial, engineering, and technical personnel to clarify program intent, identify problems, and suggest changes.
Compile and write documentation of program development and subsequent revisions, inserting comments in the coded instructions so others can understand the program.
Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert them into a series of instructions coded in a computer language.
Correct errors by making appropriate changes and rechecking the program to ensure that the desired results
Conduct trial runs of programs and software applications to be sure they will produce the desired information
and that the instructions are correct.
Write, update, and maintain computer programs or software packages to handle specific jobs such as tracking
inventory, storing or retrieving data, or controlling other equipment.
Write, analyze, review, and rewrite programs, using workflow chart and diagram, and applying knowledge of
computer capabilities, subject matter, and symbolic logic.
Perform or direct revision, repair, or expansion of existing programs to increase operating efficiency or adapt to
Consult with managerial, engineering, and technical personnel to clarify program intent, identify problems, and
Perform systems analysis and programming tasks to maintain and control the use of computer systems
software as a systems programmer.
Compile and write documentation of program development and subsequent revisions, inserting comments in the
coded instructions so others can understand the program.
Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert
them into a series of instructions coded in a computer language.
Consult with and assist computer operators or system analysts to define and resolve problems in running
Creatively design, document, develop and deploy enterprise level applications
Effectively communicate and demonstrate design concepts and development principles to others in team
Provide a sustainable IT infrastructure by supplying cross training and functional documentation
Keep abreast of technology advances, upgrades and patches
Knowledge of the utility industry
Knowledge of application design, development, deployment and maintenance
Experience troubleshooting workflow and integration issues.
Experience interpreting design specifications, coding software, designing, developing, and conducting unit tests.
Experience translating requirements into computer source code.
Expert knowledge of programming languages.
Skilled in writing well-tuned stored procedures for Server.
Typical Work Activities may include any of the following:
Interacting with Computers-Using computers and computer systems (including hardware and software) to program, write software, set up functions, enter data, or process information.
Making Decisions and Solving Problems-Analyzing information and evaluating results to choose the best solution and solve problems.
Processing Information -Compiling, coding, categorizing, calculating, tabulating, auditing, or verifying information or data.
Getting Information-Observing, receiving, and otherwise obtaining information from all relevant sources.
Documenting/Recording Information-Entering, transcribing, recording, storing, or maintaining information in written or electronic/magnetic form.
Evaluating Information to Determine Compliance with Standards-Using relevant information and individual judgment to determine whether events or processes comply with laws, regulations, or standards.
Organizing, Planning, and Prioritizing Work-Developing specific goals and plans to prioritize, organize, and accomplish work.
Establishing and Maintaining Interpersonal Relationships-Developing constructive and cooperative working relationships with others, and maintaining them over time.
Thinking Creatively-Developing, designing, or creating new applications, ideas, relationships, systems, or products, including artistic contributions.
Analyzing Data or Information Identifying the underlying principles, reasons, or facts of information by
breaking down information or data into separate parts.
Identifying Objects, Actions, and Events Identifying information by categorizing, estimating, recognizing
differences or similarities, and detecting changes in circumstances or events.
Communicating with Management, Peers, or Co-workers Providing information to management, co-workers,
and peers by telephone, in written form, e-mail, or in person.
Knowledge/Skills/ Abilities Requirements Knowledge The specific position may require any or all of the following:
Computers and Electronics Knowledge of electronic equipment and computer hardware and software, including applications and programming. Requires an understanding of the IT working environment sufficient to explain technical issues to a disparate range of technical and non-technical clients.
Technical -- Technical knowledge and experience with a variety of programming languages, operating systems, and database technologies.
Engineering and Technology Knowledge of the practical application of engineering science and technology.
This includes applying principles, techniques, procedures, and equipment to the design and production of various goods and services.
Mathematics Knowledge of arithmetic, algeb
- Application Design
- Application Engine