Firmware Engineer Level 3
Job Title: Firmware Engineer Level 3
Location: Mayfield Heights, OH 44124
Contract length: 9 months
Pay: $53/hr - $58.85/hr
Firmware Engineer Level 3 Qualifications
- Bachelor's degree in Computer Engineering, Software Engineering, or Electrical Engineering with a Computer Science emphasis
- Demonstrated competence in object-oriented design, and the use of an object-oriented programming language.
- Minimum of 5 years of related experience. Embedded development experience
- Seek knowledge of and keep informed of current trends in embedded systems technology, including design techniques, development tools, and overall process improvements
- Experience with embedded software development tools such as In-Circuit Emulators, Debuggers, Oscilloscopes, etc.
- Proficiency in C++
- Experience with Python or equivalent scripting language
- Experience with Realtime OS utilization (RTOS)
- Experience with both ARM and x86 architectures
- Experience with software requirements analysis and software testing, including automation frameworks
- Experience working with industrial protocols, especially Common Industrial Protocol (CIP)
- Experience in using open-source tools like Git and Jenkins
- Excellent collaborative skills
- Team player
- A passion for embedded software development
- Design, implement, and test software that communicates to other parts of the product or system via APIs, services or protocols
- Operate across the entire software development life cycle as part of an Agile development team: requirements management, design, implementation, test, release, and maintenance
- 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
- Perform unit or functional testing of developed software to ensure correct operation per functional requirements and compatibility with other components in the system
- 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 and respect
- Able to cope with and leverage personality differences and differences of opinion
- Coach less experienced engineers on design and implementation techniques