Education and Experience: Graduation from an accredited college or university with a bachelor’s degree and two years of professional level experience in systems analysis, application design, or software development of business information systems.
Substitution of a Specific Associate’s Degree for the Required Bachelor’s Degree: Graduation from an accredited college or university with an Information Technology related associate’s degree may substitute for the required bachelor’s degree.
Substitution of Experience for the Specific Associate’s Degree: Professional level experience in the following area may substitute for the required Information Technology associate’s degree on a year-for-year basis to a maximum substitution of two years: systems analysis, application design, or software development of business information systems.
Substitution of Graduate Coursework for the Required Experience: Any additional graduate coursework in software development may substitute for the required experience on a year for year basis to a maximum substitution of one year.
Necessary Special Qualifications: None.
Examination Method: Education and Experience,100%, for Preferred Service positions.
Summary: Under general supervision, is responsible for applications computer programming work of considerable difficulty and computer systems design work of average difficulty; and performs related word as required.
Distinguishing Features: An employee in this class, independently or as a member of a project team, designs, modifies code, participates in code reviews, and develops databases and/or implements complex business applications programs. This class differs from the Software Developer-Jr, in that an incumbent of the latter performs programming work of lesser scope and complexity. This class differs from the Software Developer-Lead in that an incumbent of the latter leads or supervises a development team in the design, modification, coding, code reviews and/or implementation of new or modified complex business applications programs.
- Develops, designs, or creates new applications, ideas, relationships, systems, or products, including artistic contributions.
- Creates screen layout that meets stakeholders requirement.
- Recommends changes or enhancements to existing applications or processes which improve the quality of services provided to customers.
Provide Consultation and Advice to Others:
- Provides guidance and expert advice to management or other groups on technical, systems, or process-related topics.
- Provides technical guidance to peers or subordinates regarding improvements to design, code, testing procedures and documentation.
- Consults with team to evaluate interface between hardware and software, develop specifications and performance requirements, or resolve customer problems.
- Advises management of options that are available to develop or modify an existing system or purchase and modify a commercially available system.
Interacting With Computers:
- Uses computers and computer systems (including hardware and software) to program, write software, set up functions, enter data, or process information.
- Develops software according to the design specifications using established software application standards.
- Writes software that enables the computer to initiate the processing sequence and execute the program.
- Codes database scripts and stored procedures in order to retrieve and manipulate specific data based on required business processes.
- Changes software to address any unexpected or inaccurate processes identified in the system test or through user feedback.
- Changes software components to access the appropriate environment by updating data linkages, data libraries in order to implement the approved system.
- Composes messages which will be output by programs to assist in error identification and correction.
- Writes code to create export files based on software requirements.
- Develops software applications that imports/exports data, connects to databases, designs user interfaces.
Monitor Processes, Materials, or Surroundings:
- Monitors and reviews information from materials, events, or the environment, to detect or assess problems.
- Reviews and monitors error logs and brings to the attention of Software Developer-Lead or supervisor.
- Troubleshoots operational or software problems and recommends solutions to the supervisor.
- Implements the recommended resolution to operational or software problems.
- Reviews security vulnerability reports as needed and recommends/makes software changes to resolve issues.
- Observes, receives, and otherwise obtains information from all relevant sources.
- Reads and interprets written functional specifications.
- Interviews business user to establish functional requirements.
- Discusses current system operations, proposed system requirements, and user need with relevant stakeholders, including clients, users, and management.
- Validates information gathered to present to lead and/or supervisor.
- Examines system specification, input/output reports, existing equipment, security protocols and system interfaces to understand how the current system operates.
- Coordinates with the Software Developer-Lead or supervisor to obtain project task.
- Confers with lead/supervisor or project manager to obtain information on limitations or capabilities of systems projects to assist in project planning.
- Compiles, codes, categorizes, calculates, tabulates, audits, or verifies information or data.
- Tests a program within a multi-user environment by running a real-time simulation with users.
- Identifies the necessary data elements, keys/search criteria, indexes, data retrieval requirements, and level of security needed for different types of system data.
- Generates data to test programs and/or system conditions by extracting data from existing sources or entering new data.
- Tests and troubleshoots programs using generated data to determine if the program produces the correct execution sequence and programs interface as specified.
- Designs databases and data tables and files based on state approved data naming and structure standards.
- Writes a test plan describing the types of data and tests needed to check all known possible conditions within the program.
- Modifies program design narrative based on user feedback and walkthrough results.
Estimating the Quantifiable Characteristics of Products, Events, or Information:
- Estimates sizes, distances, and quantities; or determines time, costs, resources, or materials needed to perform a work activity.
- Provides reliable and reasonable estimates of man-hours required for programming assignments.
- Verifies that project goals and objectives are met on a timely basis and within costs.
- Provides cost estimates for use in long-range planning of future projects.
- Schedules completion dates for tasks.
Making Decisions and Solving Problems:
- Analyzes information and evaluates results to choose the best solution and solve problems.
- Determines the appropriate methods and functions to solve problems according to established standards.
Updating and Using Relevant Knowledge:
- Keeps up-to-date technically and applies new knowledge to your job.
- Demonstrates continued technical skills development by application of new techniques and programming procedures.
- Completes training assignments related to various technologies through online research and/or training sessions.
Communicating with Persons Outside Organization:
- Communicates with people outside the organization, representing the organization to customers, the public, government, and other external sources. This information can be exchanged in person, in writing, or by telephone or e-mail.
- Communicates with vendors about user requirements for a proposed system in order to obtain an estimate of time and cost required to purchase software or hardware.
Analyzing Data or Information:
- Identifies the underlying principles, reasons, or facts of information by breaking down information or data into separate parts.
- Analyzes information to determine, recommend, and plan installation of a new system or modification to an existing system.
- Compares current system processes to proposed system changes in order to determine the potential impact on other systems and business operations.
- Analyzes existing data for accuracy and completeness.
- Identifies the data input, output sources and logical interfaces, in order to estimate the volume of associated data within the system.
- Defines user input and output using design tools.
Communicating with Supervisors, Peers, or Subordinates:
- Provides information to supervisors, co-workers, and subordinates by telephone, in written form, e-mail, or in person.
- Discusses with superiors how interfaces will operate, how input and output will appear and function.
- Discusses the details of the security plan with superiors to ensure that user requirements and established guidelines are met.
- Performs a system walkthrough with information technology peers and supervisors to identify and correct any design problems or ineffective program logic or proposed coding.
- Reviews project specifications with supervisor/lead or other appropriate personnel to ensure that programs are moved to appropriate production environments, established standards are met, and that data integrity is maintained.
- Conducts training sessions regarding the functionality of the system, including error resolution, entering on-line transactions, and reading inquiry screens.
- Creates status reports for management summarizing the status of a project as it relates to the scheduling of their own work, the status of deliverables, and the impact on user business activities.
- Enters, transcribes, records, stores, or maintains information in written or electronic/magnetic form.
- Documents all user, data, equipment, security, and legal requirements for a proposed system change.
- Documents the data elements, input and output sources, and how data will be transmitted through a proposed system.
- Documents a conversion plan describing the steps required for data migration.
- Prepares design documentation containing the design narrative, data flow diagrams, triggered event and data dictionary to be used in the writing of program source code.
- Prepares program documentation which includes the test plan, program specifications, program narrative, client approval, and results of walkthroughs and testing.
- Draws graphical diagrams to describe process flow and relationships and the manual and automated business processes of the system.
- Documents data backup procedures.
- Writes basic operations guidelines.
- Conducts project relevant presentations to stakeholders and/or management and answers any related questions.
- Creates a detailed project plan which identifies tasks, resources, dependencies, dates and milestones.
- Creates a conversion plan describing the steps required for data migration.
Identifying Objects, Actions, and Events:
- Identifies information by categorizing, estimating, recognizing differences or similarities, and detecting changes in circumstances or events.
- Identifies the type of information to be entered, computed, updated, or otherwise used in the system.
- Functional/Technical Competency
- Problem Solving
- Technical Learning
- Learning on the Fly
- Time Management
- Timely Decision Making
- Process Management
- Peer Relationships
- Written Communications
- Knowledge of a Programming language
- Knowledge of Data Structure
- Knowledge of Testing Techniques
- Knowledge of Programming Concepts
- Knowledge of Systems Development Life Cycle
- Knowledge and Concepts of Internet Protocols
- Knowledge of SSL and certificates for enhancing application security
- Knowledge of System Architecture
- Knowledge of XML Web Services
- Knowledge of code reviews to ensure compliance with best practices, reusability, maintainability and scalability
- Knowledge of cross platform communication techniques
- Knowledge of developing software using OOP
- Knowledge of code management and versioning software
- Skilled in using code management and versioning software
- Skilled in using XML Web Services
- Skilled in using SSL and certificates for enhancing application security
- Skilled in developing cross platform communication
- Skilled in developing software using OOP for mobile application development
- Skilled with data design and data modeling
- Skilled in writing and executing test plans
- Skilled in tracking testing results to ensure system applications are free from defects
- Skilled in developing software using OOP
- Ability to organize and plan work to meet goals and deadlines
- Personal Computer