TL;DR: Full-stack developers in Thailand earn $2,500 to $6,000 a month working for international clients on our Node.js developer rate card, and we shortlist 6-8 candidates within 24 hours. The closest US benchmark, the BLS median for software developers, was $135,980 a year in May 2025.
In Node.js 22, a date formatted with the th-TH locale shows the year 2569, because that locale resolves to the Buddhist calendar. A full-stack developer in Bangkok builds screens that show Thai users that year, and APIs and databases that should store the Gregorian date instead.
Key takeaways
- Thailand's range opens $500 below Vietnam's full-stack card and tops out $1,000 below its $7,000+.
- React rated a December 2025 flaw in Server Components at CVSS 10.0, and listed Next.js among the affected frameworks.
- Thailand's data protection law reaches a US app that offers goods or services to users in Thailand.
- Node.js 20 is end of life, and from Node.js 27 every major version moves to long-term support.
What Full-Stack Developers Earn in Thailand Working for International Clients
Thailand's floor sits $410 above Malaysia's and $900 above the Philippines', while Vietnam's card opens and closes higher. The figures are what developers in each market earn working directly for foreign companies, before any employer or platform costs.
| Market |
Monthly pay working for international clients (USD) |
| Thailand |
$2,500-$6,000 |
| Philippines |
$1,600-$3,350+ |
| Malaysia |
$2,090-$5,040+ |
| Vietnam |
$3,000-$7,000+ |

Monthly ranges from the Remote (Working for International Clients) figures on our rate cards for Thailand, the Philippines, Malaysia and Vietnam, converted at ExchangeRate-API mid-market rates for 14 September 2026.
We publish no full-stack card for Thailand, so the Thailand row uses our Node.js developer rate card, the closest match for a JavaScript stack. That card publishes US dollars with a fixed ceiling, so it needs no conversion and carries no plus sign.
The other three rows come from full-stack cards; the Philippine and Malaysian cards quote pesos and ringgit, converted at ₱62.69 and RM4.07 to the dollar.
Our Vietnam full-stack page covers the pool with the highest range in this table.
Through Second Talent you pay one monthly fee that bundles salary, payroll taxes, statutory contributions and our service fee, quoted per role and market. Our pricing page explains the monthly subscription, and our full-stack developer cost-to-hire page sets out US freelance rates for the contract route.
US Pay Benchmark for Full-Stack Developers
BLS has no full-stack occupation. The role maps to Software Developers (SOC 15-1252), because a full-stack developer designs and builds the whole application, from the database schema to the React front end.
| BLS OEWS, May 2025, national |
Software Developers (15-1252) |
| Median annual |
$135,980 |
| 10th percentile, monthly |
$6,870 |
| 25th percentile, monthly |
$8,770 |
| Median, monthly |
$11,330 |
| 75th percentile, monthly |
$14,330 |
| 90th percentile, monthly |
$17,890 |
Monthly figures are the annual wages on the OEWS profile for 15-1252 divided by 12, rounded to the nearest $10.
The whole Thai range sits below the US 10th percentile. Compare candidates by what they shipped alone: a developer who took a product from schema to production belongs at the top of the Thai card, and one who built components inside someone else's design system does not.
Salary is only part of the US cost. In the BLS Employer Costs for Employee Compensation release for June 2026, wages and salaries made up 68.5% of employer compensation costs for full-time private industry workers, and benefits the other 31.5%.
Time Zone Overlap: Bangkok Against ET, CT and PT
A release your team ships at 4 pm Pacific in September reaches Bangkok at 6 am the next morning, and at 7 am after US clocks change. A developer there can read the overnight error logs and fix a broken checkout before your San Francisco team starts its next day.
Bangkok is on UTC+7 with no daylight saving. US daylight time runs from 8 March to 1 November 2026, per NIST.
The arithmetic: 4:00 pm PDT (UTC-7) is 23:00 UTC, which is 6:00 am in Bangkok. Under PST (UTC-8) the same release is 00:00 UTC, or 7:00 am.
| Bangkok shift (UTC+7) |
ET overlap (EDT / EST) |
CT overlap (CDT / CST) |
PT overlap (PDT / PST) |
Hours between 10 pm and 6 am |
| 9 am-6 pm |
0 / 0 |
0 / 0 |
0 / 0 |
0 |
| 5 am-2 pm |
0 / 0 |
0 / 1 |
2 / 3 |
1 |
| 2 pm-11 pm |
3 / 2 |
2 / 1 |
0 / 0 |
1 |
| 5 pm-2 am |
6 / 5 |
5 / 4 |
3 / 2 |
4 |
Overlap counts the clock hours of a nine-hour shift, including a one-hour break, against a 9 am to 5 pm US day.
The 5 am row gives a West Coast product team two or three live hours for demos and bug triage. The 5 pm row gives New York six hours in September, enough for pairing on a feature and a release review.
Under the Labour Protection Act, normal hours stop at eight a day and 48 a week (Section 23), and a rest of at least one hour comes after no more than five consecutive hours (Section 27).
Work past normal hours on a working day pays at least 1.5 times the hourly wage (Section 61). We set the shift before the offer, which is how our placements get 4-6 hours of daily overlap with US hours.
Full-Stack Developer Skills to Screen For

