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.

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%)

  •  

    • Lead test engineering by example & via relationships: Work alongside community devs and lead the Quality Assurance Support Team. Get the gritty, tricky stuff done or at least started/stable enough so others can join in. Build close connections with developers from the NGOs, vendors, and other orgs active in community software development, to understand their needs and task-share or coach them on tasks with community benefit (e.g. from the QA Board). 

  •  

    • Community Member Coach: Mentor and use PR reviews and pair programming to help unblock squad/team devs. Coordinate squad/team members’ technical efforts; delegate work based on contributors’ skills and allocate learning experiences. Clarify professional expectations for junior/mid/senior devs, e.g. “When writing tests, this is what we’re looking for.” Welcome and onboard community members interested in quality assurance by guiding them to community QA resources, activities, and supporting them to take on appropriate QA tasks

  •  

    • Spread QA automation across the community, beyond the “QA Team”. Assist squad leads to identify, define, and integrate better quality assurance practices and tools into their work. Lead events/workshops that will help disseminate knowledge, training on quality assurance best practices and tooling. 

  •  

    • Support for Organizations Implementing our Software: Technical guidance to organizations implementing OMRS. Be a person who implementation devs can turn to when they have technical or system design issues. Test automation should be reusable by organizations who maintain and update OpenMRS in real-world settings, so there is less manual re-testing at massive scale globally. 

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.