Commerce Payment Platform
Multi-currency checkout optimization, marketplace split payments via Stripe Connect, fraud prevention integration, and dispute management for millions of merchants.
Subscription Billing System
Per-seat subscription billing with team management, automatic seat adjustments, enterprise invoicing, and self-serve upgrade/downgrade flows.
Professional Plan Management
Tiered subscription handling with annual/monthly billing, educational discounts, team billing consolidation, and enterprise payment terms.
Marketplace Payments
Driver payouts via Stripe Connect with instant transfers, passenger charge management, complex fee splitting, and regulatory compliance across jurisdictions.
What Stripe Developers Actually Build
Before writing your job description, understand what Stripe work looks like at companies handling real money:
E-Commerce & Marketplaces
Shopify processes billions in payments through Stripe:
- Checkout optimization for conversion (payment method selection, saved cards, Apple Pay)
- Multi-currency handling for international merchants
- Split payments between platform and sellers
- Fraud prevention and dispute management
Lyft uses Stripe Connect for marketplace payments:
- Driver payouts with instant transfer options
- Passenger charge management and refunds
- Complex fee splitting between parties
- Regulatory compliance across jurisdictions
SaaS & Subscription Businesses
Notion manages subscription billing through Stripe:
- Per-seat pricing with automatic adjustments
- Team billing with multiple payment methods
- Usage-based components alongside subscriptions
- Invoice generation and tax compliance
Figma handles professional subscription tiers:
- Annual and monthly billing cycles
- Prorated upgrades and downgrades
- Enterprise invoicing with custom terms
- Educational and nonprofit discounts
Platforms & Developer Tools
Vercel bills usage-based infrastructure:
- Metered billing for bandwidth and builds
- Threshold alerts and spending caps
- Multi-project billing consolidation
- Self-serve upgrade flows
Linear (issue tracking) processes subscription payments:
- Seat-based pricing with automatic billing
- Free-to-paid conversion flows
- Team mergers and account transfers
- Dunning management for failed payments
Stripe vs Alternatives: What Recruiters Should Know
Understanding the payment landscape helps you evaluate transferable skills and make informed decisions.
Payment Processor Comparison
| Aspect | Stripe | PayPal/Braintree | Square | Adyen |
|---|---|---|---|---|
| Primary Market | Developers, startups, tech | Small business, consumer | Retail, in-person | Enterprise, global |
| Developer Experience | Excellent documentation, SDKs | Good, but fragmented | Moderate | Enterprise-focused |
| Subscription Billing | Native (Stripe Billing) | Third-party needed | Limited | Via configuration |
| Marketplace Support | Connect platform | PayPal Commerce | Limited | Platform integrations |
| Global Coverage | 135+ currencies | 200+ countries | US-focused expanding | 150+ currencies |
| Pricing Transparency | Clear percentage-based | Variable, negotiable | Simple | Enterprise pricing |
When Companies Choose Stripe
- Developer velocity: Best-in-class documentation and SDKs
- Subscription complexity: Native support for trials, prorations, metered billing
- Marketplace needs: Connect handles complex multi-party payments
- Modern stack: Webhooks, idempotency keys, and API-first design
- Global expansion: Single integration for 135+ currencies
When Companies Choose Alternatives
- Existing PayPal users: Consumer trust in PayPal checkout button
- Retail/in-person: Square's hardware integration
- Enterprise scale: Adyen's negotiated rates and account management
- Specific markets: Local processors for regulatory requirements
Skill Transfer Between Platforms
The core concepts transfer across payment platforms:
- Idempotency: All platforms require handling duplicate requests
- Webhooks: Event-driven architecture is universal
- PCI compliance: Data handling rules apply everywhere
- Fraud prevention: Similar patterns across processors
- Subscription logic: Billing cycles, prorations, dunning
A senior Braintree developer can become productive with Stripe quickly. The fundamentals matter more than the specific API.
Payment Integration Patterns: Beyond Basic Checkout
Most tutorials show simple checkout integration. Production systems require much more:
The Reliable Webhook Pattern
Webhooks are how Stripe notifies your system about events (successful payments, failed charges, subscription changes). They're also the most common source of payment bugs.
The Problem:
- Webhooks can arrive out of order
- Your server might be down when Stripe sends an event
- The same event might be sent multiple times
- Your database write might fail after processing
What Senior Developers Do:
1. Verify webhook signature (prevent spoofing)
2. Check if event was already processed (idempotency)
3. Process in a transaction with rollback capability
4. Return 200 immediately, process async if slow
5. Implement reconciliation jobs to catch missed events
Interview Signal: Ask candidates what happens if your webhook endpoint returns 500. Senior developers know Stripe retries for up to 3 days with exponential backoff.
Idempotency: The Non-Negotiable Pattern
Idempotency ensures that retrying a failed request doesn't create duplicate charges. This is critical for payment systems.
The Problem:
1. Customer clicks "Pay" button
2. Request sent to your server
3. Your server calls Stripe
4. Stripe charges the card successfully
5. Network timeout before response reaches you
6. Customer clicks "Pay" again
7. Without idempotency: customer charged twice
The Solution:
// Generate idempotency key from order ID or unique identifier
const idempotencyKey = `order_${orderId}_attempt_${timestamp}`;
const paymentIntent = await stripe.paymentIntents.create({
amount: 2000,
currency: 'usd',
}, {
idempotencyKey,
});
Interview Signal: Ask candidates how they'd handle a user clicking the payment button twice. Senior developers immediately mention idempotency keys and client-side button disabling.
The Subscription Lifecycle
Subscription billing has more edge cases than most developers expect:
State Transitions:
- Trialing → Active → Past Due → Canceled
- Active → Paused → Active
- Monthly → Annual (proration)
- Individual → Team (seat changes)
Common Gotchas:
- Prorating upgrades mid-billing cycle
- Handling failed renewal attempts (dunning)
- Tax calculation for different jurisdictions
- Invoice generation timing
- Credit application for downgrades
PCI Compliance: What Non-Experts Need to Know
PCI DSS (Payment Card Industry Data Security Standard) governs how cardholder data is handled. Stripe simplifies compliance, but developers must understand the boundaries.
Stripe's Compliance Model
Stripe Elements / Checkout (Recommended):
- Card details entered in Stripe's iframe
- Your server never sees card numbers
- Simplest compliance: SAQ-A (self-assessment questionnaire)
- No cardholder data touches your infrastructure
Stripe.js with Custom Forms:
- Card details tokenized client-side before submission
- Your server receives tokens, not card numbers
- Requires SAQ-A-EP (slightly more involved)
- More design flexibility
Direct API with Card Numbers:
- Your server handles raw card data
- Full PCI DSS compliance required
- Annual audits, penetration testing, extensive controls
- Almost never appropriate for most companies
What This Means for Hiring
Most Stripe integrations should use Elements or Checkout. Candidates who suggest handling card numbers directly either:
- Don't understand PCI implications
- Are working on legitimate edge cases (rare)
Interview Signal: Ask candidates how they'd build a payment form. If they suggest storing card numbers in their database, that's a red flag. If they mention Stripe Elements or Checkout, they understand the compliance landscape.
Recruiter's Cheat Sheet: Spotting Great Candidates
Conversation Starters That Reveal Skill Level
| Question | Junior Answer | Senior Answer |
|---|---|---|
| "How do you handle webhook failures?" | "We just retry" | "Idempotent processing with event deduplication, reconciliation jobs that compare Stripe state with our database daily" |
| "A customer was charged twice. How do you investigate?" | "Check the logs" | "Verify idempotency key usage, check for duplicate webhook processing, review PaymentIntent state vs our records, check for client-side retry bugs" |
| "How do you test payment flows?" | "Use test card numbers" | "Test mode with deterministic card numbers for each scenario, webhook simulation, chaos testing for failure modes, monitoring in staging before production" |
| "How do you handle subscription upgrades?" | "Call the API to change the plan" | "Depends on proration behavior, invoice timing, and whether it's immediate or end-of-period. Also need to consider entitlement changes and communication to the user" |
Resume Signals That Matter
✅ Look for:
- Specific transaction volumes ("Processed $2M monthly in subscription payments")
- Failure handling mentions ("Reduced payment failures by 40% through retry logic")
- Compliance awareness ("Maintained PCI SAQ-A compliance")
- Webhook architecture ("Built event-driven payment processing")
- Subscription complexity ("Implemented usage-based billing with tiered pricing")
🚫 Be skeptical of:
- "Stripe expert" without specific implementation details
- Only simple checkout integrations, no subscription or webhook experience
- No mention of error handling or failure scenarios
- Treating payments as simple CRUD operations
GitHub Portfolio Signals
Good signs:
- Webhook signature verification implemented
- Idempotency key generation logic
- Error handling for Stripe API failures
- Test coverage for payment flows
- Clear separation of payment logic from business logic
Red flags:
- Storing card numbers or CVVs
- No error handling on Stripe API calls
- Missing webhook signature verification
- No idempotency consideration
Where to Find Stripe Developers
Community Hotspots
- Stripe Discord & Developer Community: Active practitioners
- Fintech meetups: Payment-focused developers
- E-commerce conferences: Shopify, BigCommerce ecosystems
- SaaS communities: Subscription billing discussions
Transferable Backgrounds
Strong candidates may come from:
- Fintech companies: Direct payment experience
- E-commerce platforms: High-volume transaction handling
- Subscription SaaS: Billing system complexity
- Banking/Financial services: Understanding of financial regulations
- Other payment processors: Braintree, Square, Adyen experience transfers
Common Hiring Mistakes
1. Treating Stripe as "Just API Integration"
Payment systems are business-critical. A bug doesn't just cause a 500 error—it causes lost revenue, duplicate charges, or compliance violations. Hire for reliability engineering, not just feature building.
Better approach: Ask about failure modes and recovery strategies, not just happy-path implementation.
2. Not Testing for Webhook Understanding
Webhooks are where most payment bugs live. Many developers have only built synchronous checkout flows and don't understand event-driven payment architectures.
Better approach: Ask candidates to design a subscription renewal system. If they don't mention webhooks, they haven't built production billing.
3. Ignoring Compliance Knowledge
Developers who don't understand PCI compliance might build insecure systems. At minimum, they should know why Stripe Elements exists and when direct API usage is inappropriate.
Better approach: Ask how they'd build a payment form. The answer reveals compliance awareness.
4. Over-Valuing Stripe-Specific Experience
The concepts (webhooks, idempotency, subscriptions, compliance) matter more than Stripe's specific API. A senior PayPal/Braintree developer will learn Stripe's API quickly.
Better approach: Test for payment patterns and reliability thinking, not API memorization.
5. Underestimating Subscription Complexity
Subscription billing seems simple until you handle prorations, dunning, seat changes, annual-to-monthly switches, and tax calculations. This complexity requires experienced developers.
Better approach: Describe your actual billing scenarios and ask how they'd implement them.