Your engineering team just crossed 20 people. A senior full-stack developer hired two years ago is now earning almost the same as a mid-level hire who joined last quarter at market rate. Your raises have tracked 5-8% annually; the market moved 15%. The gap between what you pay for tenure and what you pay for a new hire is closing, and your best people are starting to notice. This is pay compression, and it happens to almost every growing engineering team. The fix is not a raise cycle. It is building compensation bands by role and seniority level before the compression becomes visible in your exit interviews, then running a review cadence that catches drift before it turns into attrition.
A compensation band is a defined minimum, midpoint, and maximum salary tied to a specific role and level, published internally so both managers and employees know where a given position sits. For a Vietnam-based engineering team, this means separate bands for roles like Full-stack Developer, QA/QC Engineer, DevOps Engineer, Business Analyst, and Project Manager, each split across junior, mid, and senior levels, with defensible ranges the whole team understands as fair.
TL;DR
Pay compression appears when new hires are brought in at market rate but existing staff raises lag behind, closing the gap between junior and senior pay over time.
The fix is role-based and level-based compensation bands with a defined minimum, midpoint, and maximum for each position, not ad hoc offers.
In Vietnam's tech market, monthly bands for common software roles typically run $700 to $1,500 for QA/QC, $800 to $5,000 for Full-stack developers, $1,300 to $3,900 for DevOps, and $1,000 to $4,000+ for Business Analysts and Project Managers, depending on seniority. (Note: these ranges are illustrative and sourced from industry surveys; always validate against current local market data before publication.)
Vietnam's Labor Code requires equal pay for equal work, published internal salary scales, and itemized payslips, which makes band publication a compliance requirement, not just an HR best practice.
Bands need a review cadence, typically annual, tied to market data and internal equity audits, or they decay back into compression within 18 to 24 months.
About the Author: This article is written by 724SOFTWARE, a Vietnam-based technology company operating dedicated engineering teams of 200+ professionals, 58% of them senior-level, across Fintech, Healthcare, and Enterprise ERP projects. Structuring fair, defensible compensation bands is part of how the company retains a 95% client retention rate and keeps delivery teams stable past the 20-person mark without the internal churn that pay compression usually causes.
What Is Pay Compression and Why Does It Show Up Around 20 People?
Pay compression is the narrowing gap between what a company pays experienced employees and what it pays new hires doing similar or junior work, to the point where tenure and seniority stop being reflected in pay. Below 15 to 20 engineers, most teams set salaries case by case: an offer here, a counteroffer there, a retention bump when someone almost quits. Nobody notices the drift because nobody is comparing five offers side by side.
Past 20 people, three things happen at once. First, the market moves. A senior full-stack developer hired two years ago at $2,800 a month is now competing against new senior candidates asking for $3,800, because the market for senior software engineers in Vietnam has shifted upward over that period. If the existing engineer's raises tracked 5-8% annually while the market moved faster, a gap opens. Second, headcount growth means the person setting salaries is no longer the founder who remembers every hire's story; it is a hiring manager or HR lead working from a spreadsheet, and inconsistent judgment calls compound. Third, engineers start talking to each other. A team of 8 rarely discusses salary openly. A team of 25 almost always does, informally, and compression that was invisible becomes a resignation letter.
How Do You Actually Build a Compensation Band for a Software Role?
Building a compensation band means defining a role, its levels, and a market-anchored salary range for each level, then validating that range against internal equity before publishing it. The mechanism only works if you do the steps in this order, because each step depends on the one before it.
Define the role and split it into levels. "Full-stack Developer" is not one job; it is at minimum junior, mid, and senior, and possibly a staff or lead tier past 30 engineers. Vague role definitions are the single most common cause of bands that don't hold up.
Pull market data for each level, in the actual hiring market. For a Vietnam-based team, this means Vietnam market rates, not US or Singapore benchmarks. Industry salary surveys for Vietnam's tech market report monthly bands of roughly $800 to $5,000 for Full-stack developers, $700 to $1,500 for QA/QC, $1,300 to $3,900 for DevOps, and $1,000 to $4,000+ for Business Analysts and Project Managers, with the wide range driven almost entirely by seniority. (Always cross-check these ranges against current recruitment data and regional salary reports before finalizing bands.)
Set the band width. A band that is too narrow (10-15%) forces constant re-leveling; one that is too wide (60%+) recreates the exact ambiguity you're trying to fix. A working range of 30-50% width between minimum and maximum is a reasonable industry starting point.
Place every existing employee into the band and flag outliers. This is the step most companies skip, and it's the one that actually catches compression. If three senior engineers with different tenure all cluster near the band minimum while a one-year mid-level hire sits near the mid-level maximum, that's your compression signal, visible before it becomes a resignation.
Publish the bands internally. Vietnam's Labor Code requires employers to establish and publicly post internal salary scales in the workplace, so this step is a legal obligation in addition to a retention practice, not an optional transparency gesture.
What Does a Compensation Band Table Actually Look Like?
A band table is the artifact that makes the structure usable day to day, listing role, level, and the minimum-midpoint-maximum range so anyone making an offer or a raise decision can check it against a fixed reference. Below is an illustrative structure using Vietnam market ranges; actual figures should be recalibrated against current market data and reviewed annually.
Role | Level | Monthly Range (USD) | Midpoint
|
|---|---|---|---|
Full-stack Developer | Junior | $800 - $1,600 | $1,200 |
Full-stack Developer | Mid | $1,600 - $3,000 | $2,300 |
Full-stack Developer | Senior | $3,000 - $5,000 | $4,000 |
QA/QC Engineer | Junior-Mid | $700 - $1,100 | $900 |
QA/QC Engineer | Senior | $1,100 - $1,500 | $1,300 |
DevOps Engineer | Mid | $1,300 - $2,500 | $1,900 |
DevOps Engineer | Senior | $2,500 - $3,900 | $3,200 |
BA / PM | Mid | $1,000 - $2,200 | $1,600 |
BA / PM | Senior | $2,200 - $4,000+ | $3,100 |
The table only stays honest if new hires are placed by demonstrated level, not by negotiating power. A junior candidate who negotiates hard should land at the top of the junior band, not move into mid.
What Review Cadence Actually Prevents Compression From Coming Back?
A one-time band-building exercise fixes today's compression but does nothing about next year's, because market rates keep moving and new hires keep coming in near the top of their band while raises for existing staff lag behind. The mechanism that prevents recurrence is a fixed annual review, not a reactive one triggered by a resignation.
Annual market recalibration: pull updated salary data for each role/level and adjust band boundaries. Market movement in Vietnam's tech sector typically runs 3-8% annually, though this varies by role and year.
Internal equity audit: re-run the "place every employee in the band" exercise every cycle, specifically checking whether new hires are landing above where tenured staff sit.
Raise budget tied to band position, not flat percentage: an engineer near the band minimum should get a larger proportional increase than one near the maximum, or the gap never closes.
Itemized payslip compliance check: Vietnam's Labor Code requires detailed, itemized payslips each pay period, which also functions as a built-in audit trail for band adherence.
Skipping any one of these turns bands into a document that was accurate once and misleading now.
Frequently Asked Questions
At what headcount should a company build formal compensation bands?
Most teams can operate informally below 15-20 people, but building bands before crossing 20 is better than after, since retrofitting bands onto an existing compressed team requires harder conversations and, often, one-time equity adjustments.
Do compensation bands apply to contractors or only full-time staff?
Bands are typically built for full-time roles. Dedicated team or ODC engineers working under a partner model are usually priced by the delivery arrangement rather than an internal band, though the same level-definition logic (junior/mid/senior) still applies.
How wide should a band be?
A width of roughly 30-50% between minimum and maximum is a common industry starting point; narrower bands force frequent re-leveling, wider bands reintroduce the ambiguity bands exist to remove.
Is publishing salary bands legally required in Vietnam?
Yes. Vietnam's Labor Code requires employers to establish and publicly post internal salary scales or wage bands in the workplace, in addition to the general requirement of equal pay for equal work.
What's the difference between a band and a step structure?
A band gives a role/level a minimum-to-maximum range with movement based on performance and market; a step structure assigns fixed pay points tied to tenure. Software roles typically use bands because skill variance within a level is high.
How often should bands be reviewed?
Annually at minimum, tied to market data refresh and an internal equity audit, since skipping a cycle is how compression re-forms.
Can AI tools help manage band data as headcount scales?
Yes for the administrative layer, tools like NotebookLM can organize and query market survey data during the research step, though the equity judgment calls (placing real employees into real bands) still require human HR ownership.
About 724SOFTWARE
724SOFTWARE is a Vietnam-based technology partner running dedicated engineering teams and offshore development centers for Fintech, Healthcare, and Enterprise ERP clients across 10+ countries. The company's own engineering organization, 200+ professionals with 58% at senior level, is structured on the same role-and-level banding logic covered in this article, which is part of why client teams built with 724SOFTWARE stay stable past the 20-person mark without the churn that pay compression usually causes.
Delivery is aligned with ISO 9001 and ISO 27001:2022 standards, GDPR compliant, and teams can scale from 1 to 50+ pre-vetted engineers in 2-4 weeks under a follow-the-sun support model with <10 minute incident response.
If you're scaling an engineering team past 20 people and want a delivery partner that already runs disciplined compensation and retention practices internally, get in touch with 724SOFTWARE at https://724software.com.vn/.
