Responsibilities:
- Analyzes, designs, programs, debugs, and modifies software. Troubleshoots code for firmware (IC embedded code) applications. Involves analog and digital hardware and software operating systems.
- Involvement in one or more of these areas in embedded software/firmware for drives products: development of security features, remediation and management of security improvements, security testing, and process and standards compliance.
- Proven competency with object-oriented analysis and design as well as real-time development using the C/C++.
- Participates in the development and improvement of engineering processes and best practices.
- Drives quality by maintaining the link between requirements and testing.
- Investigates software anomalies in association with the functional test team, customer support team, or other group (possibly including customer) as needed. Debugs and resolved anomalies.
- Keeps current and well informed on embedded software engineering and cybersecurity methodologies and technologies relevant to our industry through personal research, training, and seminar participation.
- Willingness to work in a diverse set of software development frameworks including Agile and Scrum as the business demands.
- Networks with senior internal/external personnel in own area of expertise as well as networks with key contacts outside own area of expertise.
- Normally receives general instructions on routine work, detailed instructions on new projects or assignments. Open to receiving and sharing of new ideas.
- Functions effectively in a globally distributed team environment as both an individual contributor and a leader.
- Ensures thorough familiarity with company policies and procedures. Appropriately applies policies and procedures in compliance with government laws. Policies and procedures include, but not limited to: Standards of Business Conduct, Intellectual Property, Control Environment, Information Protection, ISO 9000 & 14000, government regulations (e.g., health, safety, quality and environmental), and functional policies.
Qualifications: Education, Desired Skills and Experience
- Bachelor of Science in Computer Science, Computer Engineering or Electrical Engineering with concentration in software; or equivalent
- Master of Science in Computer Science or Computer Engineering; or equivalent in-depth knowledge and experience desired.
- Possess a minimum of two years' experience in embedded software development with an emphasis on the analysis, design, programming, and testing of real-time software systems using modern engineering practices using the C/C++ (or other middle to high-level) required. Candidates with a more than five years' experience in the embedded software development area would be offer either the Staff or Senior Engineer position.
- Familiarity with the following tools desired: Python, Green Hills Integrity OS and Multi IDE, TCP/IP networking, Git or similar version control tools, security test tools such as Achilles and Burp Suite, and collaboration tools such as Jira and Jama.
- Cybersecurity training or certification is a plus. Familiarity with cyber security requirements and practices for embedded and industrial products desired.
- Familiarity with agile processes like Scrum and SAFe is desired.
- Proven ability to specify and develop high quality, maintainable software subsystems or systems at a high rate of productivity required.
- Well established ability to organize and direct activities of other employees and communicate with a globally distributed team is required.
- Good collaborator in a matrixed organization. Proven ability to work effectively as a member of a team or independently required.
- Proven ability to communicate technical information of a complex nature clearly and concisely in verbal and written form required.
- Demonstrate customer centric culture to understand our internal and external customers.
