Job Description
Senior Full-Stack Engineer\n
Reports to: Head of Engineering
\n
Level: Mid–Senior (IC)
\n
Location: Remote
\n
Compensation: $100,000-$110,000
The role\n
You will own vertical slices of the platform end to end — GraphQL schema, Django services, migrations, Apollo-consuming React UI, and tests on both sides — inside a spec-driven, agent-assisted workflow. The backend is the harder half: calculation correctness, concurrency, multi-tenant isolation, and time handling are where the real work is.
What you will do\n
- \n
- Turn refined PRDs into Technical Documents precise enough for a coding agent to implement: schema, service boundaries, data changes, acceptance criteria, and the existing repo pattern to follow.
- Direct coding agents to produce the implementation, then review their PRs line by line against the Technical Document, AGENTS.md, and acceptance criteria before merge. Catch the tenant-isolation and timezone bugs an agent will not.
- Design GraphQL schema the frontend can consume without over-fetching; keep tenant scoping as a first-class argument and index.
- Write and harden service code that holds under concurrency: idempotent enqueue to the calc queue, compare-and-swap on state transitions, Decimal arithmetic for hours and money, timezone-correct pay-period boundaries.
- Add and extend Celery tasks and Beat schedules (dispatch, delivery, reconciliation) that stay testable without a running worker.
- Bring remaining admin screens onto live GraphQL contracts.
- Keep CI honest: regression suite green, no coverage erosion.
- Deploy to dev via GitHub Actions; work with our DevOps engineer on a limited basis on Terraform and the gated prod deploy.
- Triage Sentry across the three apps and the Celery services.
\n
\n
\n
\n
\n
\n
\n
\n
\n
Projects you would land in\n
- \n
- Period close and payroll delivery — finalization, blocking-vs-warning exception gates, deliveries, post-close adjustments.
- Calc queue completion — per-tenant concurrency caps, scope expansion, config pinning, state CAS, reaper hardening.
- Time-off finalization into payroll — accrual ledger to delivered hours.
- Scheduling — generate and publish from templates, conflicts, swap/claim/drop, schedule-vs-actual matching.
- Admin: locked to live — compensation models, premiums, rates, GL mapping, export mappings, messaging.
- Time capture — kiosk flows, geofence enforcement, device enrollment, punch verification.
- Production readiness — supporting our DevOps engineer on prod Terraform, multi-AZ RDS, secrets rotation, environment-gated deploys.
\n
\n
\n
\n
\n
\n
\n
Must have\n
- \n
- 3–5 years shipping production web software, with hands-on experience on both fronts: TypeScript/React and Python/Django.
- Designed and consumed GraphQL schemas in production (Graphene or equivalent; Apollo client-side), including codegen and cache behavior.
- PostgreSQL fluency: migrations against live data, composite indexes, constraints, transactions, advisory locks or equivalent concurrency controls.
- Built or maintained background job systems (Celery or equivalent): retries, idempotency, dead-lettering, periodic scheduling.
- Multi-tenant data isolation and role-based authorization as first-class design concerns.
- Correct handling of time: timezones, DST, period boundaries, Decimal hours.
- Has worked with AI coding agents on real deliverables: writes specs an agent can execute, and reviews agent output critically rather than rubber-stamping it.
- Writes tests as part of the change: Jest + Testing Library and pytest + factory-boy.
- Comfortable in Docker Compose, a pnpm/NX monorepo, and GitHub Actions.
- Reads unfamiliar code before writing new code; can cite the existing pattern being followed.
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Nice to have\n
- \n
- Django Channels / GraphQL subscriptions; WebSocket delivery to React.
- Terraform on AWS (ECS Fargate, RDS, ElastiCache, CloudFront); Serverless Framework.
- Time and attendance, scheduling, or payroll domain: overtime rules, meal/rest compliance, pay codes, accruals, prevailing wage, certified payroll.
- JWT/TOTP authentication, rate limiting behind proxy chains, secrets rotation.
- Stripe, SendGrid, WeasyPrint, OpenAI API.
- react-intl / formatjs, Storybook-driven UI work, accessibility.
- Experience maintaining AGENTS.md-style conventions or agent tooling for a team.
\n
\n
\n
\n
\n
\n
\n
Not a fit\n
- \n
- REST-only backgrounds with no schema-design experience.
- "Full-stack" meaning frontend plus a thin API.
- Engineers who consider a fixture-backed screen shipped.
- Someone who treats agent output as done once it compiles.
- Someone who expects infrastructure to be entirely someone else's problem; DevOps support is limited.
\n
\n
\n
\n
\n