Three of the five areas come from the JavaScript stack itself: React Server Components, Node.js release lines and Intl APIs. The other two come from shipping to Thai users: Thai text and the PDPA.
React Server Components and CVE-2025-55182
The React team's advisory of 3 December 2025 disclosed an unauthenticated remote code execution flaw in React Server Components, rated CVSS 10.0. It affected versions 19.0, 19.1.0, 19.1.1 and 19.2.0 of the react-server-dom packages, with fixes in 19.0.1, 19.1.2 and 19.2.1. Next.js and React Router were among the frameworks listed.
Give the candidate a Next.js repo with a lockfile and ask whether the lockfile pins a vulnerable version, which package to bump and how they would prove the fix reached production.
Node.js 20 end of life and the next LTS
The Node.js releases page marks v20 as end of life, with v22 and v24 in long-term support and v26 as Current. It also says that from Node.js 27 the cycle becomes annual, and each major version moves to LTS after its Current phase.
Ask the candidate to plan a move from Node 20 to 24 for an Express API and its CI images, and to name what they would test first.
Thai dates in JavaScript
MDN's Intl.supportedValuesOf reference lists buddhist as the Thai Buddhist calendar, with the same months and days as the ISO calendar and a different epoch year. In Node.js 22, new Intl.DateTimeFormat("th-TH") resolves to that calendar and formats 15 September 2026 as 15/9/2569, while "th-TH-u-ca-gregory" gives 15/9/2026.
Show the candidate a booking form that sends a Thai-formatted date to the API. Ask where the conversion belongs and what the database column should hold.
Thai text in search and line breaks
MDN's Intl.Segmenter reference notes that splitting on spaces fails for languages that do not put spaces between words, Thai among them. A word-granularity segmenter for "th" splits สวัสดีครับยินดีต้อนรับ into four words in Node.js 22. Ask the candidate to build type-ahead search over Thai product names, then to explain what the server-side index does with the same text.
PDPA duties for an app with Thai users
Section 5 of the Personal Data Protection Act B.E. 2562 applies the Act to controllers outside Thailand that offer goods or services to data subjects in Thailand, or monitor their behaviour there. Section 37(5) then requires such a controller to appoint a representative in Thailand in writing, subject to the exemptions in Section 38.
Section 37(4) sets a breach notice to the Office within 72 hours where feasible. Ask the candidate which tables and logs in your app hold Thai users' personal data, and how they would export and delete one user's records on request.
Contractor or Employer of Record in Thailand
Software is not one of the nine categories of commissioned work that can be "work made for hire" under 17 U.S.C. § 101, and a transfer must be in writing and signed under § 204(a). List the repositories, the npm packages the developer publishes for you and the design assets in the assignment.
Thailand's Copyright Act B.E. 2537 includes computer programs in literary works (Section 4). Its defaults differ by route: work created on commission vests in the party that commissioned it unless the parties agree otherwise (Section 10).
Work created in the course of employment vests in the employee unless a written agreement says otherwise, with the employer entitled to communicate it to the public for the purpose of the employment (Section 9).
An assignment needs writing and the signatures of both assignor and assignee, and one with no stated duration is deemed to last ten years (Section 17).
IRS Publication 515 says the place where services are performed determines the source of the income, so a developer working in Bangkok earns foreign-source income. A foreign individual gives the payer Form W-8BEN to certify foreign status.
In Thailand, Section 41 of the Revenue Code taxes income from employment or business carried on in Thailand whether the client pays it inside or outside the country.
The Labour Protection Act defines an employee as a person who works for an employer in return for a wage, "regardless of the name given" to that status (Section 5, ILO English translation).
A developer on a monthly wage who joins your sprints and on-call rota can be an employee in law under a contractor label. Employers pay wages in Thai currency unless the employee consents to foreign currency (Section 54).
Our Employer of Record service puts the developer on a Thai employment contract and runs payroll, with local detail on our Thailand EOR page. This is a summary, not legal advice.
|
Independent contractor |
Employer of Record |
| Legal employer |
None; the developer invoices you |
The EOR's Thai entity |
| US paperwork |
Form W-8BEN from the developer |
Service agreement with the EOR |
| IP |
Commissioned code vests in you unless agreed otherwise (Section 10); add a signed full-term assignment (Section 17) |
Developer owns employment work unless agreed in writing (Section 9), so the contract assigns it and the EOR passes it on |
| Local labor law |
Employee status possible if you pay a wage for the work, whatever the contract is called (Section 5) |
Labour Protection Act hours, holidays and termination rules apply |
| Pay currency |
Agreed in the contract, often USD |
Thai baht payroll, unless the employee consents to foreign currency |
English Level and Working Norms in Thailand
Thailand's row in the EF English Proficiency Index 2025 reads 402, 116th of 123 countries and regions, against a global average of 488. The IT job-function score is 459. Bangkok scores 467 and Chiang Mai 453.
Reading is Thailand's strongest skill at 416 and writing its weakest at 363. Tickets, pull requests and API docs lean on reading; release notes and incident updates lean on writing. Test the writing: ask finalists to write the release note and rollback plan for the Next.js patch from the skills test.
The Labour Protection Act requires employers to fix at least 13 traditional holidays a year (Section 29). The Bank of Thailand's 2026 holiday list puts two in October, on the 13th and 23rd, and three in December. Thai banks close on those days, so check that refund and bank-transfer flows handle the gap before a checkout release.
Thanksgiving on 26 November 2026 is a working day in Thailand, so a Bangkok developer can watch a release while your US team is off.
Full-Stack Developer Hiring Process in Thailand

