We're hiring a Backend Developer to ship the systems that handle real money, real customers, and real edge cases at Kwill.
You'll write production code in your first two weeks, own the payment, auth, and API surfaces of the app, and work side-by-side with the founder and a small senior engineering team. We hire on the strength of what you've built — not on years on a résumé, not on the school on your CV, and not on big-company brand names.
If you've spent the last year or two writing real production server code — TypeScript, Postgres, payment integrations, webhooks — and you care about correctness as much as you care about velocity, we want to talk to you.
About Kwill
Kwill is the client portal for the world's service businesses — one branded experience for proposals, e-signatures, invoices, and Stripe-powered payments. Our customers' clients experience it as the business's own brand, not Kwill's.
We're built global-first, with real users in 40+ countries. Our promise to customers is "Look like an agency of ten, even if you're a team of one." Our promise to teammates is plainspoken work, fast feedback, and ownership from day one.
The product is real and growing. The systems that quietly process payments, hold customer data, and run integrations need someone who treats them with the seriousness they deserve. That's the role.
Why this role exists
Backend is where Kwill's promises become true or break. When a freelancer in Lagos sends an invoice in INR and a client in Berlin pays in EUR, twelve things have to happen correctly in our backend for that to be a delightful moment instead of a support ticket. Stripe webhooks have to be idempotent. Multi-tenant data has to stay locked behind RLS. Background jobs have to retry without duplicating. Money has to reconcile to the cent.
We need someone who finds that work satisfying — not stressful — and who is excited to build the layer of Kwill that customers never see, but always feel.
What you'll work on
You'll rotate across the backend stack as the roadmap demands. In a given month you might:
- Build new Stripe payment flows — multi-currency invoices, local payment methods (UPI, SEPA, iDEAL, PIX), payouts via Stripe Connect.
- Design and review Postgres schemas with row-level security (RLS) for new product surfaces — multi-brand portals, team seats, role-based access.
- Write and harden Stripe webhook handlers that handle replays, retries, and out-of-order delivery without breaking.
- Build background jobs for invoice reminders, scheduled emails, retry logic on failed payments.
- Implement transactional and lifecycle email flows through Resend.
- Build internal admin tooling for support and ops — searching customers, refunding invoices, reissuing failed webhooks.
- Improve API performance: query plans, indexes, caching, edge functions.
- Take an end-to-end ownership of a feature with a frontend teammate — schema → API → server action → UI handoff.
- Read the last twenty support tickets, find the systemic backend issue underneath, and fix the cause.
You will write code that goes to production in your first two weeks. You will be expected to.
Our stack
You don't need to know every line of this on day one. You should be comfortable with most of it and excited about the rest.
- Application framework: Next.js 15 (App Router) with React 19 Server Components and Server Actions. The backend lives in the same monorepo as the frontend.
- Language: TypeScript, strict mode, everywhere.
- Database: Supabase — Postgres 15+ with Row-Level Security, Edge Functions, Realtime, and Auth.
- Payments: Stripe — Subscriptions, Checkout, Connect, Tax, Webhooks.
- Email: Resend for transactional and lifecycle email; React Email for templates.
- Background jobs: Lightweight queue (in evaluation — you'll have a voice).
- Hosting: Vercel (Edge + Node runtimes).
- Observability: Vercel logs, structured logging, error monitoring (Sentry-class).
- Tooling: ESLint, Prettier, Vitest / Playwright, GitHub PRs with Vercel previews, Conventional Commits.
We're looking for someone who…
- Has 1–3 years of professional or equivalent experience writing production server code. We count meaningful side projects, freelance work, contract work, and open-source contributions as equivalent.
- Writes confident TypeScript. Not "I've used it" — actually confident. You know the type system well enough to model real domain objects, not just any-stub your way through.
- Knows SQL. You can write a non-trivial Postgres query — joins, aggregates, subqueries — without LLM hand-holding. You understand what an index is and why missing one bites you at scale.
- Has shipped at least one project that handles real data — auth, payments, a database with users in it. You can point to it. You can talk about the trade-offs you made.
- Cares about correctness. Especially around money. You can articulate why webhook idempotency matters, what could go wrong in a race condition, and why "it works on my machine" is not a deploy criterion.
- Reads code well. You can drop into an unfamiliar Next.js / TypeScript codebase, understand the conventions, and make a change that fits.
- Writes clearly. Pull request descriptions, schema migration notes, post-mortems. Clear writing is part of the job.
- Is comfortable with ambiguity. Early-stage work is fuzzy. You should enjoy the parts where the answer isn't in the documentation yet.
- Speaks fluent English in writing. Hindi and Punjabi are bonuses for working with our local team.
You do not need:
- A computer science degree. We've hired self-taught engineers and bootcamp grads. We care what you've built, not where you went.
- Big-name brand experience. The best engineers we've worked with came from companies you've never heard of.
- To already live in Amritsar. If you're nearby (Jalandhar, Ludhiana, Chandigarh, Delhi) and willing to relocate, we'll help.
Nice to have, not required
- Stripe experience — Checkout, Connect, Tax, Webhooks. Bonus points if you've ever debugged a webhook race condition in production.
- Supabase or Postgres + RLS in production. RLS policy design specifically.
- React Server Components / Server Actions experience. You don't need to be an expert; you need to be curious about them.
- Background-job systems — BullMQ, Inngest, Trigger.dev, Temporal, or a custom queue.
- Email infrastructure — Resend, Postmark, SES — and React Email templates.
- Observability and on-call discipline — you've debugged a 2am incident and lived to tell the tale.
- A taste for clean APIs. RESTful or RPC-style — you've designed APIs another engineer was happy to consume.
- A side project, open-source contribution, or technical blog post you can point to.
- A second or third language. We're global; cultural fluency matters.
A typical week
- 5–6 hours of focused IC engineering per day — shipping PRs, reviewing, designing.
- One short daily standup (15 minutes, in person).
- One weekly product / engineering sync (60 minutes).
- One weekly 1:1 with the founder / your manager (30 minutes).
- One monthly company-wide retrospective + planning session.
No status theatre. No 14-person meetings where two people talk and twelve zone out. We work in person because it's faster and warmer, not because we like meetings.
What you get
- Real ownership. Your code ships. Your features have your name on them. You will see them used by real freelancers in 40+ countries within your first month.
- Senior mentorship. Code review, design review, and direct access to people who have shipped at scale.
- A flat, fast team. Direct access to the founder, weekly decisions you're in the room for.
- A competitive salary for Amritsar, generously benchmarked. We pay well, honestly. Discussed openly in the first call.
- Meaningful equity. This is real ownership in a company with real customers and revenue. We will explain the structure clearly and answer every question you have.
- Generous, flexible paid time off plus paid Indian holidays. We expect you to take real rest.
- Annual learning budget for books, courses, conferences, or anything that grows you.
- Working equipment — laptop, monitor, external keyboard, whatever you need. We'll get you set up.
- A monthly health stipend toward your health coverage.
- A small relocation stipend if you're moving for this role.
- A clear growth path. Strong performance moves you toward Senior Backend Engineer, Staff Engineer, or Engineering Lead as we scale.
Logistics
Location On-site at our Amritsar office, India.
Schedule In-office, Monday to Friday. Standard working hours.
HoursFull-time, ~40 hrs/week. Flexible within reason.
Compensation Competitive base + meaningful equity. Discussed openly in the first call.
Relocation Stipend available if you're moving from outside Amritsar.
Start date As soon as you can. Notice periods are respected.
Trial period Standard 3-month performance review.
Pay: ₹300,000.00 - ₹500,000.00 per year
Benefits:
Work Location: In person