Software Development Engineer In Test
Software Development Engineer in Test
SDET, Quality Engineering & Test Automation
Remote
About the Role
We’re looking for an SDET to build and own the quality engineering practice for a cloud-based B2B SaaS platform that automates U.S. government procurement workflows using AI. The platform ingests solicitations, processes documents with LLMs, automates supplier communications, generates predictions, and produces bid-response documents, each of these workflows has real business consequences when something breaks.
This is not just a manual QA role. You’ll write code every day, building test frameworks, automating regression suites, hardening CI pipelines, and creating tooling that makes the entire engineering team ship with confidence. You’ll be the person who defines what “tested” means for this product and builds the infrastructure to enforce it.
The platform operates under SOC 2 controls for security, availability, and confidentiality. Test coverage isn’t optional, it’s part of how we demonstrate that changes are controlled and verified before they reach production.
What You’ll Work On
Test Strategy & Framework
- Designing and implementing a comprehensive test strategy across a multi-service architecture , defining the right mix of unit, integration, contract, and end-to-end tests for each service boundary
- Building and maintaining test frameworks in TypeScript (Jest) and potentially Go as the platform evolves , including shared test utilities, fixtures, factories, and assertion helpers
- Establishing test data management patterns, database seeding, tenant-scoped test isolation, deterministic fixture generation, and teardown strategies that allow parallel test execution
- Defining and enforcing coverage standards, not vanity metrics, but meaningful coverage of critical business logic, data integrity paths, and failure modes
API & Integration Testing
- Building automated API test suites for a NestJS backend with 50+ modules, validating request/response contracts, authorization boundaries, tenant isolation, error handling, and pagination behavior
- Testing multi-tenant data isolation rigorously, verifying that row-level security policies, tenant-scoped queries, and cross-tenant access controls work correctly under every code path
- Writing integration tests for async workflows that span multiple services via message queues, verifying that jobs enqueued by the API are correctly processed by downstream workers and results are persisted accurately
- Testing LLM-dependent workflows, designing strategies to test AI-powered extraction, prediction, and generation pipelines where outputs are non-deterministic. This includes building mock/stub LLM responses, validating output schema compliance, and testing graceful degradation when LLM calls fail or return unexpected formats
- Testing email integration workflows, verifying that inbound email parsing, attachment extraction, outbound RFQ dispatch, and response parsing produce correct results across providers (Gmail, Microsoft Graph)
Database & Data Integrity Testing
- Writing tests that validate schema migrations, verifying that migrations apply cleanly, preserve existing data, and that rollbacks work when needed
- Testing row-level security policies directly, asserting that queries executed with one tenant’s context cannot access another tenant’s data, including edge cases around shared resources and cross-tenant relationships
- Validating data consistency across async pipelines, when a bid is ingested, items extracted, prices resolved, and proposals generated across multiple services, the final database state must be correct and complete
- Testing materialized view refresh behavior and ensuring reporting/dashboard queries return accurate results after data mutations
CI/CD Integration & Quality Gates
- Integrating test suites into CI/CD pipelines as blocking quality gates, tests must pass before code can be promoted from develop to staging to production
- Optimizing test execution time, parallelization, selective test running based on changed files, caching strategies, and identifying flaky tests for quarantine and repair
- Building smoke test and health-check suites that run post-deployment to verify that production services are functioning correctly after each release
- Integrating with existing CI scanning tools (SAST, dependency scanning, IaC scanning) and ensuring test results are visible and actionable in the deployment workflow
E2E & UI Testing
- Building end-to-end test suites for critical user workflows in the React frontend , bid ingestion, item management, email automation configuration, proposal generation, and prediction review
- Implementing browser-based testing using Playwright or Cypress, with stable selectors, retry strategies, and clean environment setup/teardown
- Testing document generation outputs (DOCX, XLSX, CSV, PDF) , verifying that template placeholder substitution produces correct documents with accurate data, proper formatting, and no corruption
Performance & Reliability Testing
- Identifying and testing performance-critical paths , large bid list queries, bulk item extraction jobs, concurrent LLM processing, and high-volume email ingestion
- Building load and stress test scenarios for API endpoints and async job processing pipelines to validate system behavior under sustained throughput and burst conditions
- Testing failure modes and resilience , message queue unavailability, LLM provider timeouts, database connection exhaustion, and S3 access failures. Verifying that the system degrades gracefully and recovers correctly
What We’re Looking For
Required
- 3+ years of experience in a software engineering or SDET role where you wrote test automation code daily, not just test plans
- Strong TypeScript or JavaScript skills , you’ll be writing test code, fixtures, mocks, and utilities in the same language as the application
- Deep experience with a modern test framework (Jest, Vitest, Mocha, or equivalent) including test lifecycle hooks, mocking/stubbing, snapshot testing, and custom matchers
- Experience testing REST APIs programmatically , building request factories, validating response schemas, testing auth/authz boundaries, and asserting error handling behavior
- Strong understanding of relational databases and SQL , you need to verify data integrity directly, write setup/teardown queries, and validate that application behavior produces correct database state
- Experience writing integration tests that interact with real databases (not just mocks) , managing test transactions, tenant-scoped test isolation, and deterministic seeding
- Familiarity with CI/CD pipelines and how automated tests integrate as quality gates , you’ve configured test jobs, managed test environments, and triaged pipeline failures
- Understanding of async/event-driven architectures , you’ve tested systems where work is dispatched via queues and results arrive asynchronously, and you know the patterns for making those tests reliable
- Comfort reading and understanding production application code , you’ll need to trace logic through controllers, services, and data layers to understand what to test and where the risk lives
- Clear communication skills , you’ll define quality standards, explain test failures to developers, and advocate for testing investment to leadership
Preferred
- Experience testing LLM/AI-integrated applications , mocking non-deterministic responses, validating structured output parsing, testing prompt/response contracts, and measuring extraction accuracy
- Experience with Playwright or Cypress for browser-based E2E testing, including managing test environments, handling auth flows, and maintaining stable test suites against a changing UI
- Familiarity with NestJS or similar DI-based backend frameworks , understanding how to leverage dependency injection for test doubles and module-scoped test isolation
- Experience testing multi-tenant SaaS applications , validating tenant isolation, cross-tenant access controls, and data scoping under concurrent usage
- Familiarity with Prisma ORM or similar , writing test utilities that seed, query, and clean up data through the same ORM the application uses
- Experience with contract testing (Pact or similar) for validating API contracts between independently deployed services
- Exposure to performance testing tools (k6, Artillery, Locust, or similar) for API and job pipeline load testing
- Experience validating document outputs (DOCX, XLSX, PDF) programmatically , parsing generated files and asserting content correctness
- Background in a compliance-regulated environment (SOC 2, ISO 27001, FedRAMP) where test evidence is part of the audit story
- Experience with Go testing patterns (if you’ll also cover new Go microservices as the platform evolves)
Tech Environment
What You Won’t Find Here
- A manual QA role. You’ll write code, build frameworks, and automate. If you primarily work in spreadsheets and test management tools, this isn’t the right fit.
- A mature test infrastructure waiting for you to maintain. You’ll be building much of this from the ground up , defining the strategy, choosing the tools, and establishing the culture. That’s the opportunity.
- A siloed quality team. You’ll work directly alongside engineers, review their code, and embed quality practices into the development workflow rather than gating it at the end.
- Predictable, deterministic-only outputs. A significant part of the platform uses LLMs, which means you’ll develop novel testing approaches for non-deterministic systems. If that sounds interesting rather than frustrating, we should talk.
Location
Remote
Interested? Send your resume and a brief note about what excites you to our team.