Job Description
Swipe Savvy, Inc. (Orlando, FL) is hiring senior-capable software engineers to build and run Shop Savvy POS, a multi-tenant point-of-sale, payments and practice-management platform for restaurants, bars, retail, pharmacies and medical practices. This is a fully remote, full-time role on production systems that move money and handle protected health information.
Our stack: 16 NestJS/TypeScript microservices with Prisma over Aurora PostgreSQL on AWS ECS Fargate; Kotlin Multiplatform shared logic for Jetpack Compose (Android) and SwiftUI (iOS) apps; Castles, Sunmi and Kozen payment terminals with EMV and Tap to Pay; React 19 + Vite web portals; FHIR R4, HL7 v2 and X12 837 integrations; Terraform and GitHub Actions.
We hire across four tracks: Backend, Android / Kotlin Multiplatform, iOS and Web Frontend.
Requirements for every hire
• 3+ years (5+ preferred) of full-time professional engineering in your track's primary language, with at least 2 years on a production system with real users. Internships, bootcamps and personal projects don't count.
• A CS degree or equivalent professional experience.
• You design, write, test and debug production code without AI assistants, and can explain every line you submit. You trace defects to root cause with a debugger, logs, SQL and the source.
• Solid fundamentals: data structures, concurrency, transactions and isolation levels, HTTP/TLS, mobile memory and threading.
• Automated tests with every change, including integration tests against a real database.
• Experience with mandatory code review, CI gates and dev, staging and production promotion.
• Advanced Git (rebase, conflict resolution, bisect) and security by default: no secrets in code, input validation, tenant isolation, least privilege.
• Clear written technical English.
• Reliable high-speed internet, a quiet workspace, and substantial daily overlap with US Eastern Time.
Track requirements
Backend (TypeScript / NestJS): 3+ years of TypeScript on Node.js, 2+ on NestJS; strong PostgreSQL (query plans, locking, raw SQL); Prisma or similar ORM with live migrations; REST API design with DTO validation and idempotent writes; multi-tenant RBAC; JWT/HMAC auth; AWS (ECS, RDS, S3, SNS/SQS, IAM); Docker; Jest with integration tests. Preferred: Redis, WebSockets, Terraform, event-driven design, ledger and money-correct code.
Android / Kotlin Multiplatform: 3+ years shipping Kotlin Android apps; Jetpack Compose; Coroutines and Flow; deep Android lifecycle knowledge; Hilt or Koin, Ktor or Retrofit, SQLDelight or Room; Gradle Kotlin DSL; vendor SDK and hardware service integration. Preferred: KMP shared modules, POS/payment terminals and EMV, offline-first sync, on-device testing.
iOS (Swift / SwiftUI): 3+ years shipping Swift apps to the App Store; SwiftUI plus UIKit bridging; Swift concurrency and Combine; consuming a KMP framework; code signing and App Store submission; APNs, Keychain, universal links; XCTest. Preferred: Apple Pay or Tap to Pay on iPhone, white-label builds, SPM/XcodeGen.
Web Frontend (React / TypeScript): 3+ years of React with strict TypeScript; TanStack Query plus Zustand, Redux or Context; Vite and React Router; accessible (WCAG 2.1 AA), responsive UI with Tailwind; typed REST contracts with proper loading, error and permission states; Vitest/Jest, React Testing Library and Playwright or Cypress. Preferred: data-dense dashboards, real-time UI, Next.js, Electron.
Experience we value
Payments (auth vs capture, tips, voids vs refunds, PCI DSS, P2PE), POS workflows (split tender, end-of-day close, offline selling), healthcare (HIPAA, FHIR, HL7, X12 claims), white-label multi-tenant SaaS, and SOC 2 or other regulated delivery.
How we work
Every pull request is tied to a ticket and states how it was verified. Code moves from feature branch to develop, staging and main, with review at each step. A change is done only when full test suites, typecheck, build and integration tests pass. We test on physical devices, write root-cause reports for recurring bugs, and report exactly what ran, never \"it should work.\"
Hiring process
All technical stages are live, on camera, with AI tools turned off. Any AI use in stages 3 to 6 ends the candidacy.
1. Application: résumé, track, and a link to code you personally wrote.
2. Recruiter screen (30 min)
3. Live coding (60 min)
4. Live debugging (60 min)
5. System design (60 min)
6. Code walkthrough (45 min)
7. Two professional references
Position details:
Location: Remote | Type: Full-time | Hours: substantial overlap with US Eastern Time
Compensation: Competitive, based on experience and skills.
Swipe Savvy, Inc. is an equal opportunity employer. Candidates who need an accommodation during the process should tell the recruiter.",