Platform Engineer
Seattle / Hybrid$175–205k
Full-time0.14–0.22% equity
$175–205k
Full-time0.14–0.22% equity
$165–195k
Full-time0.10–0.18% equity
$170–200k
Full-time0.12–0.18% equity
$155–185k
Full-time0.08–0.15% equity
$190–230k
Full-time0.18–0.28% equity
$180–220k
Full-time0.15–0.25% equity
$160–190k
Full-time0.10–0.20% equity
$150–175k
Full-time0.20–0.35% equity
$185–215k
Full-time0.16–0.24% equity
$140–165k
Full-time0.12–0.20% equity
Wire health checks to pager
Platform Engineer
$175–205k
SubmitPrototype mobile-first screens
Design Lead
$155–185k
SubmitDefine completion metrics
Product Manager II
$160–190k
SubmitBuild intake form flow
Ops Lead
$140–165k
SubmitWire health checks to pager
Platform Engineer
$175–205k
SubmitPrototype mobile-first screens
Design Lead
$155–185k
SubmitDefine completion metrics
Product Manager II
$160–190k
SubmitBuild intake form flow
Ops Lead
$140–165k
SubmitWire health checks to pager
Platform Engineer
$175–205k
SubmitPrototype mobile-first screens
Design Lead
$155–185k
SubmitDefine completion metrics
Product Manager II
$160–190k
SubmitBuild intake form flow
Ops Lead
$140–165k
SubmitDraft 3-touch email sequence
Growth Lead
$150–175k
SubmitAdd feature store hooks
ML Engineer
$190–230k
SubmitShip token updates
Staff Designer
$165–195k
SubmitDraft 3-touch email sequence
Growth Lead
$150–175k
SubmitAdd feature store hooks
ML Engineer
$190–230k
SubmitShip token updates
Staff Designer
$165–195k
SubmitDraft 3-touch email sequence
Growth Lead
$150–175k
SubmitAdd feature store hooks
ML Engineer
$190–230k
SubmitShip token updates
Staff Designer
$165–195k
SubmitWire Kafka to warehouse
Data Engineer
$170–200k
SubmitMap payloads to ledger schema
Full-Stack Engineer
$180–220k
SubmitAdd regression snapshots
Research Engineer
$185–215k
SubmitWire Kafka to warehouse
Data Engineer
$170–200k
SubmitMap payloads to ledger schema
Full-Stack Engineer
$180–220k
SubmitAdd regression snapshots
Research Engineer
$185–215k
SubmitWire Kafka to warehouse
Data Engineer
$170–200k
SubmitMap payloads to ledger schema
Full-Stack Engineer
$180–220k
SubmitAdd regression snapshots
Research Engineer
$185–215k
Submitimport { NextRequest } from "next/server"import Stripe from "stripe"import { db } from "@/lib/db"import { ledger } from "@/lib/ledger"const stripe = new Stripe(process.env.STRIPE_KEY!)async function onInvoicePaid(event: Stripe.Event) {const invoice = event.data.object as Stripe.Invoiceawait ledger.recordPayment(invoice.id, invoice.amount_paid)}async function onSubscriptionUpdated(event: Stripe.Event) {const sub = event.data.object as Stripe.Subscriptionawait ledger.syncSubscription(sub.id, sub.status, sub.current_period_end)}const handlers = {"invoice.paid": onInvoicePaid,"customer.subscription.updated": onSubscriptionUpdated,}await handlers[event.type]?.(event)export async function POST(req: NextRequest) {const payload = await req.text()const sig = req.headers.get("stripe-signature")const event = stripe.webhooks.constructEvent(payload,sig!,process.env.STRIPE_WEBHOOK_SECRET!,)if (await db.events.has(event.id)) return ok()await db.events.insert(event.id)await handlers[event.type]?.(event)return ok()}
Jordan credits only on invoice.paid, not on create or send. That keeps unpaid invoices off the balance and keeps Stripe retries safe to replay on failure.
Status and period end update together in one write. That avoids the usual drift where a renewal leaves an active plan with an expired period still showing.
Each event type routes through a handlers map instead of a growing switch. New Stripe events are one line and the rest of the flow stays untouched by the change.
Jordan Park
Palo Alto
Reviewed the brief in Linear and scoped the core problem.
Mapped flows in FigJam before building the model.
Shipped the UI in Figma and handed off the PRD.
Live shortlist
Updated nowMaya Chen
Product design
Jordan Lee
Frontend
Sam Okonkwo
Full stack
James · Jul 2026
Matthew Lisondra · Jun 2026
Team, Product · May 2026
Team, Engineering · Apr 2026
James · Mar 2026
Matthew Lisondra · Feb 2026
Team, Research · Jan 2026