Job Description In our newly created HW test group, we are looking for an Senior Embedded Software Engineer. This is a great role for someone who has a passion for working with low level embedded systems and understands how it impacts hardware development. While working for a world-class industrial automation company, you will be responsible for designing, implementing, and maintaining real-time embedded software while collaborating with cross-functional hardware and embedded teams across multiple locations around the globe. The environment is dynamic, fast-paced and requires a highly motivated individual. You will work on complex control system products utilizing state-of-the-art technology. When you join our Hardware Test group, you become part of a team that believes in knowledge sharing, innovation, continuous learning, collaboration and a commitment to best-in-class practices and technology. MAIN RESPONSIBILITIES: - You will be a part of a team who designs, implements, and tests software that communicates to other parts of the product or system via APIs, services or protocols.
- Collaborate with hardware development teams to understand requirements and produce creative solutions to enable testing earlier in the design process.
- Design and implement tools/frameworks to enable interaction with units under test, test equipment, instrumentation, and documentation systems.
- Directly apply technical skills to assigned tasks, having some complex features.
- Use proven software design techniques, procedures and criteria to complete a sequence of related engineering tasks (i.e. investigate, design, develop, test) in accordance with the company's quality guidelines.
- Participate in peer reviews of documents, designs, code, test cases and user documentation.
- Apply judgement on when to reuse existing design and code to a problem versus develop new solutions.
- Base judgment on the balance of short term project needs and longer term reuse.
- Perform unit or functional testing of developed software to ensure correct operation per functional requirements and compatibility with other components in the system.
- Apply to hardware targets and collaborate with the hardware teams to ensure proper operations
- Continuous improvement of software development capabilities by keeping abreast of current trends in the areas of software development practices, technology utilization and development tools.
- Effectively collaborate with others through mutually supportive professional relationships, open and direct communications, honesty and respect.
- Able to cope with and leverage personality differences and differences of opinion.
Minimum Education - Bachelor's degree in Computer Engineering, Software Engineering or Electrical Engineering with a Computer Science emphasis.
- Good knowledge of C/C++
- Understanding of circuit schematics and diagram
- Experience troubleshooting and debugging hardware
- Demonstrated competence in object-oriented desig
- Excellent collaborator with a team-first attitude
- A passion for embedded software development
- Skilled in the use of embedded software development tools such as in-circuit emulators, protocol analyzers, and oscilloscopes
- Understanding and ability to work with technical documentation for digital systems (microprocessors, integrated circuits, embedded systems)
Nice to have - Python programming skills
- Knowledge of version control systems (GIT, SVN)
- Experience in test automation and results visualization
- Experience with development in compliance to ISO/IEC standard
- Experience with construction and maintenance of CI/CD pipelines
|