Senior SDET Backend & Data
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Tech stack
+58 more
Job description
We build an in-house trading platform covering order management, execution, and data analysis. It runs on a distributed, event-driven backend.
We’re hiring a hands-on SDET to own backend test automation: service, integration, contract, data, resilience and performance testing across the platform. You’ll co-architect and co-own a unified testing framework with our UI SDET. It covers UI, API, messaging, data and performance tests in one place.
Responsibilities
- Co-architect and co-own, with our UI SDET, a unified testing framework that covers every area we test:
Shared foundations: fixtures, test data, configuration, environments and reporting are shared across REST, WebSocket, Kafka, database, performance and UI suites.
Cross-layer scenarios: one scenario can follow a workflow from the UI through services and events to the database.
One quality view: results from every suite feed a single view of release quality.
-
Design and build automated service, integration and contract tests for REST APIs, WebSocket services, and Kafka producers and consumers.
-
Test event-driven flows end to end: message ordering, idempotency, at-least-once and exactly-once semantics, replays, offset handling, dead-letter queues, and schema evolution (Avro, Protobuf, JSON Schema, Schema Registry).
-
Build harnesses with controlled test data and service virtualization so suites run consistently and can be repeated.
-
Design and build isolated, on-demand test environments on Linux and AWS:
Lifecycle: full service stacks (services, Kafka, databases) are created per branch or per run, start with seeded data and known state, and are torn down automatically.
Isolation: test runs don’t interfere with each other or with shared environments.
Infrastructure: the environments are defined as code, with attention to cost.
-
Write data-validation tests across relational and analytical databases. Cover reconciliation and aggregation correctness.
-
Cover resilience and failure modes: broker and consumer outages, network partitions, timeouts, throttling, slow consumers and backpressure, reconnects, and authentication failures.
-
Own backend performance testing:
Latency and throughput: design and run load, stress, soak and spike tests on services, messaging pipelines, streaming and query APIs.
Baselines and regressions: set baselines and service-level targets (p50/p99 latency, throughput, consumer lag), and catch regressions in CI.
Bottlenecks: profile them down to the CPU, query or network layer.
Database queries: track query performance on analytical stores. Know how query shape and data volume drive response time.
-
Own backend test execution in CI/CD: parallel runs, scheduled regressions, environment setup and teardown, and release quality gates.
-
Make failures diagnosable: structured logs, distributed traces (OpenTelemetry), correlation IDs across services, and clear reports.
-
Work with backend engineers, infrastructure, business analysts and traders to define and automate critical business workflows.
Requirements
-
5+ years of backend or service test automation, including framework design.
-
Strong Python (pytest, requests, asyncio, confluent-kafka or similar) for test frameworks, tooling and data validation.
-
Strong Java (JUnit 5, REST Assured, AssertJ, or similar) for testing JVM services.
-
Working TypeScript and Node.js skills: contributing to UI and cross-layer suites in the shared framework, and Node-based tooling (k6 scripts, Playwright API tests).
-
Hands-on Kafka experience: producing and consuming in tests, consumer groups, partitions and offsets, serialization and schema registry, and Kafka Streams or Connect.
-
Solid networking fundamentals: TCP/IP, HTTP/1.1 and HTTP/2, WebSockets, TLS, DNS, load balancers, latency and packet loss. Able to debug with tcpdump/Wireshark, curl and similar tools.
-
Strong SQL and database experience (PostgreSQL, SQL Server, or similar) for test data setup, verification and cleanup. Familiarity with columnar or analytical databases.
-
Hands-on performance and load testing:
Tools: k6, Gatling, JMeter or Locust, including Kafka throughput benchmarking.
Profiling: JVM tuning and profiling ( JFR, async-profiler) or Python profiling.
Analysis: reading latency distributions and percentiles correctly, including coordinated omission.
-
API, authentication and contract testing: OAuth/JWT flows, payload and schema validation, and service virtualization (WireMock, MockServer, Hoverfly).
-
Experience building isolated test environments:
Linux: strong command-line skills, with shell scripting, systemd, processes, networking and performance troubleshooting.
Containers: Docker, Docker Compose and Testcontainers.
AWS: EC2, ECS or EKS, S3, IAM, VPC, MSK or RDS, and CloudWatch.
Infrastructure as code: Terraform, CloudFormation or CDK.
-
CI/CD with Azure DevOps or Jenkins, and Git.
-
Strong reliability habits: isolated tests, controlled retries, failure-mode testing, and triage of flaky tests.
-
Clear communication and good documentation.
-
Highly preferred - Trading or buy-side experience: OMS/EMS, the FIX protocol, market data, positions, allocations, or risk.
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Good distractions
Loading talks and stories from around this role…