Senior Full-Stack Engineer

hairball io

📍 Remote🌐 Remote🕐 1mo ago🔗 himalayas

Job Description

### About Hairball Hairball.io is an Inc. 5000 e-commerce integration consultancy with 550+ client relationships in the Shopify, NetSuite, and Celigo ecosystem. We are building a new AI-powered SaaS product for our market. Details about the product will be shared during the interview process. ### The Role We need a senior full-stack engineer to build the multi-tenant platform foundation for a new SaaS product over a 6-month contract engagement. You will be the primary architect and builder of the core infrastructure. A junior JavaScript developer on the team will work alongside you, learning the stack and eventually owning day-to-day development after your engagement ### ends. This is a founding-level role. You are not joining a team — you are building the platform that a team will grow around. The architecture decisions you make in the first 8 weeks will shape this ### product for years. ### What You Will Build ### Months 1-2: Platform Spine * Multi-tenant database schema with PostgreSQL Row-Level Security (RLS) enforcement ### on every tenant-scoped table * Authentication integration with Clerk, including multi-organization switching (one user, ### many tenants) * Role-based access control for six user roles with JSONB-based extensible permissions ### and ABAC extensions * API call logging pipeline with full attribution chain (tenant → service → execution → ### result) * Super Admin and Tenant Admin interfaces ### Months 3-4: Billing & Integrations * Stripe Billing integration: subscriptions, metered usage-based pricing, Customer Portal * External API integration pipeline with encrypted credential storage per tenant * Connection management UI for tenant-managed third-party credentials * Configuration inheritance system: platform defaults → tenant overrides → user ### preferences * Feature flag and module entitlement system for gating product capabilities per plan ### Months 5-6: Hardening & Handoff * Security hardening: immutable audit trails, environment separation (sandbox + ### production per tenant) * Performance optimization and production readiness review * Architecture Decision Records (ADRs) and documentation for the team inheriting the ### codebase * Code review and mentoring of the junior developer to ensure smooth transition ### Technology Stack ### Layer ### Technology ### Notes ### Framework ### Next.js 14 App Router + TypeScript ### Hosted on Vercel ### Database ### PostgreSQL 16+ (Neon) ### Drizzle ORM. RLS is non-negotiable. ### Cache / Queue ### Upstash Redis ### Job queuing, rate limiting ### Auth ### Clerk ### Multi-organization support required ### AI ### Anthropic Claude (primary) ### Multi-LLM gateway planned ### Billing ### Stripe Billing ### Subscriptions + usage-based ### metering ### CI/CD ### GitHub + Vercel ### Branch-based deploys, PR workflow ### Required Experience These are non-negotiable. If you have not done these things in production, this is not the right ### role. * Multi-tenant SaaS architecture: You have personally built (not just contributed to) a multi-tenant application with tenant data isolation. You understand the difference between application-level tenant filtering and database-level enforcement. PostgreSQL Row-Level Security: You have implemented RLS policies in production. You know how to set tenant context per transaction and test for cross-tenant data ### leakage. Next.js 14+ App Router: You are current with App Router (not Pages Router). You understand server components, server actions, route handlers, and middleware. TypeScript: You write TypeScript fluently, not JavaScript with type annotations bolted ### on. Stripe Billing integration: You have wired up subscriptions, handled webhooks with signature verification, and implemented metered/usage-based billing. Multi-org authentication: You have implemented multi-organization auth (Clerk, Auth0, or similar) in a SaaS product. You understand session scoping per organization. ### Strongly Preferred Experience with Drizzle ORM (or Prisma with willingness to learn Drizzle) AI/LLM application development — calling LLM APIs, streaming responses, token ### tracking ### Vercel deployment and optimization ### Experience mentoring junior developers Prior work in e-commerce, fintech, or financial data platforms ### What We Provide Complete architecture spec: A detailed specification covering every subsystem you will build. You are implementing a well-defined plan, not designing from scratch. Deep domain expertise: The product owner has deep expertise in the target market. You will never be guessing about business requirements. Working prototype: The backend pipeline and database schema already exist. You are ### building on a foundation, not from zero. AI development tooling: Claude Code is available as a pair programmer. The spec documents are structured for AI-assisted implementation. Autonomy: You make the technical decisions within architectural boundaries. No micromanagement. Weekly video check-in, daily async on Slack. ### How We Evaluate Step 1 — Portfolio review (async). Send links to multi-tenant SaaS products you have built. We want to see architecture decisions, not algorithm skills. Step 2 — Architecture conversation (60 min). We share the product spec and ask you to walk through how you would implement the multi-tenant isolation layer. We are looking for awareness of edge cases and honest assessment of complexity. Step 3 — Paid trial task (8-10 hours). Implement a specific piece of the platform against the actual codebase. Compensated at your hourly rate. ### Logistics Schedule: 30-35 hours/week, flexible. Overlap with US Eastern for 3-4 hours daily. Communication: Slack (daily async), weekly 30-minute video check-in, GitHub PRs for ### all code. Documentation: Every architectural decision gets a brief ADR in the repo. Payment: Biweekly invoicing, Net-15. Rate negotiable based on experience Originally posted on [Himalayas](https://himalayas.app)
Senior Full-Stack Engineer at hairball io | MergeJobs