Application-side migration leadership
Consolidated plans, test evidence, and technical risks; coordinated stakeholders, application validation, and release / rollback readiness across VM → Kubernetes → AWS migration.
Leading application-side delivery through a multi-stage migration, validating releases, and continuing optimization after go-live.
2023 – 2025 · Case studyInvoice Platform supports invoicing, PDF generation, email, APIs, and background jobs. The challenge was to move applications off a legacy VM platform, improve operability, and migrate to AWS while preserving business correctness.
Moved applications from VMs to Kubernetes in stages.
Migrated to AWS / RDS, validated through repeated rehearsals.
Completed post-migration workstreams: log migration, legacy dependency removal, and application operations optimization.
The infrastructure team provided a platform with bastions, dedicated instances for migrations and tasks, load balancing/Nginx, logging, and in-application Datadog instrumentation. Jenkins/Capistrano deployed Ruby services. IV comprised a Rails web application, Sidekiq/Redis background jobs, a Node.js/Puppeteer PDF generator, and internal/open APIs.
The system connected to an authentication gateway, tenant management, accounting services, and invoice uploads; integrations included SendGrid, S3, Datadog, Rollbar, and ElastiCache. Databases included a shared front-db, application and image databases, and a log database on an instance shared for centralized logging.
Moved the PDF generator first, then containerized applications and deployed them to Kubernetes while databases remained on Sakura VMs. Refactored CI/CD from Jenkins to GitHub Actions/CircleCI using ECR images and ArgoCD; Argo Workflows handled migrations and operational tools.
Moved the PDF generator first to measure performance and test blue–green deployment, then applied the approach to the main application. Validated functionality, environment settings, and network configuration before investigating latency in depth. Replicated Sakura databases to AWS RDS, keeping RDS read-only before cutover.
Ran repeated rehearsals, rolling back at the first issue without an immediate solution. Each round informed updates to switch procedures, rollback plans, and architecture. Validated application logic, database consistency, latency, fault tolerance/recovery, and autoscaling under load in sequence.
Recommended release only after issues had an agreed resolution, stakeholders understood the trade-offs, and the development team was confident in the migration. After cutover, continued reliability work, log-data migration, and legacy dependency removal.
Consolidated plans, test evidence, and technical risks; coordinated stakeholders, application validation, and release / rollback readiness across VM → Kubernetes → AWS migration.
Created release guides, monitoring criteria, and rollback strategies. Used rehearsal results to refine the design, mitigate risks, and prepare for cutover.
Analyzed worker saturation and dependency paths in invoice creation. Assessed capacity through application behavior, test evidence, and monitoring.
Led post-migration work; directly investigated, guided, and migrated activity / delivery logs to RDS. Coordinated backfills and legacy dependency removal with the team.
Reduced the web deployment by 10 pods to streamline resource use; implemented a move from IAM users to IAM roles with infrastructure and QA review and validation.
Accepted a phased migration and the risk of timeline changes. Measured green-environment latency first and tested shared-database migration approaches targeting zero or limited downtime. Used experimental results to establish feasibility and optimize cutover duration.
Coordinated with dependent services to understand plans, request support, and resolve cross-system bottlenecks. In the final report, around 90% of related services met agreed P50/P90/P95 thresholds, using Datadog measurements from the running production system as the baseline.
Helped QA set up JMeter and design scenarios that measured critical components. Consolidated Datadog metrics, test evidence, and risk mitigation into reports; adjusted plans and shared rehearsal results to build confidence with product managers and management.
Led PDF/S3 investigation across callbacks, jobs, and storage, identifying an ordering issue between data transfer and deletion. Optimized S3/Fog, validated on staging, and coordinated QA/release: latency for the released work fell to around 50% of its prior level. Separate benchmarks showed roughly 4× faster execution when PDF fetching was removed and 2× when image fetching was removed; these are distinct from post-cloud-migration results.
Created Jira/XP guidance covering Epics, milestone-based Stories, Tasks with clear inputs/outputs, and QA subtasks. Organized backlogs, coordinated delivery, and ran architecture workshops and operational knowledge transfer.