- Under general direction, conduct or participate in multidisciplinary research and collaborates with equipment designers and/or hardware engineers in the planning, design, development and utilization of electronic data processing systems software.
- Determine computer user needs; advise hardware designers on machine characteristics that affect software systems such as storage capacity, processing speed and input/output requirements; design and develop compilers and assemblers, utility programs and operating systems.
- Design, develop and provide customization of various applications to meet a series of pre-defined requirements to be met through the use of various programming languages and possibly machine and assembly languages.
- Perform all functional duties independently.
- Work on high-visibility programs or mission critical aspects of assigned program(s).
- Oversee the efforts of direct reporting resources and/or is responsible for the efforts of all staff assigned to a specific job.
Required:A degree from an accredited College/University in Software Engineering, Computer Science or related discipline is preferred.
- A minimum of ten (10) years’ experience in software development and/or related field.
- Ability to perform all functional duties independently on high-visibility programs, or mission critical aspects of a given program.
- Oversee the efforts of direct reporting resources and/or be responsible for the efforts of all staff assigned to a specific job.
- Experience in training/mentoring less experienced personnel.
- Extensive knowledge of and experience with designing, developing, implementing and utilizing information systems.
- Strong experiencecollaborating with equipment designers and hardware engineers to optimize the interaction of system and application software with the hardware platform on which it executes.
- Considerable experience developing compilers and assemblers, utility programs and operating systems.
- Strong experiencecollaborating with end users to define new system requirements.
- Extensive experience with one or more application software languages (e.g. Java, C#, etc.) and/or one or more machine/assembly languages.
- Experience providing customization of software applications to meet pre-defined requirements through the use of application programming languages and/or machine/assembly languages.
- Excellent communication skills.
- In support of business efforts, travel might be required.