- Home
- Jobs
- Engineering
- Quality Engineer

Quality Engineer at Duetto
CroatiaFull-timeEngineeringPosted 15 days ago
Apply with PipelineAbout the Role
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Duetto is building its quality engineering function from scratch — and this is the first hire that will define what quality engineering means across the organisation. This isn't a traditional QA gatekeeper role: developers own testing at Duetto, and you'll be the person who coaches, enables, and builds the shared infrastructure that makes high-quality testing the path of least resistance. The timing is significant — a live monolith-to-microservices migration, a frontend migration to Playwright, and a shift to AI-generated code at scale. Each demands someone who can design test strategy for a system in motion.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>What Makes Us Different?</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Duetto is the hospitality industry's leading revenue management platform, founded in 2012 by former Wynn Resorts executives who knew the industry needed better technology. We built the world's first Revenue & Profit Operating System — a suite of tools (GameChanger, ScoreBoard, BlockBuster, Advance and more) that goes beyond room pricing to give hotels, resorts and casinos a complete picture of their revenue and profitability. Trusted by clients ranging from independent boutique hotels to global chains, we've been named the #1 Revenue Management Software by HotelTechAwards four years running and the #1 Best Place to Work in Hotel Tech in 2025. Backed by GrowthCurve Capital since 2024, we're accelerating our investment in AI — and we're genuinely passionate about the industry we serve. We build products we're proud of, for customers we care about.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>What You'll Be Doing</strong></p>
<ul class="[li_&]:mb-0 [li_&]:mt-1 [li_&]:gap-1 [&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">You'll define and own quality gate logic within CI pipelines — coverage thresholds, mutation score gates, contract test enforcement, flaky test quarantine rules, and test result reporting — and build DataDog quality dashboards tracking test health, coverage trends, and flaky test rates across the engineering organisation.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">You'll lead and execute the migration from Selenium and Cypress to consolidated Playwright (currently 26% complete), using Claude Code to accelerate AI-assisted test migration at scale — designing the shared Playwright configuration, CI sharding strategy, and page object library, and consolidating from three E2E frameworks to one.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">You'll design and implement Pact contract testing for service boundaries created during the monolith-to-microservices extraction — managing the Pact broker, establishing consumer-driven contract testing as standard practice, and owning API contract testing for GraphQL and REST service contracts.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">You'll design and maintain Testcontainers configurations for MongoDB, PostgreSQL, Redis, LocalStack, and RabbitMQ, and drive PR pipeline test execution toward the P90 target of under 15 minutes.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">You'll champion AI-augmented testing practices using Claude Code, CodeRabbit, and Augment — evaluating and reviewing AI-generated test code for correctness and coverage gaps in a codebase where 50–70% of code is already AI-generated.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">You'll coach developers on testing practices and automation patterns, establish mutation testing using PIT (Java) and Stryker (JavaScript/TypeScript), and mentor junior QEs as the quality engineering function grows.</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>What We're Looking For</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><em>You may be a good fit if you have:</em></p>
<ul class="[li_&]:mb-0 [li_&]:mt-1 [li_&]:gap-1 [&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Strong experience with Playwright for end-to-end test automation, including page object patterns and CI integration</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Hands-on experience defining and implementing quality gates within GitHub Actions pipelines</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Contract testing experience — Pact experience strongly preferred</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Proficiency in both Java and TypeScript/JavaScript for test implementation</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Experience with Testcontainers or equivalent integration test infrastructure</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Demonstrated ability to reduce test flakiness at scale</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Strong understanding of test strategy for distributed systems and service-oriented architectures</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Active experience using Claude Code or similar AI coding assistants for test generation and automation — you understand that AI-generated code requires a different quality practice, not a lighter one</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><em>Strong candidates may also have:</em></p>
<ul class="[li_&]:mb-0 [li_&]:mt-1 [li_&]:gap-1 [&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Experience migrating legacy E2E frameworks (Selenium, Cypress) to Playwright at scale</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Familiarity with mutation testing tools — PIT for Java, Stryker for JavaScript/TypeScript</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Experience with performance testing using k6</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Background in hospitality technology or complex B2B SaaS environments</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>Why Duetto?</strong></p>
<ul class="[li_&]:mb-0 [li_&]:mt-1 [li_&]:gap-1 [&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>You'll build something that doesn't exist yet.</strong> This is the first senior QE hire at Duetto — the practices, infrastructure, and standards you establish will shape how the entire engineering organisation approaches quality for years.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>AI-first testing, for real.</strong> With 50–70% of code AI-generated and Claude Code already in the daily workflow, you'll be pioneering what quality engineering looks like when the code generation model fundamentally changes — not theorising about it.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Architectural impact at scale.</strong> The monolith-to-microservices migration is live, the Playwright migration is underway, and the contract testing infrastructure needs building — the problems are real, the timing is right, and the infrastructure you design matters.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>Modern tooling throughout.</strong> Playwright, Testcontainers, Pact, k6, GitHub Actions, DataDog — no legacy constraints holding you back.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><strong>A clear growth path.</strong> Senior QE (L5) to Staff/Lead QE (L6) as the quality engineering function matures and grows.</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>The Details</strong></p>
<ul class="[li_&]:mb-0 [li_&]:mt-1 [li_&]:gap-1 [&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Location: Remote (Croatia)</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Team: Quality Engineering</li>
</ul>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Duetto is an equal opportunity employer. We celebrate diversity and are committed to creating an inclusive environment for all employees. All qualified applicants will receive consideration for employment without regard to race, colour, religion, sex, sexual orientation, gender identity, national origin, disability, veteran status, or any other characteristic protected by applicable law.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>Sound like you?</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">You don't need a hospitality background. If you're a quality engineer with strong automation and contract testing chops, a coaching mindset, and the drive to build a function from the ground up in an AI-first engineering culture — we'd love to hear from you.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"> </p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"> </p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">#LI-REMOTE</p>