Job Title: Embedded Test Engineer
Location: Richland, MI (Onsite- 5 days a week)
Hire Type: Fulltime
Job Description:
The ideal candidate has strong analytical and problem-solving skills, an understanding of software testing methodologies, and the ability to work collaboratively with cross-functional teams. If you are passionate about delivering high-quality software and improving testing processes, we encourage you to apply. We offer competitive compensation, benefits, and opportunities for career advancement.
Required skills and qualifications.
- A bachelor’s degree in Electronics, Computer Science, Information Technology, Computer Engineering, or a related field.
- 8-12 years of proven experience as a quality assurance engineer, software tester, or similar role with expertise in manual and automated testing.
- Proficiency in programming languages like C, Python
- Experience with bug tracking and project management tools -JIRA, Bugzilla etc.
- Understanding of continuous integration/continuous deployment (CI/CD) pipelines and version control systems like Git.
- Familiarity with Agile methodology and tools (Scrum, Kanban).
- Strong communication skills for documenting test results and interacting with cross-functional teams.
- Excellent analytical skills, attention to detail, and problem-solving ability.
- Ability to work independently as well as collaboratively in a team environment.
- A curious mindset with a willingness to quickly learn modern technologies and testing tools.
Preferred skills and qualifications
- Relevant certification in software testing or quality assurance (ISTQB, CSTE, or similar).
- Experience with performance testing tools
- Familiarity with cloud-based testing environments (AWS, Azure).
- Experience with version control and collaboration tools (Git, SVN, VSS, Bitbucket).
- Knowledge of security testing practices and tools
- Ability to work in fast-paced environments and manage multiple tasks simultaneously.
Objectives of this role
- Conduct code reviews: Perform manual and automated analysis of firmware source code (C) to identify coding errors, security weaknesses, and violations of internal standards.
- Static and dynamic analysis: Utilize Static Application Security Testing (SAST) tools to scan code for potential vulnerabilities without running it. Also, perform dynamic analysis to find vulnerabilities during runtime.
- Vulnerability assessment: Identify security risks, such as injection flaws, cryptographic issues, and authentication vulnerabilities, and document them in detailed reports.
- Develop and automate test scripts: Create unit and automated test scripts to ensure individual firmware modules and the overall system behave as intended, providing comprehensive test coverage.
- System-level testing: Conduct functional, regression, and integration testing on new firmware builds and hardware, using lab equipment such as oscilloscopes and logic analyzers.
- Ensure compliance: Verify that the firmware meets internal quality standards as well as industry and regulatory requirements.
- Collaborate on corrections: Work with development, hardware, and product teams to identify risk areas, recommend corrective actions, and verify that bug fixes are successful.
- Document and report findings: Create detailed reports on audit findings and present summaries to engineers, management, and key stakeholders, translating complex issues into actionable steps.
- Maintain test environments: Design, implement, and maintain test environments to accurately simulate real-world scenarios for thorough validation.
- Drive process improvements: Function as an advocate for a quality-first approach throughout the firmware lifecycle, helping to improve development processes and educate developers on secure coding best practices.
- Collaborate with software engineers to understand system requirements and create comprehensive test plans.
- Document test results and provide feedback to development teams to ensure issues are fixed before release.
- Participate in the planning and execution of software releases, ensuring all components meet quality standards.
- Maintain and update testing scripts, tools, and processes to improve the efficiency and effectiveness of the testing cycle.
- Ensure that products meet security standards and comply with industry regulations.
- Report quality metrics and evaluate results for management and stakeholders.
- Review release notes and product documentation to ensure accuracy and completeness.
- Provide feedback to the development team on potential improvements in the software design to ensure better testability.
- Stay updated on the latest software testing tools, trends, and best practices.