QA Interview
eBay SDET Interview Questions and Preparation
Prepare for eBay sdet interview questions with coding, marketplace architecture, API automation, concurrency, CI debugging, and senior-level answers for 2026.
27 min read | 3,549 words
TL;DR
Strong answers to eBay SDET interview questions combine coding fundamentals with marketplace-aware system design. Expect role-dependent evaluation, then prepare algorithms, API and event testing, deterministic concurrency checks, layered automation, CI diagnosis, performance and security reasoning, plus evidence of technical influence.
Key Takeaways
- Prepare as a software engineer who specializes in testability, risk feedback, and quality infrastructure, not as a UI script author.
- Confirm the actual loop and approved coding language because eBay's interview stages vary by opening, team, region, and level.
- Practice readable coding with complexity, boundaries, tests, concurrency assumptions, and failure handling stated aloud.
- Design marketplace automation around contracts, state machines, idempotency, eventual consistency, and controlled test data.
- Explain framework architecture through ownership, diagnostics, parallel isolation, CI economics, and migration strategy.
- Use observability and fault isolation to distinguish product, test, data, environment, and dependency failures.
- Senior candidates should show how they improve engineering systems and team decisions, not only individual test coverage.
Preparing for eBay sdet interview questions requires a software engineering mindset applied to marketplace quality. You should be able to write maintainable code, design a test system, reason about concurrent and asynchronous workflows, diagnose a distributed failure, and explain how your work changes release confidence. Knowing Selenium commands alone will not demonstrate that range.
eBay publicly describes a role-dependent hiring process that can include conversations with recruiting, a hiring manager, future teammates, technical screens, case studies, skills exercises, and coding assessments. Your recruiter and interview invitation define the real loop. This article gives you a preparation system for SDET-style roles while avoiding claims that every eBay engineering team uses the same language, framework, or interview order.
TL;DR
| Interview dimension | Prepare this evidence | Avoid this weak signal |
|---|---|---|
| Coding | Correct function, tests, complexity, edge cases | Syntax without reasoning |
| System testing | States, contracts, faults, data, observability | A large UI checklist |
| Framework design | Isolation, APIs, diagnostics, ownership, cost | A folder diagram only |
| Distributed behavior | Idempotency, retries, ordering, consistency | Fixed sleeps |
| CI quality | Reproducible triage and actionable reports | Blind reruns |
| Leadership | A mechanism that improved team outcomes | Tool evangelism without results |
Use one repeatable structure in technical answers: define the contract, identify invariants, expose controllable seams, choose the narrowest reliable layer, inject important failures, collect diagnostic evidence, and state what remains unproven.
1. eBay SDET Interview Questions: Calibrate to the Actual Opening
Read the job description as an engineering specification. Highlight the primary language, service or client surface, data systems, CI platform, cloud or container expectations, and responsibility level. Then create an evidence matrix. For each important requirement, record one project, your exact contribution, a design tradeoff, a failure you encountered, and the outcome. Anything on your resume is available for a deep follow-up.
The current eBay How We Hire page says engineering candidates may complete coding and that stages depend on the role. Do not rely on an unofficial sequence copied from a candidate post. Ask recruiting whether live coding, a take-home exercise, system design, or framework discussion is expected, which languages are accepted, and whether the role is aligned to web, mobile, services, data, or platform quality.
An SDET introduction should sound like engineering, not a catalog of tools. A useful version covers the type and scale of system you supported, the risks your test architecture addressed, the code or infrastructure you owned, a measurable improvement in feedback or diagnosis, and why marketplace problems are a good match. Mention a framework only after explaining the problem it solved.
Also prepare for level calibration. An intermediate SDET may be evaluated on implementation and debugging within a service area. A senior candidate should discuss interfaces, migration, standards, production signals, team adoption, and competing business constraints. Staff-level evidence usually crosses team boundaries and shows durable mechanisms. Do not inflate your title. Make the scope of your decisions observable.
2. Build a Coding Practice Loop That Includes Tests
Coding rounds often reveal how you decompose a problem, not whether you remember a clever trick. Practice arrays, strings, maps, sets, queues, intervals, sorting, trees, graphs, and basic concurrency in the language allowed for your interview. For each solution, clarify input constraints, propose a simple approach, improve it if necessary, state time and space complexity, and test boundaries.
Marketplace-flavored exercises might involve merging time windows, finding duplicate events, grouping transactions, ranking items, validating state transitions, or calculating a rolling signal. Do not overfit preparation to guessed questions. The underlying skills are data modeling, invariants, and readable implementation. Name variables by domain meaning. Keep I/O separate from logic. Handle invalid input according to an explicit contract instead of silently inventing requirements.
Test your solution aloud. Include empty input, one element, duplicates, ordering, numeric boundaries, Unicode if strings matter, and invalid data if the contract requires it. A small table of examples before code often prevents an avoidable rewrite. If you find a bug, narrate the failing assumption, fix it, and rerun the relevant case. Recovery is evidence, not failure.
Do not make every problem a framework. A direct function with a clear contract is better than unnecessary factories and interfaces. Conversely, do not compress production-style logic into unreadable one-liners. Review Java automation interview questions for experienced QA engineers if Java is listed, but keep your core practice language aligned with the recruiter guidance.
3. Reason About Marketplace States, Contracts, and Concurrency
An SDET should convert product flows into executable contracts. In a marketplace, model listing, bid, inventory reservation, payment, order, shipment, dispute, return, and refund as related state machines. Define legal transitions, command ownership, immutable history, and user-visible projections. This lets you test business behavior without coupling every check to the presentation layer.
Concurrency creates high-value failure modes. Two buyers can attempt the last unit. Multiple bids can arrive around close. A user can double-submit while a provider retries a callback. A seller edit can race with purchase. A return and support adjustment can overlap. For each, name the serialization point or expected conflict behavior, then verify one durable outcome. Do not assume that sending requests from a loop creates meaningful concurrency. Use a barrier or coordinated start, unique correlation identifiers, and evidence from the authoritative service.
Distributed delivery also creates duplicates and reordering. An at-least-once event consumer should produce an idempotent business result. A retry policy needs a bounded attempt count, backoff, classification of retryable failures, and observability. A dead-letter path needs ownership and replay safety. Exactly-once business effects are usually achieved through design, such as idempotency keys, uniqueness constraints, or an inbox pattern, not by assuming a broker promise solves every boundary.
Eventual consistency changes assertions. Replace a fixed sleep with bounded polling against a meaningful condition, using a timeout derived from the service objective or test environment contract. Log each attempt and final state. Polling should not hide a permanently invalid intermediate state. If an order must never show as both canceled and shipped, assert that safety invariant throughout the observation window.
4. Write a Runnable Concurrency Test With a Clear Oracle
The following JUnit 5 example models an idempotent order creator. It is intentionally local, so it can run without touching a real marketplace. Put it in src/test/java/example/OrderServiceTest.java in a Maven or Gradle project with JUnit Jupiter, then run the project's normal test command. The Java APIs and JUnit annotations shown are current and public.
package example;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.stream.IntStream;
import org.junit.jupiter.api.Test;
class OrderServiceTest {
static final class OrderService {
private final ConcurrentHashMap<String, String> orders = new ConcurrentHashMap<>();
String create(String idempotencyKey) {
return orders.computeIfAbsent(
idempotencyKey, key -> "order-" + key);
}
}
@Test
void concurrentRetriesCreateOneBusinessOrder() throws Exception {
var service = new OrderService();
var start = new CountDownLatch(1);
Set<String> observedOrderIds = ConcurrentHashMap.newKeySet();
try (var pool = Executors.newFixedThreadPool(8)) {
var tasks = IntStream.range(0, 32)
.mapToObj(attempt -> pool.submit(() -> {
start.await();
observedOrderIds.add(service.create("checkout-123"));
return null;
}))
.toList();
start.countDown();
for (var task : tasks) {
task.get(2, TimeUnit.SECONDS);
}
}
assertEquals(Set.of("order-checkout-123"), observedOrderIds);
assertEquals(1, service.orders.size());
}
}
This example requires a Java release that supports ExecutorService in try-with-resources, such as Java 21. If the interview environment uses an older supported release, shut down the executor in finally instead. State that compatibility decision.
The test proves one in-memory implementation property, not a distributed transaction. A real test must also verify persistence uniqueness, request payload conflicts, retry after process failure, provider callbacks, transactional boundaries, and audit events. It may need a database barrier or fault injection at a precise seam. Saying what the example does not cover demonstrates engineering discipline.
5. Design API, Contract, Event, and Data Coverage
Start an API test from the contract: method, resource, authentication, authorization, schema, status semantics, idempotency, pagination, filtering, rate behavior, and error model. Test representative equivalence classes and boundaries, not every arbitrary field combination. For an order creation endpoint, assert the stable business response and side effects. Do not make tests brittle by comparing volatile timestamps or every response field when those fields are outside the contract.
Consumer-driven contracts can detect incompatible provider changes early, but they do not prove provider business logic or a deployed network path. Schema validation detects structural drift, not semantic correctness. Integration tests should cover serialization, real middleware, persistence, and important dependency behavior. End-to-end tests prove a few cross-system journeys. Explain these limits when choosing a layer.
Event testing needs a correlation strategy. Publish or trigger a command with a unique identifier, capture the resulting event, and assert key, type, schema, business fields, and traceability. Test duplicate delivery, unsupported version, missing field, poison event, reordering where allowed, and replay. Avoid consuming from a shared topic with an unbounded wait. Use isolated namespaces, test-specific routing, or a supported event probe with cleanup.
Data validation should reconcile business meaning. Check that a captured amount maps to the intended order and currency, state history contains legal transitions, and read models converge within the documented window. Use read-only access and sanitized test records. Testing data migrations safely is useful preparation for backfill and schema change discussions, especially when old and new consumers coexist.
6. Explain a Framework as a Product With Users
When asked to design an automation framework, begin with consumers and constraints. Who writes tests? Which services and clients are in scope? What feedback time is required? Where will tests run? How is data provisioned? What failures must a developer diagnose without the framework author? A generic page-object diagram is not an architecture answer.
A credible framework separates test intent from transport details without hiding useful platform behavior. It can provide typed service clients, domain builders with safe defaults, environment configuration, identity and data fixtures, bounded polling, artifact capture, tagging, and reporting. It should expose raw responses and correlation identifiers when diagnosis requires them. Over-abstraction creates a private programming language that few engineers can debug.
| Design choice | Benefit | Failure mode to control |
|---|---|---|
| Typed API client | Compile-time help and shared auth | Generated churn or hidden responses |
| Domain fixture builder | Readable intent and valid defaults | Tests silently depend on too many defaults |
| Worker-isolated data | Parallel safety | Provisioning cost and cleanup leaks |
| Bounded condition wait | Handles documented async behavior | Masks slow regression if time is not measured |
| Automatic artifacts | Faster triage | Secret or personal data leakage |
| Tags and ownership | Selective execution and routing | Suites become permanently skipped |
Discuss lifecycle and governance. Version shared libraries, publish migration notes, test framework code, define compatibility, and instrument usage. Use templates and lint rules only where they prevent a known class of harm. Measure signal, duration, failure diagnosis, and maintenance effort rather than celebrating raw test count. A framework succeeds when product teams can own trustworthy checks.
For UI-specific depth, Selenium interview questions for experienced engineers or equivalent tool guidance can refresh APIs, but the design should remain driven by risk and maintainability.
7. Engineer Deterministic UI and Mobile Automation
UI tests should operate through user-observable contracts. Prefer accessible roles and names, stable test IDs when no semantic locator exists, and component ownership over CSS structure or XPath tied to layout. Use framework auto-waiting around actionable states rather than arbitrary sleeps. A passed click is not an oracle. Assert the resulting business or user-visible state.
Control test data through supported APIs or fixtures and isolate accounts per worker. Data must be unique, discoverable for cleanup, and safe if cleanup fails. Record environment, build, account, and business identifiers with each run. Do not share a mutable seller or inventory record across parallel tests. That design creates order-dependent failures no retry can fix.
Mock only at a deliberate boundary. A route stub can test client error handling quickly, but it cannot prove the real provider, gateway, serialization, or deployment. Keep a smaller integration set for those boundaries. Contract-test mocks so their behavior does not drift. If a team uses visual comparison, stabilize fonts, viewport, data, clock, animation, and operating system image, then review intended changes rather than auto-approving baselines.
Mobile automation adds lifecycle and device concerns. Test background and resume, interrupted authentication, permissions, deep links, offline transitions, upgrade, local storage migration, notification routing, and representative device characteristics. Use real devices selectively for hardware, platform, and performance risk while emulators provide fast deterministic coverage. The matrix should follow supported platforms and customer risk, not a promise to run everything everywhere.
8. Debug CI Failures and Control Flakiness
A mature SDET treats failure output as part of the product. Every test result should reveal the test and owner, build and environment, data identifiers, request and trace correlation, relevant logs, screenshots or traces for clients, timing, retry history, and a concise assertion difference. Artifact collection must redact tokens, payment details, personal data, and private seller information.
Triage begins with classification. Product defects show a violated contract. Test defects come from a bad oracle, race, selector, or cleanup. Data defects reflect invalid or colliding fixtures. Environment failures include deployment, capacity, certificate, or configuration problems. Dependency failures require their own signal. Classification enables the correct owner and trend, while "flaky" hides distinct causes.
Retries can estimate reproducibility or protect a pipeline briefly, but they must not erase the first failure. Track first-attempt and final outcomes separately. Quarantine needs a linked defect, owner, scope, entry reason, review date, and exit criteria. A permanently green dashboard built by excluding unstable coverage is not trustworthy.
Parallelization should be designed, not switched on blindly. Isolate accounts, namespaces, ports, files, queues, and database records. Cap workers based on environment and dependency capacity. Split by measured duration to reduce tail time. Cache immutable dependencies, not mutable test state. For more practice, use a Jenkins pipeline for Playwright as a comparison point even if the target team uses another CI system. The transferable concepts are stages, artifacts, fail behavior, and reproducibility.
9. Discuss Performance, Resilience, and Security as Contracts
Performance testing begins with a workload model, not a thread count. Define user journeys, arrival pattern, data cardinality, cache state, geographic assumptions, dependency behavior, and success criteria. Separate load, stress, spike, endurance, and capacity questions. Use an approved environment and coordinated monitoring. Never propose generating unapproved traffic against eBay production.
Measure latency distributions, throughput, error classes, saturation, queue depth, and critical business outcomes. An average can hide a damaging tail. Correlate client results with service and dependency telemetry. Validate recovery after load, not only behavior during it. A marketplace scenario might examine search under traffic, but must also protect listing freshness and purchase correctness. Faster wrong results are not success.
Resilience tests should target a hypothesis: if a payment dependency times out, then the user receives a safe pending state and retry does not duplicate capture. Inject delay, reset, error, or partial response at a controlled boundary, then verify fallback, timeout budget, retry limit, circuit behavior, audit record, alert, and recovery. Stop conditions protect shared environments.
Security preparation should cover authentication, object-level authorization, tenant or account separation, input handling, secrets, session lifecycle, and abuse controls. SDETs can automate stable security regressions, but authorized specialists and threat modeling remain important. Do not present intrusive testing as something you would perform without scope. Explain how sensitive artifacts are redacted and how test credentials are rotated.
10. eBay SDET Interview Questions: Prepare Senior-Level Evidence
Senior interviews often move from "Can you build it?" to "Should the organization build and operate it this way?" Prepare an architecture story where you evaluated alternatives, gathered constraints, migrated safely, measured adoption, and removed an older path. Include costs such as runtime, infrastructure, maintenance, training, and false failures.
Bring a quality incident story. Start with containment and customer impact, then show a timeline across code, tests, rollout controls, monitoring, and response. Identify the systemic gap and the smallest effective prevention and detection changes. Avoid blaming a developer or claiming that more end-to-end tests solve every escape.
Bring an influence story where you had no direct authority. Explain the evidence, stakeholders, disagreement, experiment or pilot, and outcome. Perhaps a contract suite reduced integration surprises, or test data isolation enabled safe parallelism. If adoption failed, say why and what you learned. Seniority includes stopping an approach that costs more than it returns.
Use a ten-day final plan. Spend days 1 and 2 on role mapping and coding baselines, days 3 and 4 on marketplace state and concurrency, days 5 and 6 on framework and API design, days 7 and 8 on CI diagnosis plus behavioral stories, and days 9 and 10 on mock interviews and targeted repair. Do one timed coding exercise daily and always run the tests.
Interview Questions and Answers
Q: How would you design test automation for an order service?
Define order commands, states, invariants, dependencies, and error semantics first. Put transition and calculation combinations in unit or property tests, HTTP and authorization contracts in service tests, persistence and event behavior in integration tests, and keep a small end-to-end journey. Provide safe fixture APIs, correlation identifiers, bounded async assertions, and automatic redacted diagnostics.
Q: How do you prove an operation is idempotent?
Repeat the same logical command sequentially, concurrently, after a lost response, and after process recovery using the same idempotency key. Verify one financial and domain effect, a stable compatible response, and an auditable record. Also test key expiration and reuse with a conflicting payload according to the API contract.
Q: Fixed waits are flaky. What do you replace them with?
Poll a meaningful observable condition within a bounded deadline derived from the environment contract. Record attempts, elapsed time, and final state, and fail with useful context. I also assert safety conditions during the wait so polling cannot hide an illegal intermediate state.
Q: How do you choose between mocks and real integrations?
Use mocks for deterministic branch coverage and rare failure behavior at an intentional boundary. Use contract checks to keep the mock compatible, and real integration tests for serialization, network, middleware, credentials, and deployed behavior. The choice follows the risk a test must prove, not a blanket rule.
Q: How would you test an event consumer?
Verify supported schemas and business effects, then inject duplicates, reordering where legal, unsupported versions, poison messages, and downstream failures. Assert idempotency, retry limits, dead-letter routing, observability, and replay safety. Use isolated routing and correlation IDs so the test has a bounded deterministic oracle.
Q: What metrics describe automation health?
Track time to trustworthy feedback, first-attempt pass behavior, confirmed failure categories, diagnosis time, duration distribution, quarantine age, and defect detection at useful stages. Raw test count and final pass rate are easy to game. Metrics should lead to a decision, owner, or improvement experiment.
Q: How would you reduce a two-hour regression suite?
Measure duration and failure value first, remove duplicates, move rule coverage below the UI, isolate data for safe parallelism, and shard by historical duration. Cache immutable setup and select suites by change risk while retaining scheduled broad coverage. I would compare signal and escaped risk before and after, not optimize runtime alone.
Q: What makes a test framework maintainable?
Clear contracts, small composable helpers, typed clients, visible raw diagnostics, isolated fixtures, documented extension points, and product-team ownership. The framework itself needs tests, versioning, compatibility rules, and migration notes. Abstraction should remove repeated accidental complexity without hiding the system being tested.
Q: How do you test eventual consistency?
Identify the authoritative write and expected converged read, then use a unique identifier and bounded polling within the documented window. Verify both convergence and safety invariants, record latency, and fail with the observed state history. A fixed delay either wastes time or remains unreliable.
Q: How do you approach a coding question you cannot optimize immediately?
I clarify constraints, implement a correct simple solution, state its complexity, and test it. Then I identify the bottleneck and improve it if the constraints require that change. A verified baseline provides evidence and makes optimization safer than silently chasing the cleverest answer.
Q: How would you test search ranking?
Separate hard invariants from subjective relevance. Test eligibility, filters, stable ordering rules, pagination integrity, permissions, and experiment assignment deterministically. Evaluate relevance with curated labeled queries and comparative signals, while checking that a gain in one segment does not conceal regressions or marketplace interaction effects.
Q: What is your process for a production-only failure?
Protect customers and preserve evidence, then compare the failing request with a known good one using sanitized correlation data. Examine configuration, traffic, data shape, dependency, deployment, and concurrency differences. Reproduce in the safest lower environment possible and add both a regression check and a production detection signal.
Common Mistakes
- Presenting an SDET as someone who only converts manual cases into browser scripts.
- Memorizing framework definitions while neglecting coding, complexity, and testability.
- Assuming a fixed eBay interview loop from unofficial reports.
- Claiming thread loops prove concurrency without a coordinated start or authoritative oracle.
- Using
sleepfor asynchronous behavior instead of a bounded condition and contract. - Hiding HTTP responses, logs, or identifiers behind abstractions that make failures harder to diagnose.
- Treating retries as a fix and reporting only the final pass.
- Sharing mutable accounts or inventory across parallel tests.
- Proposing unrestricted load or security tests against production.
- Using raw automation count as the main success measure.
- Giving a system design with components but no users, failure modes, ownership, or migration.
Conclusion
The most credible answers to eBay sdet interview questions connect software engineering fundamentals to the failure modes of a live marketplace. Write clear code, test invariants under concurrency and retry, design observable automation, and make layer and cost tradeoffs explicit.
Choose one order or auction workflow and build a complete interview artifact: state model, API contract, runnable test, fault matrix, CI diagnostics, and release signals. If you can explain that artifact under follow-up questions, you are preparing at SDET depth rather than memorizing tools.
Interview Questions and Answers
Design automation for a marketplace order service.
I would define commands, states, invariants, dependencies, and error semantics first. Unit and property tests would cover transitions and calculations, service tests would cover HTTP and authorization, integration tests would cover persistence and events, and a thin end-to-end set would prove critical journeys. The harness would provide isolated fixtures, correlation IDs, bounded async assertions, and redacted diagnostics.
How do you test an idempotent API?
I repeat the same logical request sequentially, concurrently, after a lost response, and after recovery with the same key. I verify one business side effect, a compatible response, and an audit record. I also test expiration and conflicting payload reuse according to the contract.
How do you coordinate a concurrency test?
I prepare isolated state, create workers, and release them through a barrier so requests overlap meaningfully. I capture request and result identifiers and verify the authoritative persisted outcome, not just client responses. Repetition and timing evidence help expose narrow races without turning randomness into the oracle.
How do you test an asynchronous event consumer?
I verify supported schemas and effects, then send duplicates, reordered events where legal, unsupported versions, poison data, and dependency failures. I assert idempotency, bounded retries, dead-letter behavior, observability, and replay safety. Isolated routing and correlation IDs keep the test deterministic.
What replaces fixed sleeps in tests?
I use framework auto-waiting for UI actionability and bounded condition polling for domain convergence. Deadlines come from the environment or service contract, and failures report attempts, elapsed time, and state history. I also assert that illegal states never occur during the wait.
How would you design test data for parallel runs?
Each worker receives unique accounts, namespaces, and business records created through supported interfaces. Builders expose test intent and tag records for cleanup, while cleanup is idempotent and has a fallback sweeper. Shared immutable reference data is acceptable, but mutable inventory or identity is not shared.
How do you decide what to mock?
I mock an intentional boundary when I need deterministic branch or fault coverage that a real dependency cannot provide efficiently. Contract checks keep the fake compatible, and separate integration tests cover serialization, network, credentials, and deployed behavior. I state which risk each test does and does not prove.
What metrics would you use for automation quality?
I track time to trustworthy feedback, first-attempt outcomes, failure categories, diagnosis time, duration distribution, quarantine age, and useful defect detection. I pair each metric with an owner and decision. Test count alone says little about risk coverage or trust.
How would you reduce regression runtime safely?
I measure first, remove redundant checks, shift rule coverage below the UI, isolate data for parallelism, and shard by historical duration. Change-based selection can shorten presubmit feedback while scheduled broad coverage remains. I compare signal and escaped risk before and after the change.
How do you debug a CI-only failure?
I reproduce the CI image, command, configuration, resources, and test order as closely as possible. I compare artifacts, timing, environment variables, data isolation, and dependency behavior with a local pass. The fix targets the identified product, test, data, environment, or dependency cause, not an arbitrary wait.
How would you test search indexing consistency?
I create a uniquely identifiable eligible listing, record the write acknowledgement, and poll the supported query within the documented convergence window. I verify filters and authorization, capture event and index evidence, and assert no illegal exposure during propagation. Latency is recorded so tests can detect degradation rather than merely wait longer.
What belongs in an automation framework?
It should contain stable cross-test capabilities such as configuration, typed clients, domain fixtures, identity, bounded waiting, artifacts, and reporting. It should not hide every platform behavior behind opaque wrappers. The framework needs its own tests, versions, migration policy, and clear ownership.
How do you test resilience to a payment timeout?
I inject the timeout at a controlled boundary and distinguish no authorization from an authorized but lost response. I verify safe pending state, retry limits, idempotency, later callback reconciliation, audit records, alerts, and recovery. Stop conditions prevent the experiment from harming shared environments.
Describe a quality architecture decision you influenced.
A strong answer defines the original risk and constraints, alternatives considered, evidence from a pilot, and how stakeholders decided. It explains migration, adoption, cost, and measurable feedback improvement. It also names drawbacks and what the candidate would change with hindsight.
How do you review test automation code?
I review the risk and oracle first, then determinism, isolation, readability, layer choice, diagnostics, security, runtime, and ownership. I look for assertions that prove outcomes rather than action scripts, and I challenge fixed waits and shared state. The same engineering standards apply to test code as production code, adjusted for its purpose.
Frequently Asked Questions
What does the eBay SDET interview process include?
eBay describes a role-dependent process that may include recruiting, hiring manager and teammate conversations, technical screens, case studies, skills exercises, or coding. Confirm the exact sequence and language with your recruiter because team and level matter.
How much coding should I prepare for an eBay SDET role?
Prepare to solve readable data-structure problems, state complexity, and write tests in an approved language. Also practice production-oriented coding around API clients, parsing, concurrency, polling, and error handling because SDET work extends beyond algorithms.
Is Selenium enough for an eBay SDET interview?
No. UI automation may be relevant, but strong preparation also includes coding, API and event contracts, data, distributed systems, CI diagnosis, test architecture, and product risk. Follow the specific job description for tool depth.
Which distributed systems topics matter for marketplace testing?
Study idempotency, retries, timeouts, ordering, deduplication, eventual consistency, caching, concurrency, compensation, and observability. Practice connecting each concept to an executable invariant instead of reciting definitions.
What framework design questions should I expect?
Be ready to discuss users, scope, test data, isolation, typed clients, UI abstractions, async behavior, artifacts, parallel execution, CI integration, ownership, versioning, and migration. Interviewers usually care more about tradeoffs and operations than folder names.
How should I discuss flaky tests in an SDET interview?
Classify failures using preserved evidence, reproduce at the narrowest layer, and fix the underlying race, data collision, oracle, environment, or product problem. Retries and quarantine should be controlled temporary mechanisms with visible first-attempt results.
What should a senior eBay SDET candidate emphasize?
Emphasize architecture decisions, cross-team adoption, migration, incident learning, observability, cost, and measurable feedback improvements. Show how you enabled teams to own quality rather than becoming a central bottleneck.