Full Stack Software Engineer
SellAbroad
About SellAbroad
SellAbroad is building a cross-border commerce infrastructure that enables DTC brands to sell globally with:
Localized checkout
Global and local payment options
Duties and taxes automation
Order management and shipping integrations
Faster cross-border delivery
We operate across checkout, payments, OMS, shipping, and multi-currency billing with merchants in multiple regions.
Role Overview
We are seeking a backend-heavy full-stack engineer who can own major components of the platform, including:
Backend API services
Subscription and payment logic (Stripe)
PostgreSQL data modeling
OMS and order lifecycle logic
Webhooks and async workflows
React checkout and dashboard features
Infra, deployment, and production debugging
This role requires experience with production workloads, third-party integrations, and payment systems.
Responsibilities
Backend Engineering (Primary)
Build and maintain Node.js backend services
Design and maintain REST APIs
Handle async flows including 3DS, renewals, and retries
Own Stripe integration (payments, subscriptions, invoices, 3DS)
Maintain PostgreSQL schemas, queries, migrations, and indexes
Work with order lifecycle state transitions
Integrate external APIs (Shopify, logistics carriers, etc.)
Implement logging, metrics, and error handling
Write modular, maintainable, well-tested code
Integrations and Data Flows
Implement and consume webhooks (Stripe, Shopify, carriers)
Work with OAuth/API key authentication flows
Handle rate limits and retry logic
Implement idempotency patterns
Validate JSON and input schemas
Frontend (Secondary)
Modify or extend React-based checkout UI
Contribute to merchant/admin dashboards
Integrate Stripe.js payment components
Handle state management (Context, Zustand, Redux, etc.)
UI design skills are not required. Functional correctness and stability are primary.
Infra and DevOps
Deploy and operate services on AWS ECS/EC2/Lambda or similar cloud
Use Docker and Docker Compose for local environments
Maintain CI/CD pipelines (GitHub Actions, GitLab CI, etc.)
Work with metrics, logs, and observability tools
Required Technical Skills
Backend:
Node.js (primary)
TypeScript (preferred)
Express.js, Fastify, NestJS, or Medusa (any one is acceptable)
REST API development
Async JavaScript patterns
Error handling and logging
Unit and integration testing
Database:
PostgreSQL (schemas, joins, indexes, migrations)
Redis (nice to have, for caching or queues)
Payments (Required):
Experience with Stripe in real production workflows involving at least one of the following:
PaymentIntent API
Subscriptions
Invoices
Off-session charging
3DS authentication flows
Retry and dunning logic
Webhook orchestration
OMS / Commerce:
Understanding of:
Order lifecycle state transitions
Catalog and SKU structures
Basic tax, duties, or fulfillment concepts (nice to have)
Frontend (Checkout/Dashboards):
React (production experience)
State management (Context, Zustand, Redux, or similar)
Stripe.js integration experience
TypeScript (nice to have)
Infra / DevOps:
AWS ECS, EC2, or Lambda (or similar cloud platform)
Docker and Docker Compose
CI/CD tools (GitHub Actions, GitLab CI, CircleCI, or similar)
Nice to Have (Not Required)
Medusa.js, CommerceLayer, Saleor, or similar commerce backends
Shopify API experience
Logistics integration experience (Shiprocket, etc.)
Redis queues or caching
Event-driven architecture experience
Observability tools (Sentry, Datadog, Prometheus)
Multi-currency or multi-region payment systems
S3, CloudFront, and CDN handling
What Success Looks Like
Ownership of backend systems end-to-end
Reliable payment and subscription flows using Stripe
Robust webhook handling with retries and idempotency
Clean PostgreSQL models and queries
Ability to modify React checkout without breaking flows
Successful third-party integrations without regressions
Clear documentation and communication
Consistent debugging and tracing of production issues
Who You Are
Strong systems thinking habits
Understand payments and their effect on business metrics
Communicate clearly in distributed teams
Able to own features from design to deployment
Write maintainable code others can iterate on
Comfortable working in a small team with autonomy
Example Problem Spaces
Adding regional payment methods and BNPL
Reducing 3DS friction and improving approval rates
Implementing duties and taxes inside checkout
Building returns and refund logic
Integrating with third-party carriers and OMS providers
Improving order/event consistency and retries
Building V3 universal checkout architecture
Automating merchant onboarding flows
Stack Overview
Backend: Node.js, TypeScript, Express/NestJS/Medusa
Payments: Stripe
Database: PostgreSQL, Redis
Frontend: React, Stripe.js
Infra: AWS, Docker, CI/CD