Careers
Build the workspace SMBs deserve
FirmWorks ships one product to thousands of Thai small businesses. The team is small, the surface is broad, and every commit lands in front of paying customers within a day.
Why FirmWorks
We replace five SaaS subscriptions with one workspace, focused on Thai SMBs. The codebase is a Next.js 16 + Drizzle + Neon monorepo organised into modules — every contribution ships to real customers with the next deploy, not next quarter. There is no abstraction layer between you and the buyer-visible surface, which is the way we keep the team small and the product opinionated.
How we work
Async-first. Bangkok HQ, remote-friendly across UTC+7 ± 4h so synchronous overlap stays sane. Decisions live in the repo (PR descriptions, AGENTS_BOARD.md, /docs proposals) instead of synchronous meetings. CI runs the typecheck + cross-tenant integration test on every PR; we ship to production multiple times a day.
Open positions
No public listings today. We hire when we have a clear gap and the runway to onboard properly — slow and deliberate beats fast and regretted. If you have a track record building Next.js + Postgres SaaS for non-Western markets, or you ship Thai-market accounting software, we want to hear from you regardless of whether a role is posted.
What we don’t do
- We don’t advertise free lunches, ping-pong tables, or vague mission statements. The interesting bits are the codebase and the customers — everything else is table stakes.
- We don’t do leetcode whiteboarding. Hiring conversations centre on a real FirmWorks problem (a backlog row, a recent incident, a surface you’d re-architect) with you walking us through the trade-offs.
- We don’t require relocation. Bangkok is our centre of gravity but the team collaborates across time zones and we’ll make the visa case for talent in the UTC+7 ± 4h band when there’s a fit.
Get in touch
Email hiring@firmworks.com with a one-paragraph intro and the link you’d most like us to read — GitHub profile, blog post, side project, or production system. We reply within 5 business days.