Quality Assurance (QA) Engineer (Remote, Per-Project)

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Any

SALARY

USD1,200

HOURS PER WEEK

TBD

DATE UPDATED

May 19, 2025

JOB OVERVIEW

Quality Assurance (QA) Engineer (Remote, Per-Project)
Remote | Per-Project | Potential for Full-Time

Turkois is a creative and technology-driven digital agency working across a wide range of software and product development projects including custom platforms, mobile apps, Java-based backends, ReactJS frontends, and Stripe-powered payment solutions.

We're currently looking for a QA Engineer to join us on a per-project basis. If you perform well and align with the team, there is strong potential for a long-term or full-time role.

As a QA Engineer at Turkois, you'll play a critical role in ensuring the stability, usability, and quality of our products. We’re looking for someone who thrives in dynamic environments, is confident leading testing efforts end-to-end, and is comfortable jumping into diverse types of projects.

What You’ll Be Doing:
Review product requirements, designs, and technical specs to provide meaningful feedback early in the development process

Write clear, structured test plans and test cases tailored to each project’s unique tech stack and flow

Perform manual and automated testing for web apps, mobile applications, backend APIs, and third-party integrations (especially Stripe)

Build and maintain automation scripts using open-source tools (Cypress, Selenium, or Playwright)

Test backend systems (Java), front-end interfaces (ReactJS), and mobile apps to ensure cross-platform quality

Execute API testing using tools like Postman

Own regression testing and quality sign-off before feature launches or major deployments

Collaborate with developers, project managers, and designers during daily standups and sprint reviews

Participate in bug triaging, issue documentation, and quality assurance metric tracking

Occasionally lead client-facing demos to walk through QA-reviewed deliverables

What We’re Looking For:
3+ years experience in software quality assurance with both manual and automation testing

Strong understanding of QA methodologies, test cycles, and SDLC

Experience testing Java backend services and ReactJS frontends

Proficiency in writing automation tests (ideally with Cypress, Selenium, or Playwright)

Skilled in API testing (Postman or similar tools)

Basic experience with GitHub, ticket tracking systems (e.g. Jira), and test case management

Comfortable working across multiple concurrent projects with shifting priorities

Ability to lead QA efforts solo or within small squads

Familiarity with Stripe integration testing is a big plus

Excellent communication skills, especially in remote and async settings

What You’ll Love:
Remote-first position, work from anywhere

Start per-project, with the possibility of a full-time role based on performance

Collaborative, globally distributed team

Exposure to a wide range of project types and industries

Well-defined processes and tooling that let you focus on testing (not chasing dev environments!)

Opportunity to grow your skills across mobile, payments, automation, and client-facing demos

Interested?
Please respond to this form, only those who fill out this form will be entertained for an interview. Thanks!
----------

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0283
Total Execution Time  0.0297
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,531,128 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Quality-Assurance-QA-Engineer-Remote-Per-Project-1380144
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0230 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1380144
 LIMIT 1 
0.0013   SELECT *
FROM `employers`
WHERE `employer_id` = 485086
 LIMIT 1 
