Cloud Migration Engineer (GCP ? Azure)

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Any

WAGE / SALARY

open for negotiation

HOURS PER WEEK

TBD

DATE UPDATED

Jun 5, 2026

JOB OVERVIEW

Company Overview
We are a digital health platform delivering AI-driven music therapy solutions to nursing home facilities across the United States. Their current infrastructure runs on Google Cloud Platform (GCP), utilizing NestJS/TypeScript microservices, Python FastAPI ML services, MySQL 8, Redis Cluster, Pub/Sub, Flutter mobile applications, and an Angular dashboard.

Role Overview
We are looking for a highly experienced Cloud Migration Engineer to lead and execute a full migration from GCP to Microsoft Azure. This is a hands-on technical role for someone with proven real-world production migration experience using both gcloud and az CLI environments. The selected candidate will work closely with the engineering team to architect, execute, and complete the migration while ensuring system stability, scalability, and minimal downtime.

Key Responsibilities
• Lead the end-to-end migration of Rubato’s infrastructure from GCP to Azure.
• Map existing GCP services to Azure equivalents and recommend the best architecture solutions.
• Execute phased migration plans with minimal or zero downtime.
• Handle cross-cloud migration of MySQL databases and Redis state management.
• Configure and manage Azure infrastructure components including networking, security, storage, and identity access management.
• Conduct knowledge transfer sessions and provide post-migration support documentation.
• Collaborate closely with engineering and DevOps teams throughout the migration process.

Current GCP Stack
• Cloud Run
• Pub/Sub
• Cloud SQL MySQL
• Memorystore Redis
• Secret Manager
• Cloud Storage
• IAM

Target Azure Stack
• Azure Container Apps or AKS
• Azure Service Bus
• Azure Database for MySQL
• Azure Cache for Redis
• Azure Key Vault
• Azure Blob Storage
• Entra ID / RBAC

Must-Have Requirements
• Proven production-level GCP ? Azure migration experience.
• Strong hands-on experience with:
o Azure Container Apps or AKS
o Azure Service Bus
o Azure Database for MySQL
o Azure Cache for Redis
o Azure Key Vault
• Experience working with containerized NestJS/TypeScript and Python FastAPI services.
• Strong MySQL operational knowledge including replication, backup/restore, and cross-cloud migration.
• Solid networking fundamentals including VNets, private endpoints, DNS, and egress control.
• Comfortable working directly with cloud CLI tools (gcloud and az).
• Strong documentation and communication skills for architecture mapping and knowledge transfer.

Nice-to-Have
• DevOps/SRE background.
• Experience supporting healthcare or HIPAA-adjacent platforms.
• Experience with Terraform or Infrastructure-as-Code tooling.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0365
Total Execution Time  0.0379
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,523,408 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Cloud-Migration-Engineer-GCP-Azure-1657348
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0305 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1657348
 LIMIT 1 
0.0011   SELECT *
FROM `employers`
WHERE `employer_id` = 794862
 LIMIT 1 
0.0155   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1657348
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-20',ej.date_added) duration_daysDATEDIFF('2026-06-20',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-06-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1657348' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1657348 
0.0007   UPDATE employer_jobs SET hit_counts '***May-28-2026=121***May-29-2026=58***May-30-2026=10***May-31-2026=3***Jun-01-2026=23***Jun-02-2026=20***Jun-03-2026=14***Jun-04-2026=11***Jun-05-2026=196***Jun-06-2026=47***Jun-07-2026=12***Jun-08-2026=21***Jun-09-2026=8***Jun-10-2026=9***Jun-11-2026=9***Jun-12-2026=7***Jun-20-2026=1' WHERE job_id'1657348'  
0.0007   UPDATE employer_jobs SET monthly_hits '***May-2026=192***Jun-2026=378' WHERE job_id'1657348'  
0.0011   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1657348' AND status LIKE 'sent%' ORDER BY id DESC  
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1657348 
0.0088   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '794862'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0004   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)