Product Quality Engineer
Use your software career to make a real difference in >40 countries around the world! Work with developers all over the globe, remote and with travel. Lead our quality renaissance in this position. Become a critical member of our Product Support Team.
From L to R: Examples of OpenMRS used in primary care on floating clinics in Cambodia, Ebola response in West Africa, and maternity care in Sierra Leone.
Our Product Support Team: Everyone on our small global Product Support Team are mission-driven self-starters who want to help our open-source community project thrive. The Product Quality Engineer is a critical team member. We are developers, product managers, and designers working together to support devs and PMs who use our software at their NGO, government, and vendor sites on five continents. The team is led by our Director of Product.
How We Work: We sustain our software project through technical collaboration with many organizations and volunteers. The global OpenMRS Community’s Product Support Team helps coordinate this. We want to grow our automation and technical QA practices in the code created by our community squads. We have made good progress in frontend/UI tests with Selenium and Cypress, but we need more technical insight to improve deeper level technical QA such as integration tests and code analysis. More on our QA Team & pyramid vision here. See our qa-framework repo here.
Our QA Tech Stack: Cucumber, Selenium, Cypress, Gherkin BDD syntax, GitHub Actions, Bamboo, Docker, Coveralls, SonarQube, JUnit, REST Assured, Husky, ESLint, Jest, Prettier. Our software overall: Frontend: React, TypeScript, Webpack, SWC, REST, Service Workers; Backend: Java, MySQL, PostgreSQL, MariaDB, Hibernate, Liquibase, Spring.
Must Have Requirements
Very Strong Technical Test Automation Experience: Substantial past contributions to testing. Past experience developing automated test systems. Software development experience. Some experience with CI/CD.
Seniority Experience: Has led technical testing work in a technology company; responsible for mentoring other developers while still contributing.
Communicator and Team-Player: Can clearly communicate complex technical concepts to both technical and non-technical audiences. Ability to delegate, and to work well with people of different cultures and in different timezones. Able to work remotely and comfortable with using online collaborative tools (e.g., Zoom, GitHub, Atlassian (Jira, Wiki), GSuite, etc.). Proficiency in the English language, both written and verbal, sufficient for success in a remote and largely asynchronous work environment. Willing to work across multiple timezones.
Good Software Development Practices: Well-versed in asynchronous agile development. Proficient with test frameworks and peer code review.
Nice-to-Have Requirements (not required)
Familiarity with Cypress, Selenium, and/or Cucumber Engine a plus.
Exposure to BDD.
Security testing background/experience.
Open-source collaborative software development past experience, e.g. contributions to major open source projects.
Experience working with a global or otherwise multicultural team.
Relevant sector experience, such as awareness of EMR goals, and challenges specific to healthcare; and/or, experience with an LMIC setting and challenges in low-resource sites.
Willingness and ability to travel internationally
Responsibilities
Work with our community's frontend and backend leads
QA Automation Technical Steward (70%)
Automation: You will be responsible for leading & collaborating with devs from the community on our QA automation. Look for opportunities to improve our software quality via how devs contribute (this could include culture and processes) and increase the amount and quality of our automated tests (write, design, and execute automated tests by creating scripts that run testing functions; maximize test coverage for critical features of the system; determine the priority for test scenarios and create execution plans to implement these scenarios). Organize and consolidate existing testing tools scripts for testing the suite of OpenMRS products. Establish clear “dashboards” and workflow-based processes so that test results are very clear to developers and PMs/BAs. Lead the community in establishing sustainable approaches toward producing quality code.
CI & release confidence: Help manage issues with Continuous Integration (with support from Backend team members). Establish smooth processes for utilizing tests for software releases. Ongoing monitoring of quality assurance activities related to community team or squad products (Reference Application, Platform, modules, proof of concepts, etc)
DevX: Make it easy for devs using OpenMRS around the world to use the technical QA in their own setting, and contribute. Anticipate engineering risks or inefficiencies.
Documentation: Improve & maintain docs for test coverage. I.d. what else is needed to guide feature developers. Create text-based content about quality assurance practices, tools, and achievements on the Wiki and website. Maintain a prioritized test automation roadmap.
Community Mentorship (30%)
More about this role:
Full or part-time, contract based position
Flexible start dates between August and October 2022
Rates commensurate with experience
How to Apply
Interested? Use our online application form to submit your information, a cover letter, and a CV/resume that addresses the responsibilities and skills outlined above.