- Under general direction, conducts or participates 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.
- Determines computer user needs; advises hardware designers on machine characteristics that affect software systems such as storage capacity, processing speed, and input/output requirements; designs and develops compilers and assemblers, utility programs, and operating systems.
- Designs, develops, and provides 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. Performs all functional duties independently. Works on high-visibility programs, or mission critical aspects of assigned program(s).
- Oversees the efforts of direct reporting resources and/or is responsible for the efforts of all staff assigned to a specific job.
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.
- Able to perform all functional duties independently on high-visibility programs, or mission critical aspects of a given program.
- Able to oversee the efforts of direct reporting resources and/or be responsible for the efforts of all staff assigned to a specific job.
- Experience training/mentoring less experienced personnel.
- Extensive knowledge of and experience with designing, developing, implementing, and utilizing information systems.
- Extensive experience collaborating with equipment designers and hardware engineers to optimize the interaction of system and application software with the hardware platform on which it executes.
- Extensive experience developing compilers and assemblers, utility programs, and operating systems.
- Extensive experience collaborating 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.
- Extensive 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.