
Senior Full-Stack Developer/ 1 week ago
Quick Summary
About Us
We build SmartRez — a multi-tenant SaaS booking and reservation platform used by tour operators, rental businesses, and activity providers to manage products, availability, payments, waivers, and on-site operations. Our product spans a customer-facing booking widget, a staff-facing operations console, a native iOS/Android app for crews on the ground, and a kiosk app for waivers and check-ins.
The role
We're looking for a Senior full-stack developer who leads on the frontend and is fully comfortable owning vertical slices through our Laravel backend. You'll set the bar for code quality, drive architectural decisions across our codebase, and mentor mid-level engineers — while still shipping meaningful code every week.
This is a hands-on senior role, not a manager track. You'll spend most of your time building, but we expect you to:
- Own complex features end-to-end across web, native, and backend without hand-holding.
- Make architectural calls — pick the right abstraction, identify when something needs a rewrite vs. a patch, and push back on requirements that don't make sense.
- Raise the technical bar through code review, pairing, internal docs, and example-setting in PRs.
- Spot the second-order effects: performance regressions, N+1s, schema decisions that will hurt us in 6 months, UI patterns that won't scale across tenants.
What you'll work on
- Major features and platform initiatives across our web app, mobile app, and kiosk app.
- Architecture of shared business-logic layers — types, services, and data-fetching hooks consumed across all clients.
- Backend ownership in Laravel: complex Eloquent relationships, queued jobs, policies, multi-tenant data flows, migration strategy on production-sized datasets.
- Performance and scale work: query optimization, render performance, bundle size, eager-loading strategies, caching layers.
- Integrations with Stripe (incl. Terminal), Square, Twilio, Postmark, and partner APIs — including the design discussions, not just the wiring.
- Reviewing PRs across the team, mentoring intermediates, and improving the codebase's conventions where they're missing or inconsistent.
Required (frontend)
- 5+ years of professional React and TypeScript, with deep familiarity with hooks, context, advanced patterns, and the React rendering model.
- Strong Next.js experience. You can reason about trade-offs and have shipped non-trivial Next.js apps to production.
- Deep experience with React Query (or similar). You've designed cache strategies for complex apps — query key hierarchies, optimistic updates, dependent queries, mutation invalidation, infinite queries.
- Strong opinions about TypeScript: you reach for generics, conditional types, and discriminated unions when they earn their keep, and you can explain the trade-offs.
- Experience leading frontend architecture decisions — state management strategy, data-fetching patterns, component design systems, code organization at scale.
- A practical sense for performance: you've used the React Profiler, dealt with bundle-size regressions, and understand virtualization, code splitting, and Suspense.
- Tailwind CSS and fluency with modern form libraries (Formik/Yup, RHF/Zod) and their trade-offs.
- A track record of leaving codebases meaningfully better than you found them.
Required (backend)
- 3+ years of PHP / Laravel in production. You can architect a feature backend without supervision: form requests, policies, queued jobs, events, model states, transactions, idempotency.
- Strong MySQL skills. You read EXPLAIN plans by reflex, know when to add indexes, and understand the implications of large-table migrations and locking behavior.
- Experience with multi-tenant systems — per-tenant databases or logical multi-tenancy patterns.
- Solid grasp of REST API design, auth (Sanctum/JWT), and security fundamentals (auth-Z, input validation, secure handling of payment data).
- Comfort with queues / async processing — designing jobs that are idempotent, retryable, and observable.
Bonus points
- React Native / Expo experience and shipping via EAS — we'd love you to be productive on mobile too.
- Real-world payment integration experience (Stripe Connect, Stripe Terminal, Square) — chargebacks, payouts, reconciliation, edge cases.
- Experience with high-volume MySQL or read-replica setups; horizontal scaling of Laravel apps.
- Experience designing or maintaining a design system / component library.
- E2E testing strategy at scale — Playwright, Cypress, or similar.
- Observability and incident response — Sentry, PostHog, runbooks.
- Monorepo tooling — Turborepo, pnpm workspaces, build caching, CI optimization.
- Mentoring and tech-leading prior teams.
Our tech, briefly
Frontend — Turborepo monorepo with Next.js (web), Expo / React Native (mobile), and a kiosk app, sharing a common business-logic layer. React Query for data, Tailwind for styling, Playwright for E2E, Sentry + PostHog for observability.
Backend — Laravel on PHP 8.4, MySQL, Redis, Horizon for queues. Multi-tenant with per-tenant databases. Stripe, Square, Twilio, Postmark integrations.
Process — PR-based reviews, automated linting and type-checking, CI/CD.
How we work
Async-first with focused sync time. We expect senior engineers to drive clarity in writing — RFCs, design notes, sharp PR descriptions, decisions documented where the team can find them.
- Small, focused PRs; tests for backend changes; type-checks and lint must pass before merge.
- We expect senior engineers to set the standard — your PRs are examples, your reviews teach, and you push back constructively when something's wrong.
- You own outcomes, not just tickets. If a feature needs a discovery call, a schema review, or a perf investigation before it ships, that's your call to make.
Job Type: Full-time
Pay: From $80,000.00 per year
Work Location: Remote
