Job Title: Software Design Engineer
Department: Research and Development
FLSA Status: Non-Exempt
Reports to: Research and Development Manager
The Software Development Engineer converts data from specifications and statements of problems to computer code.
To perform this job successfully, an individual must be able to perform each essential duty satisfactorily. The requirements listed below are representative of the knowledge, skill, and/or ability required. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
ESSENTIAL DUTIES AND RESPONSIBILITIES include, but are not limited to, the following. Other duties may be assigned. These duties may be performed individually, as part of a team or in cooperation with other team members.
- Consults with supervisor, systems analysts, other programmers, and end users to gather information about program intent, function, features, data requirements, input requirements, output requirements, internal and external checks and controls, hardware and operating system environment, and interfaces with other systems.
- Consults with hardware engineers and other engineering staff to evaluate interface between hardware and software, and operational and performance requirements of overall system.
- Very familiar with open source technologies for networking, data processing, APIs, system administration and database access.
- Designs or writes program specifications based on consultations with supervisor, systems analysts, other programmers, and end users.
- Converts designs and specifications into computer code.
- Compiles code into programs and corrects errors detected in compile process.
- Creates test transactions and runs tests to find errors and confirm program meets specifications.
- Analyzes code to find causes of errors and revises programs.
- Develops and directs software system testing procedures, programming, and documentation.
- Writes and maintains documentation of changes to computer code, programs, and specifications.
- Designs and codes layouts for onscreen user interfaces, printed outputs, and interfaces with other systems.
- Reviews user and technical documentations written by others to confirm consistency with program operations.
- Provides technical assistance by responding to inquiries regarding errors, problems, or questions with programs. Reviews and corrects programs.
- Revises programs for corrections, enhancements, or system environment changes.
- Trains end users or technical support staff to use and support programs.
- Coordinates with other programmers about program revisions.
EDUCATION and/or EXPERIENCE
This position requires the knowledge and skills normally acquired through the successful completion of a BS degree in Computer Science.
- Requires 1 or more years of software development experience. Education or self development can substitute for work experience.
- Successful track record of completed projects (sample code required to be made available if interviewed).
- Strong technical documentation skills required.
- Strong interpersonal and verbal communication skills desired.
- Ability to learn new systems quickly.
- Ability to work in a fast-paced environment and handle multiple priorities.
CERTIFICATES, LICENSES, REGISTRATIONS
Technical certifications are a plus.
The position may require the employee to spend extended periods of time in climate-controlled environments (data centers, server rooms, etc.). The position will require the employee to spend extended periods of time working on Personal Computers. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.