24 Oct
|
Elective
|
Vancouver
24 Oct
Elective
Vancouver
Elective is a Vancouver-based Series A fintech that has built the industry's first "Learn Now, Pay Later" solution designed to help world-class course creators, coaches, and educators sell more effectively. To date, Elective has supported over 100,000 consumers across North America investing in their education, all underwritten, funded, and serviced by Elective. The company has proven product-market fit with 8+ figures in revenue, more than doubling the business over the last 12 months, all profitably and without any dedicated sales or marketing spend.
As a Senior Software Engineer at Elective, nothing you build is invisible and you'll be in the room for planning, speccing, and debating architectural direction rather than just receiving it. Expect to be talking directly to the people who depend on what you ship: merchants, risk, finance, and customer care. This isn't a role where you inherit a stable codebase and a tidy backlog. You'll be working across a wide product surface, in a system where mistakes have consequences that show up on somebody's loan. If you've worked somewhere like this before and found it energizing rather than exhausting, you'll recognize the shape of it.
Ongoing Responsibilities:
- Contributing to the architectural direction. Helping set the new foundation, and planning the transition from the current system onto it.
- Working across the full product surface: checkout, merchant portal, risk and underwriting engine, loan management, and our public APIs.
- Designing for composition. Small pieces with strong contracts between them, built so the next person extends them rather than works around them. You'll be defining boundaries other engineers build against,
and deciding when a shared abstraction is earning its keep and when it's just coupling two things that should have stayed apart.
- Building for correctness on money movement. Every payment, disbursement, and ledger entry either reconciles or we know precisely why it didn't. Failure cases, retries, and recovery paths — not just happy paths.
- Owning the third-party integrations we depend on: payment processors, bank rails, credit bureaus, KYC providers. A meaningful share of the job is other people's APIs and the ways they fail.
- Operating what you ship. When something fails in production at 6pm, an engineer figures out why, and that engineer is sometimes you.
- Building the compliance surface as product: audit trails, access controls, and the evidence a regulated lender has to produce on demand. Work you'll do, not a constraint you'll work around.
- Owning your work from architecture through deployment in six-week cycles built around focus, purpose, and real product accountability — following Shape Up fundamentals.
- Rotating onto Firequad, our bug-hunting and improvement team, for a full six-week cycle when you're not shaped onto a feature. It's how we keep the debt from compounding, and it's the fastest way to learn a system this wide.
Our Stack:
TypeScript and Node throughout. PostgreSQL with Kysely (no ORM), Temporal for durable workflows on the money path, an Nx monorepo, GitLab CI, deployed on DigitalOcean behind Cloudflare.
The product surface is a mix we're actively consolidating: Next.js, Vue 2/3, and a large Express service holding the loan engine. We're converging on a Vite React SPA with tRPC over Hono, and clear module boundaries throughout. Tests run against real Postgres via testcontainers. We operate under heavy compliance lending regulations, so tooling, auditability, and access control are first-class concerns rather than afterthoughts.
About You:
- Four or more years of full-stack experience, leaning back-end, with a product-centric mindset. You build focused, functional interfaces rather than heavy UI.
- Robust TypeScript fundamentals. These matter more to us than having used our exact stack. If you've done this work in Go, Python, Java, or C# and want to write TypeScript, say so.
- Real Postgres depth; we do not use ORMs. You've evolved a schema against a live table, reasoned about isolation levels and lock contention, and know why a query got slow rather than guessing at an index.
- Experience with asynchronous and long-running work, and the instincts that come with it: idempotency, retries, partial failure, events arriving out of order. We use Temporal; having used it isn't required, having thought this way is.
- You've worked where the numbers had to be right: ledgers, reconciliation, billing, payments, or similar. The instinct to ask what happens when this doesn't work before asking what happens when it does.
- You've made product decisions you couldn't walk back. You've owned the outcome, not just the output.
- You use LLMs seriously in your daily work and can talk concretely about where they've made you faster and where you've learn
📌 Senior Software Engineer (Vancouver)
🏢 Elective
📍 Vancouver