Engineering · Salary guide

QA Engineer salary

Computed from the stated pay ranges of 41 QA Engineer listings we ingested in the last 90 days - not a survey, not a model. Base salary only; bonus and variable pay are quoted too inconsistently to publish.

  • 41 priced listings
  • Rolling 90-day window
  • Updated Sep 9, 2026
Median base salary

$128k

Half of QA Engineer listings pay more than this, half pay less.

Median $128k25th · $98k75th · $165k

Scale runs $0k$350k. Bar spans the middle 50% of listings.

$128kMedian base
$98k–$165kMiddle 50%
41Priced listings · 90d
173Open roles now
The distribution

One median hides a wide role.

QA Engineer” covers very different jobs at very different scales under one title. The spread below is real - it is the shape of what employers are posting, not noise in the data.

41 listing midpoints, binned$0k–$350k
0
9
13
12
5
1
1
0
$0k$44k$88k$131k$175k$219k$263k$306k

Each listing counts once, at the midpoint of its stated range. Columns are on the same scale as the hero.

Percentilesn = 41
10th percentile
The bottom of the published span
$77k
25th percentile
Bottom of the middle 50%
$98k
50th - median
The published number
$128k
75th percentile
Top of the middle 50%
$165k
90th percentile
The top of the published span
$190k

Read off the sorted midpoints with percentile_cont, interpolating between neighbours where it falls between two.

The mechanism

Every number here, traced.

1

We matched 41 listings to this title in the last 90 days that state an annual base range. Listings without one are excluded entirely.

2

Each listing contributes its pay midpoint - one value, one vote. A wide range doesn’t get extra weight.

3

41 clears the 5-listing threshold, so the median is published. Roles that don’t clear it say so instead of showing a number.

4

Postings age out of the window automatically - nothing is carried forward. See our data commitments.

Compute trace

QA Engineer - 41 priced listings, sorted by midpoint ($k).

All 41 midpoints, sorted

5460636677798185869598100101113115115118119123128128128133134139139140143147165165166168170176188190195204222290

41 values, so the median is the 21st - read straight off the list, with nothing interpolated. Every chip is one listing from the last 90 days that you can open below.

Published: $128k median base

Read this before you negotiate

$128k is base. It is not the whole offer.

Variable pay is real money, and it is the part listings describe least consistently. Here is exactly what is inside the number and what isn’t.

Counted

Anything a listing states as guaranteed annual base pay, in USD, for a full-time role.

  • A stated annual base range
  • The base portion split out of an on-target-earnings figure
  • Full-time roles, remote or on-site

Not counted

Some of it is real money and some of it is just unreadable. Either way it stays out of the median rather than inflating it.

  • Commission, bonus, equity and signing bonuses
  • On-target earnings with no base split out
  • Hourly and contract rates - we will not annualize them for you
  • Ranges stated in another currency

Each of those is a rule in the extractor, not a judgement call - a listing that trips one stays unpriced rather than entering the median as a guess.

By location

Where the listings are.

The same rule applies per market: 3 priced listings or no median. 3 markets clear it in this window. Markets that fall short still get a row with their count, so you can see how close they are rather than wonder why yours is missing. This table covers the 22 of 41 priced listings that name a place - the other 19 are remote, nationwide, carry no location line at all, or are written as something we can’t place on a map (a campus or a building name). They still count toward the median above.

LocationMedian basevs. role
San Francisco, CA7 priced listings
$188k+47%
Playa Vista, CA4 priced listings
$147k+14%
Menlo Park, CA3 priced listings
$170k+33%
Boston, MA1 priced listing
2 more needed -
Boulder, CO1 priced listing
2 more needed -
Idaho Falls, ID1 priced listing
2 more needed -
Irvine, CA1 priced listing
2 more needed -

Bars are on the same $0k$350k scale as the hero. Striped rows are below the publishing threshold. 4 further markets are not shown - the long tail is mostly single listings in towns of their own. Employers write locations as free text, so every spelling of a city is resolved to one market before it is counted.

The underlying listings

Every number traces back to a job you can open.

These are the actual postings behind the median - the employers running more than one priced req, and the most recent priced listings from the last 90 days. A few may have closed since; they stay listed because the median was computed over them.

Questions

About this number.

Base only. $128k is the median of the annual base ranges stated by 41 QA Engineer listings ingested in the last 90 days. Bonus, commission, equity and signing bonuses are excluded, because listings describe them inconsistently - including them would make the number bigger and less true.

Real job listings ingested via LandEarly in the last 90 days - not a survey, not a model. Each listing contributes its pay midpoint, the average of the minimum and maximum it states. Listings without a usable annual range are excluded from the maths entirely.

The middle 50% of QA Engineer salaries - the 25th to 75th percentile - runs from $98k to $165k, based on 41 priced listings. The full published span is $77k at the 10th percentile to $190k at the 90th.

The window is the last 90 days and it rolls forward as we ingest new postings - this page rebuilds every six hours. A listing that ages out of the window drops out of the median; nothing is carried forward or back-filled.

A role needs at least 5 priced listings in the window before we publish a median. Below that we show the listing count instead, and that role's guide says so plainly rather than printing a figure computed from a handful of postings.

You know the number

Now be first in the pile.

LandEarly catches QA Engineer roles the hour they post, tailors your resume to each one, and applies before the queue forms.