Careers · Engineering · Product
Senior Full-Stack Engineer
Thorbis is pre-launch, and the roadmap says we do not leave the operating loop until it is production. This role exists to finish that loop (customer, estimate, job, invoice, payment) and make it correct enough that a real shop can run its Tuesday on it. Correctness over features: nothing on the Next list matters if an invoice can drift.
- Remote · US & Canada
- React 19
- TypeScript
- PostgreSQL
- Supabase
The work
What this role actually does.
Ship the loop
Build the customer → estimate → job → invoice → payment path in React 19 and TypeScript on the TanStack Start web app. Features go from spec to production in days, not quarters.
Own the data model
The schema is the product's spine. Design and defend the PostgreSQL model on Supabase: constraints as design tools, so a job record can't lie about its own state.
Make the money math boring
Payments in Core take card, Tap to Pay, check, cash, and bank, and long jobs bill in progress draws. A $10 card and a $40,000 draw run through the same records without drift.
Keep the bridge one-way
Thorbis posts to QuickBooks; the books stay in QuickBooks. Build and harden that one-way bridge so there is exactly one source of truth to audit.
Write the decisions down
Decisions are documented with their reasons, so the next engineer inherits the why. The rules of the codebase live in one long, honest file. You'll add to it.
What matters here
What you bring.
01
A correctness reflex
This is invoice and payment code. Boring and right beats clever and close, and you can tell the difference under deadline.
02
Judgment in ambiguity
Pre-launch means the spec is sometimes a contractor's sentence and a database constraint. You can turn that into shipped work without waiting for a ticket.
03
Comfort owning a schema
You have lived with a data model long enough to regret one, and you design differently because of it.
04
No field-service background required
We can teach the domain. Everyone joins at least one customer call a month, and the founder is a licensed contractor. Judgment over credentials.
The first ninety days
How the role starts.
Weeks 1-2
Ship something real
Read the decision log, sit in on a customer call, and land a small change in production. Short cycles start on day one.
Weeks 3-6
Own a slice of the loop
Take one path (estimate to invoice, or invoice to payment) end to end. Schema, server, screen, and the tests that keep it honest.
Weeks 7-12
Harden toward launch
Own a Core surface outright, including the QuickBooks posting behind it. Your decisions are in the file, and the loop is closer to production because of them.
The terms, in the open
No surprises at the end.
Compensation, in the open
Compensation is discussed openly in the first call: the thirty-minute intro with the hiring manager, not the final round. You'll have the number in writing before the final interview, and the offer itself arrives in writing within five business days of it. No stage of this process exists to find out what you'll accept.
Five stages, about four hours
A person reads your application within two to three business days. Then the intro call, a sixty-to-ninety-minute technical screen on work like the work (no surprise algorithm puzzles) and three forty-five-minute conversations with the people you'd ship with. The written offer follows within five business days of the final interview. All told, about four hours of actual conversation.
The benefits, as stated
Comprehensive medical, dental, and vision with monthly wellness stipends; a minimum of three weeks PTO plus two company-wide recharge weeks; and an annual learning budget. Roles are remote-first across the US and Canada with quarterly onsites in rotating cities. We don't currently sponsor visas (reviewed annually), and we'd rather say that here than three interviews in.
Apply
One email. A person reads it.
Send your story to careers@thorbis.com. A résumé helps, but the judgment shows in how you describe the work you’ve shipped.
