
Sr. Node.js / TypeScript Engineer - System Migration (Contract)
- Remote
- Engineering
This is a good fit for someone who enjoys understanding existing systems, figuring out where the edge cases are, and building software that operators can trust to move critical data correctly.
Job description
We're looking for a senior engineer to build a migration service that moves customers from a legacy payments platform into a core platform.
The source system is a legacy PHP application with a SQL database. The target is a set of REST APIs. The work involves understanding the existing data model, mapping it to the new platform, and building a reliable migration service that can be run repeatedly for different partners.
Migration sizes range from a handful of records to hundreds of thousands.
Job requirements
What You'll Be Working On
Reading data directly from a legacy SQL schema
Mapping legacy entities to current API models
Building migration workflows that can start, stop, resume, and retry
Tracking migration progress and failures
Handling large migrations that may run for hours or days
Working through cases where source and target systems don't map cleanly
Integrating with payment, merchant, user, subscription, and token-related data
Some payment data may require access to encrypted values within the source environment before being sent to the destination platform.
Tech Stack
TypeScript / Node.js
SQL
REST APIs
Docker
Kubernetes
What We're Looking For
Strong TypeScript and Node.js experience
Data migration and ETL experience
Seasoned Experience with Docker and Kubernetes in production
Comfortable working directly with relational databases
Experience building backend services and long-running background processes
Good systems design instincts around reliability, observability, and recovery
Able to work through incomplete requirements and messy legacy systems without needing everything specified up front
Bonus Points
Payments or fintech experience
Experience with PHP (in order to reverse engineer any undocumented legacy API interactions)
or
All done!
Your application has been successfully submitted!
You've already applied for this job
We appreciate your interest in this position. Unfortunately, you have already applied for this job.