Remotify
logo
ZtechEngineering

Software Developer — Test Engineering | Remote · Morocco

Africa

September 10, 2026 at 7:17 AM

✨ AI summary

Location

  • Morocco (Remote/Hybrid)

Programming Languages

  • TypeScript
  • Python

Frameworks

  • React
  • Next.js
  • Playwright
  • Vitest
  • pgTAP

Cloud Services

  • AWS
  • ECS Fargate
  • Supabase

Databases

  • PostgreSQL

Experience Level

  • 5+ years
Software Developer — Test Engineering | Remote · Morocco

5+ years · ZTech Engineering Morocco · U.S.-based assignment


ZTech Engineering Morocco is hiring a Software Developer — Test Engineering to work directly with a U.S.-based engineering organization building multi-tenant situational awareness platforms for public health and emergency response organizations.

You'll work as an embedded member of the technical team, collaborating directly with U.S.-based engineers, product stakeholders, and client representatives.

The software is used to support decisions during live incidents. Reliability, data isolation, and correctness matter.

Most verification is currently manual. The existing Playwright suite is limited and not fully integrated into CI, and there is no comprehensive automated mechanism proving that one client organization cannot access another's data.

That is one of the biggest constraints on release velocity — and this role fixes it.

This is not a permanent QA function. The first six to nine months are focused on test engineering: you build the framework, fixtures, authorization test matrix, deterministic test data, and CI integration. Once that's established and the development team owns its own tests, you transition into product development.

We're hiring a software engineer who will build the machine that reduces dependence on manual QA — then go build features.

If you want to write test cases in a spreadsheet forever, this isn't for you. If you want to own quality architecture and turn that expertise into broader product engineering ownership, read on.


Phase One — What You'll Build

Playwright, properly — Fixture architecture, page-object or component models, per-role storageState authentication so we're not logging in through the UI hundreds of times, parallelization and sharding, traces and video on failure, and zero waitForTimeout used to hide synchronization problems.

The authorization matrix — pgTAP tests asserting every role against every relevant table, including explicit cross-tenant denial. Tenant isolation must be provable through automation.

The pyramid's middle — Vitest unit and contract tests that catch API and database schema drift before a browser ever opens.

Deterministic test data — A seed and factory strategy so tests never depend on whatever happens to be in the database that day.

CI gate — The suite runs on every PR against an ephemeral Supabase preview branch and blocks merge when critical tests fail. Not nightly. Not on request. Every PR.

Flake management — Establish a quarantine process, track flaky tests, and treat a flaky test as a broken test that needs to be fixed.

Handoff — Build the runbooks, patterns, documentation, and pairing practices that enable developers to write and maintain their own tests without depending on you. Becoming unnecessary to routine suite maintenance is an explicit measure of success.


Phase Two — Product Development

Once the testing architecture is established and adopted, you'll transition into full-stack product development.

You'll work across TypeScript, React, Next.js, Node.js, PostgreSQL, and Supabase, including:

  • Schema changes and RLS policies through version-controlled migrations
  • API and UI development
  • Production debugging in a multi-tenant system
  • Automated testing as part of feature delivery
  • Code review
  • Containerized services
  • CI/CD and deployment pipelines
  • AI-assisted product features such as summarization, document intelligence, and analyst tooling

This is a software engineering position with an initial test-engineering mission, not a permanent manual QA role.


Stack

TypeScript · React / Next.js · Node.js · PostgreSQL / Supabase · Playwright · Vitest · pgTAP · GitHub Actions · AWS · ECS Fargate · Docker · Terraform · Python · Dagster · Metabase · Claude Code · Codex


The Bar
  • 5+ years building production software. Not five years of manual testing — five years of writing and shipping code.
  • Demonstrated ownership of a test automation framework you built from scratch or substantially rebuilt — Playwright, Cypress, or equivalent. You'll be expected to walk us through the architecture in detail.
  • Strong TypeScript, with working competence in React and Node.js.
  • Solid SQL and relational modeling — you can design a reasonable schema, read a query plan, and explain what Row Level Security actually enforces. PostgreSQL preferred.
  • CI/CD pipeline experience — GitHub Actions or equivalent. You've built or substantially modified pipelines, not just consumed them.
  • Daily working fluency with agentic coding tools such as Claude Code, Codex, or equivalent.
  • The instinct to push back on an ambiguous specification during refinement rather than discovering the ambiguity during testing.
  • The discipline to read and understand the existing codebase before adding to it, follow established patterns where appropriate, and clearly raise alternatives during review.
  • Strong engineering judgment around test architecture, automation, failure diagnosis, and reliability.
  • Clear written and verbal communication. You'll work directly with U.S.-based teams and client stakeholders, so professional English fluency is required.
Nice to Have
  • pgTAP or other database-level testing
  • API and contract testing — Zod, OpenAPI, Pact, or similar
  • Supabase Auth, RLS, Edge Functions, migrations, and branching
  • Docker, ECS, and Terraform
  • Load testing with k6, Artillery, or equivalent
  • Accessibility testing or visual regression
  • Python, Dagster, or Metabase
  • Mapping, time-series, dashboards, or data visualization
  • Public health, healthcare, clinical, or regulated-data experience
Come Prepared With

We don't learn enough from résumés alone. Bring specifics.

  1. A test framework you built — architecture, fixture and authentication strategy, CI integration, suite runtime, and how you managed flakiness.
  2. Before and after — what manual testing looked like when you arrived, what it looked like afterward, and what happened to release frequency and escaped defects.
  3. A test that caught something serious — ideally a security, authorization, or data-isolation defect.
  4. Feature code you've shipped — this role becomes a product-development role, so show us that you can build software, not only verify it.
  5. Code we can read — a public repository, open-source contribution, or sanitized work sample.
  6. How you use agentic tools — a concrete example of work you completed with Claude Code, Codex, or equivalent, including something the tool got wrong and how you caught it.

Expect a paired working session against a realistic codebase with your usual development and agentic tooling available.

No algorithm quizzes.


What Growth Looks Like

Phase one establishes your ownership of quality architecture. Phase two builds your depth in product engineering.

As the role evolves, we want you designing schemas for your own feature areas, reviewing migrations, owning services end-to-end, contributing to increasingly significant technical decisions, and becoming someone newer developers turn to for guidance.


Company: ZTech Engineering Morocco

Location: Morocco — Remote / Hybrid

Assignment: Direct collaboration with a U.S.-based engineering organization serving the public health and emergency response sector

Apply with your LinkedIn profile or résumé, along with one of the six proof-of-work items above.


ZTech Engineering Morocco is an equal opportunity employer.

Apply