Please mention DailyRemote when applying
Info on the Senior Software Engineer — Python-to-.NET Data Automation Migration (548) role
Ready to take the next step in your international career? We can support you!
Ubiminds is a GPTW-certified, people-first company that partners with American software product companies to scale their global teams. We connect top LATAM talent with international product companies while providing full employer-of-record support and long-term career development.
In this opportunity, you will join a global engineering organization undergoing an AI-native transformation, helping engineering teams adopt modern AI development workflows and significantly accelerate their productivity.
This role combines hands-on engineering expertise, AI tooling mastery, and developer enablement, helping teams integrate AI-powered workflows into their daily development processes.
Challenge
We are looking for an Senior Software Engineer — Python-to-.NET Data Automation Migration who will be the measurement backbone of the AI Accelerator engagement.
A short-term contract to consolidate, fix, and automate a set of existing data-movement scripts for the client. The scripts move data between two proprietary systems and are written in Python; some are functional and some are broken. The goal is a single, reliable, event-driven automated process that moves data from an AWS/S3 and Postgres source to a customer's preferred destination (MFT, S3 link, or SFTP), running in the client's .NET environment.
This process will be run repeatedly across hundreds of customers. Although the underlying platform is not intended to be long-lived, the engineering team will own and maintain this code after the engagement ends. Maintainability is therefore a firm requirement — the deliverable is clean, well-structured, documented .NET code that another engineer can pick up, not a throwaway one-off.
Reverse-engineer and fix existing scripts. Understand the current Python scripts (working and broken), diagnose why the broken ones fail, and correct or reimplement their intended behavior in .NET. The team understands the scripts but lacks the time to fix them — expect knowledge transfer, not a blank slate.
Port to maintainable .NET. Rebuild the logic in clean, well-structured C#/.NET that the team can
maintain and reuse across many customer runs.
Automate the event-driven flow. Replace manual script execution with an automated, event-triggered process covering segmentation, binding, validation, and copy/move.
Build robust error handling. Implement logging, alerting, and retry mechanisms. Alerts and errors must clearly state what went wrong, in language an operator can act on.
Document and hand off. Deliver a runbook and handoff documentation sufficient for the team to run, monitor, and troubleshoot the process going forward.
Strong C#/.NET development experience, with an emphasis on clean, maintainable, well-documented code intended for handoff to another team.
Ability to read and understand Python — enough to reverse-engineer logic and intent from existing scripts, including scripts that do not currently run.
Hands-on experience with AWS data services, especially S3, and with Postgres.
Experience moving data to MFT, SFTP, and S3-based destinations, and integrating via APIs.
Experience designing event-driven processing (e.g. S3 event notifications, queues, Lambda, or equivalent triggers).
Robust error-handling design: logging, actionable alerting, and retry/idempotency for unattended jobs.
Practical debugging skill — diagnosing failures in unfamiliar, partially broken code.
Works independently; can scope, sequence, and deliver on a fixed 2-month timeline.
Reverse-engineer and fix existing scripts. Understand the current Python scripts (working and broken), diagnose why the broken ones fail, and correct or reimplement their intended behavior in .NET. The team understands the scripts but lacks the time to fix them — expect knowledge transfer, not a blank slate.
Port to maintainable .NET. Rebuild the logic in clean, well-structured C#/.NET that the team can maintain and reuse across many customer runs.
Automate the event-driven flow. Replace manual script execution with an automated, event-triggered process covering segmentation, binding, validation, and copy/move.
Build robust error handling. Implement logging, alerting, and retry mechanisms. Alerts and errors must clearly state what went wrong, in language an operator can act on.
Document and hand off. Deliver a runbook and handoff documentation sufficient for the team to run, monitor, and troubleshoot the process going forward.
About Ubiminds
Our Culture
Perks and Benefits
As a Senior Software Engineer — Python-to-.NET Data Automation Migration @Ubiminds, you:
How our process works
1. Interview with Tech Recruiter (chat about the job opening and your experiences)
2. Client process (this may vary)
3. Offer (yay)
\nStop the endless job search. Our AI finds and applies to the best jobs for you.
Discover remote opportunities in Software Engineer
Answer easy questions
200,000+ jobs across 15+ categories
Get your best job matches
Only hand-screened, legit jobs
Find a remote job faster
No ads, scams, or junk
“ I was the first applicant for a remote marketing position that got listed on the company website the same day I applied. Had an interview within 48 hours!