Second Talent's vetting covers stages 2 to 5 before you see a profile.
Stage 1: Define what the hire owns
Name the front end, the API layer, the database and the hosting, with versions: React or Next.js, Node.js release line, Postgres or MongoDB. Add whether Thai users are in scope, the locales the UI supports and a shift from the table above.
Stage 2: Application review
We look for a product the candidate took from schema to production: a live URL, the Node.js version it runs on and the part they built alone. Work for Thai e-commerce, travel or payments products counts when the candidate can explain how the app handled Thai text and dates.
Stage 3: Skills assessment
The candidate adds a feature to a small Next.js and Node.js app: a Thai-locale date field that stores an ISO date, a search box built on Intl.Segmenter and an upgrade of a vulnerable React package. We score the pull request, the tests and the release note.
Stage 4: Live technical interview with a senior engineer
A senior engineer reviews the submission with the candidate in English, then moves to design: caching and pagination for a product list, session handling across web and mobile, and the PDPA data map for one user.
Stage 5: Background and reference checks
We ask former managers what the candidate shipped alone, how their releases held up in production and how they handled access to customer data. You then choose the contractor or EOR route above.
Hire Full-Stack Developers from Thailand with Second Talent
We shortlist 6-8 candidates within 24 hours from 100,000+ pre-vetted engineers, accepting only the top 1% of applicants. Full-stack developers from Thailand come with $0 upfront, no lock-in and 4-6 hours of daily overlap with US hours. We handle contracts, payroll and equipment, with compliant EOR contracts in Thailand.
Our pricing page sets out the monthly subscription, our full-stack developers page compares the pool across Asia, and our Node.js interview guide has question sets for your own final round.