0.0034   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1380144
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-15',ej.date_added) duration_daysDATEDIFF('2026-04-15',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-04-15',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1380144' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1380144 
0.0014   UPDATE employer_jobs SET hit_counts '***May-19-2025=196***May-20-2025=115***May-21-2025=72***May-22-2025=42***May-23-2025=24***May-24-2025=18***May-25-2025=16***May-26-2025=20***May-27-2025=24***May-28-2025=18***May-29-2025=18***May-30-2025=16***May-31-2025=9***Jun-01-2025=16***Jun-02-2025=16***Jun-03-2025=21***Jun-04-2025=16***Jun-05-2025=14***Jun-06-2025=9***Jun-07-2025=15***Jun-08-2025=5***Jun-09-2025=21***Jun-10-2025=17***Jun-11-2025=22***Jun-12-2025=10***Jun-13-2025=9***Jun-14-2025=6***Jun-15-2025=4***Jun-16-2025=9***Jun-17-2025=9***Jun-18-2025=16***Jun-19-2025=11***Jun-20-2025=9***Jun-21-2025=4***Jun-22-2025=2***Jun-23-2025=6***Jun-24-2025=13***Jun-25-2025=16***Jun-26-2025=15***Jun-27-2025=12***Jun-28-2025=15***Jun-29-2025=3***Jun-30-2025=10***Jul-01-2025=8***Jul-02-2025=12***Jul-03-2025=16***Jul-04-2025=7***Jul-05-2025=12***Jul-06-2025=5***Jul-07-2025=11***Jul-08-2025=15***Jul-09-2025=15***Jul-10-2025=12***Jul-11-2025=4***Jul-12-2025=6***Jul-13-2025=4***Jul-14-2025=9***Jul-15-2025=9***Jul-16-2025=10***Jul-17-2025=6***Jul-18-2025=6***Jul-19-2025=4***Jul-20-2025=4***Jul-21-2025=11***Jul-22-2025=5***Jul-23-2025=10***Jul-24-2025=5***Jul-25-2025=14***Jul-26-2025=6***Jul-27-2025=10***Jul-28-2025=3***Jul-29-2025=10***Jul-30-2025=6***Jul-31-2025=9***Aug-01-2025=8***Aug-02-2025=3***Aug-03-2025=10***Aug-04-2025=11***Aug-05-2025=11***Aug-06-2025=4***Aug-07-2025=13***Aug-08-2025=8***Aug-09-2025=4***Aug-10-2025=5***Aug-11-2025=5***Aug-12-2025=14***Aug-13-2025=14***Aug-14-2025=11***Aug-15-2025=12***Aug-16-2025=6***Aug-17-2025=7***Aug-18-2025=7***Aug-19-2025=11***Aug-20-2025=12***Aug-21-2025=10***Aug-22-2025=4***Aug-23-2025=2***Aug-24-2025=5***Aug-25-2025=8***Aug-26-2025=12***Aug-27-2025=6***Aug-28-2025=9***Aug-29-2025=6***Aug-30-2025=5***Aug-31-2025=10***Sep-01-2025=9***Sep-02-2025=10***Sep-03-2025=5***Sep-04-2025=11***Sep-05-2025=4***Sep-06-2025=3***Sep-07-2025=1***Sep-08-2025=27***Sep-09-2025=10***Sep-10-2025=4***Sep-11-2025=5***Sep-12-2025=8***Sep-13-2025=9***Sep-14-2025=7***Sep-15-2025=12***Sep-16-2025=13***Sep-17-2025=6***Sep-18-2025=8***Sep-19-2025=7***Sep-21-2025=2***Sep-22-2025=5***Sep-23-2025=4***Sep-24-2025=7***Sep-25-2025=10***Sep-26-2025=9***Sep-27-2025=6***Sep-28-2025=6***Sep-29-2025=7***Sep-30-2025=4***Oct-01-2025=3***Oct-02-2025=7***Oct-03-2025=14***Oct-04-2025=4***Oct-05-2025=7***Oct-06-2025=6***Oct-07-2025=9***Oct-08-2025=22***Oct-09-2025=8***Oct-10-2025=3***Oct-12-2025=4***Oct-13-2025=14***Oct-14-2025=7***Oct-15-2025=5***Oct-16-2025=5***Oct-17-2025=3***Oct-18-2025=5***Oct-19-2025=4***Oct-20-2025=5***Oct-21-2025=16***Oct-22-2025=9***Oct-23-2025=9***Oct-24-2025=6***Oct-25-2025=5***Oct-26-2025=5***Oct-27-2025=5***Oct-28-2025=10***Oct-29-2025=7***Oct-30-2025=2***Oct-31-2025=3***Nov-01-2025=3***Nov-02-2025=1***Nov-03-2025=8***Nov-04-2025=7***Nov-05-2025=2***Nov-06-2025=3***Nov-07-2025=4***Nov-08-2025=5***Nov-09-2025=5***Nov-10-2025=8***Nov-11-2025=3***Nov-12-2025=3***Nov-13-2025=8***Nov-14-2025=3***Nov-15-2025=7***Nov-16-2025=5***Nov-17-2025=5***Nov-18-2025=6***Nov-19-2025=5***Nov-21-2025=2***Nov-22-2025=2***Nov-23-2025=3***Nov-24-2025=2***Nov-25-2025=2***Nov-26-2025=6***Nov-27-2025=7***Nov-28-2025=10***Nov-30-2025=1***Dec-01-2025=4***Dec-02-2025=3***Dec-03-2025=5***Dec-04-2025=7***Dec-05-2025=3***Dec-06-2025=4***Dec-07-2025=3***Dec-08-2025=2***Dec-09-2025=5***Dec-10-2025=2***Dec-11-2025=4***Dec-12-2025=4***Dec-13-2025=1***Dec-14-2025=4***Dec-15-2025=4***Dec-16-2025=5***Dec-17-2025=6***Dec-18-2025=2***Dec-19-2025=3***Dec-20-2025=6***Dec-21-2025=3***Dec-22-2025=4***Dec-23-2025=1***Dec-24-2025=2***Dec-25-2025=2***Dec-26-2025=2***Dec-27-2025=3***Dec-28-2025=2***Dec-29-2025=3***Dec-30-2025=1***Dec-31-2025=1***Jan-01-2026=4***Jan-02-2026=5***Jan-03-2026=3***Jan-04-2026=4***Jan-05-2026=8***Jan-06-2026=3***Jan-07-2026=6***Jan-08-2026=4***Jan-09-2026=8***Jan-10-2026=6***Jan-11-2026=3***Jan-12-2026=1***Jan-13-2026=2***Jan-14-2026=2***Jan-15-2026=1***Jan-16-2026=6***Jan-17-2026=1***Jan-18-2026=1***Jan-19-2026=7***Jan-21-2026=2***Jan-22-2026=4***Jan-23-2026=1***Jan-25-2026=4***Jan-26-2026=3***Jan-27-2026=3***Jan-28-2026=6***Jan-29-2026=2***Jan-30-2026=6***Jan-31-2026=1***Feb-01-2026=2***Feb-03-2026=3***Feb-04-2026=2***Feb-05-2026=3***Feb-06-2026=3***Feb-07-2026=3***Feb-08-2026=2***Feb-09-2026=4***Feb-11-2026=2***Feb-12-2026=1***Feb-14-2026=1***Feb-15-2026=1***Feb-16-2026=3***Feb-17-2026=4***Feb-18-2026=3***Feb-19-2026=1***Feb-20-2026=2***Feb-21-2026=1***Feb-22-2026=4***Feb-23-2026=5***Feb-24-2026=6***Feb-25-2026=3***Feb-26-2026=5***Feb-27-2026=1***Mar-01-2026=2***Mar-02-2026=6***Mar-03-2026=1***Mar-04-2026=2***Mar-05-2026=2***Mar-06-2026=3***Mar-07-2026=4***Mar-08-2026=2***Mar-09-2026=3***Mar-10-2026=7***Mar-11-2026=2***Mar-12-2026=5***Mar-13-2026=5***Mar-14-2026=3***Mar-15-2026=1***Mar-16-2026=3***Mar-17-2026=2***Mar-18-2026=2***Mar-19-2026=3***Mar-20-2026=1***Mar-22-2026=3***Mar-23-2026=1***Mar-24-2026=5***Mar-25-2026=1***Mar-26-2026=2***Mar-27-2026=5***Mar-29-2026=1***Mar-30-2026=3***Mar-31-2026=4***Apr-01-2026=1***Apr-02-2026=5***Apr-03-2026=5***Apr-04-2026=2***Apr-05-2026=4***Apr-06-2026=5***Apr-07-2026=3***Apr-08-2026=2***Apr-09-2026=5***Apr-10-2026=4***Apr-11-2026=3***Apr-13-2026=1***Apr-15-2026=2' WHERE job_id'1380144'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2025=588***Jun-2025=351***Jul-2025=264***Aug-2025=253***Sep-2025=219***Oct-2025=212***Nov-2025=126***Dec-2025=101***Jan-2026=107***Feb-2026=65***Mar-2026=84***Apr-2026=42' WHERE job_id'1380144'  
0.0014   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1380144' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1380144 
0.0120   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '485086'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)