How we take care of our team
We believe great work comes from happy, healthy, and supported people.
Remote-first with intentional onsite time
Work from wherever you're most productive. Quarterly onsites hosted in rotating cities focus on strategy, empathy interviews, and team bonding.
Comprehensive health & wellness
Competitive medical, dental, and vision coverage plus monthly wellness stipends and access to mental health resources.
Flexible PTO & recharge weeks
Minimum of three weeks PTO plus two company-wide recharge weeks. We trust you to balance impact with rest.
Learning & development budget
Annual allowance for courses, conferences, and certifications. Managers partner with you on growth plans.
How we work
These aren't guidelines we aspire to, they're the actual constraints the codebase enforces. If you join Thorbis, you'll work this way from day one.
Server Components first, always
Server-rendered product surfaces are the default wherever the workflow allows. No useEffect data fetching for server data, no client-side loading spinners where a Server Component will do. We use React.cache() to deduplicate queries across components during render.
Server Components by default Direct subpath imports, no barrel shortcuts
Every import comes from the specific subpath: @thorbis/ui/button, not @thorbis/ui. The lint rules enforce it. Barrel imports pull in code the bundler can't tree-shake, on a server-rendered Next.js app that shows up as cold start latency.
import { Button } from '@thorbis/ui/button' Zustand for shared state, never Context
Zustand stores in the web app cover shared filters, selection state, and real-time position. React Context is off-limits for shared state, it causes full subtree re-renders and makes debugging state transitions unnecessarily hard.
Stores in apps/web/src/lib/stores/ Database changes follow a mandatory sequence
Migration → RLS policy update → TypeScript type regen → security advisors → code update → documentation. Skipping any step creates inconsistency between the schema, the security model, and the TypeScript types. The sequence is non-negotiable.
Migration → RLS → types → advisors → code Life at Thorbis
We're a small team shipping real software to contractors who depend on it every day. Here's what that looks like in practice.
Async by default
We're spread across time zones so async communication is the norm, not the exception. You write clearly, share context proactively, and respect other people's focused work time. Meetings are short and intentional, most decisions happen in written threads.
Ship on a short cycle
Features go from spec to production in days, not quarters. We keep scope tight, use feature flags to decouple deploy from release, and iterate on real usage data. You'll see your work in the hands of contractors within a week of merging.
Customer proximity
Every team member joins at least one customer call per month, not as a listener, but as a participant. Engineers talk directly to dispatchers. Designers ride along on field visits. We don't insulate the team from the people using what we build.
Ownership without bureaucracy
There are no committees approving designs or architecture reviews that take three weeks. You own your work end-to-end: from database schema to RLS policy to TypeScript types to UI. You're trusted to do it right, and you're trusted to ask when you're uncertain.
Quarterly onsites
Four times a year the team meets in person, rotating cities, focused agendas. Day one is strategy. Day two is customer empathy: we visit contractor offices and watch their teams use Thorbis. Day three is team time. You come back with context that takes months to build remotely.
Written culture
Decisions are documented. Architecture choices have written rationale. The codebase has a 900-line CLAUDE.md that explains not just what the rules are but why. Good writing is a core competency at Thorbis, not something we outsource to a documentation team.
Join our growing team
Senior Full-Stack Engineer
Own full feature slices from database schema to UI. You'll work across Server Components, Server Actions, and Supabase RLS policies. The team ships weekly and expects engineers to drive architecture decisions, not just implement tickets.
Mobile Engineer
Build the technician field app that runs on job sites without signal. You'll design offline-first sync architecture, own the 800×240 signature canvas, and ship features that technicians depend on to capture photos, track materials, and collect payments in the field.
Product Designer
Own UX for dispatch, scheduling, and customer-facing workflows. You'll extend the design system, lead field research visits with HVAC and plumbing operators, and make complex scheduling data scannable for busy dispatchers.
Customer Success Manager
Guide contractors through migration, configuration, and the critical early weeks of live dispatch. Industry experience in HVAC, plumbing, or electrical is a genuine advantage, you'll speak the language of the operators you're supporting and earn their trust faster.
Growth Engineer
Own organic search, conversion rate optimization, and marketing analytics for the Thorbis site. You'll instrument the funnel, run experiments, and ship code, this is an engineering role that sits in a growth function, not a marketing role that occasionally writes SQL.
Our interview process
We respect your time. The process is transparent, predictable, and scoped to the work you'd actually do in the role.
- 1
Application review
2-3 business daysWe read every application. If your background is a fit, you'll hear from us within 2-3 business days with specific feedback on why we want to talk, not a form rejection.
- 2
30-min intro call
30 minutesA conversation with the hiring manager, not HR. You'll hear about the role, the team, and the specific problems we're solving. We'll answer every question you have about the company, the product, and what success looks like in the first 90 days.
- 3
Technical screen
60-90 minutesLive coding for engineers. Design exercise for product and design roles. We share the format in advance so you can prepare. No surprise algorithm puzzles, the exercise is scoped to work you'd actually do in the role.
- 4
Team interviews
3 conversations × 45 minThree 45-minute conversations with people you'd work with day-to-day. No whiteboard puzzles. No trick questions. We're evaluating how you think through real problems and whether you'll raise the bar for the team.
- 5
Offer
Within 5 business daysIf we're aligned, you'll have a written offer within 5 business days of your final interview. We don't string candidates along. The offer includes salary, equity, and benefits in plain language, no surprises.
You'll get specific, written feedback at every stage, not a form rejection. If we're not moving forward, we'll tell you why. If we are, you'll know within the timelines above.
What we look for
We hire for impact and character over pedigree and credential. These are the signals we look for regardless of the role.
Judgment, not just skill
We want people who know when to follow the established pattern and when to challenge it. The best engineers know when NOT to add a new abstraction.
Comfort with ambiguity
Product requirements evolve as we talk to customers. You adjust without losing momentum. You ask good questions before assuming.
Direct communication
We write clearly, push back when we disagree, and share bad news early. Diplomatic honesty is more valuable than polished hedging.
Ownership mindset
You notice things that aren't your job and fix them. You don't wait to be assigned a task when the need is obvious. You care about the outcome, not just the ticket.
Operator empathy
You're curious about the businesses we serve. You've talked to a dispatcher, visited a job site, or worked in an industry where schedules and margins matter.
Sustained quality
You ship features that hold up over time. You write tests for edge cases. You document decisions. You clean up what you break.
Frequently asked questions
Where is the Thorbis team located? +
Thorbis is remote-first across the United States and Canada. We organize quarterly onsites for strategic planning and customer research.
What does the interview process look like? +
Five steps: application review (2-3 days), 30-min intro call with the hiring manager, technical screen (60-90 min, no surprise puzzles), three 45-minute team interviews, and an offer within 5 business days of your final conversation. See the Interview Process section above for full details.
Do you sponsor visas? +
At this time we're hiring in the United States and Canada without visa sponsorship. We revisit sponsorship options annually as we scale.