Lewati ke konten
5 min read
AIA eBenefits App

AIA eBenefits memberi anggota AIA Employee Benefits Scheme di Singapura akses mobile ke manfaat asuransi, eCard, klinik rekanan, dan layanan klaim. Saya mengerjakan aplikasi production Android dan iOS ini sebagai Senior Engineer / Analyst dari Februari 2023 hingga April 2025.

Tangkapan layar aplikasi AIA eBenefits

Peran Saya

Saya menjadi bagian dari tim berisi lima engineer dan dua Business Analyst. Salah satu BA juga berperan sebagai delivery lead yang menjaga pekerjaan di Jira tetap selaras dengan release schedule. Tanggung jawab saya mencakup application modernization, dependency security, production debugging, implementasi, dan dokumentasi teknis.

Challenge: Direct React Native Upgrade

Aplikasi masih berjalan pada React Native 0.65. Native tooling dan dependencies yang menua meningkatkan maintenance cost, security findings, dan compatibility risk. Saya mendapat ownership penuh atas Jira task untuk memindahkan aplikasi production secara langsung ke React Native 0.74.

Melewati beberapa rilis framework sekaligus memusatkan perubahan besar selama bertahun-tahun ke dalam satu migrasi. Pekerjaan ini menyentuh konfigurasi build Android, Gradle, tooling iOS, CocoaPods, deprecated API, native modules, dan kompatibilitas third-party packages.

Pendekatan Modernisasi

Saya meng-upgrade framework beserta direct dan transitive dependencies, lalu menyelesaikan build failure untuk setiap platform. Beberapa package belum mendukung target environment dengan baik. Saya menggunakan patch-package agar compatibility fixes berukuran kecil tetap eksplisit, mudah direview, dan dapat direproduksi di local development maupun CI.

Aplikasi menggunakan Redux Saga untuk mengelola state dan side-effect orchestration. Menjaga business behavior existing sama pentingnya dengan membuat Android dan iOS kembali compile. Karena itu, setiap compatibility change saya perlakukan sebagai potensi product regression.

Tanggung Jawab Teknologi

Teknologi Fungsi
React Native Menjadi shared application foundation Android dan iOS yang saya upgrade langsung dari versi 0.65 ke 0.74.
TypeScript Memberikan type safety pada application logic, components, dan data contracts selama modernisasi.
Redux Saga Mengatur application state dan asynchronous side effects sambil mempertahankan business flow yang sudah berjalan.
Gradle Mengelola konfigurasi build Android dan kompatibilitas native dependencies yang terdampak framework upgrade.
CocoaPods Menyelesaikan dan mengintegrasikan native dependencies iOS selama proses migrasi.
patch-package Menjaga compatibility fixes pada third-party packages tetap eksplisit, mudah direview, dan reproducible di local maupun CI.
Snyk Menemukan vulnerable dependency paths yang saya triage dan remediasi melalui upgrade direct serta transitive dependencies.
Dynatrace Menyediakan production monitoring dan diagnostic context untuk investigasi customer-facing issues.
Azure DevOps Mendukung continuous integration dan delivery pipeline aplikasi.
Confluence Menyimpan design review, implementation context, dan validation evidence sebelum perubahan masuk ke main codebase.

Validasi dan Rilis

Unit tests melindungi logic yang sudah dikenal selama migrasi. Business Analyst kemudian melakukan manual regression testing pada core journeys, edge cases, dan platform-specific behavior untuk memastikan business rules tidak berubah.

Aplikasi hasil upgrade berhasil melewati validasi dan dirilis ke production. Hasilnya memindahkan codebase dari React Native 0.65 ke 0.74 sambil mempertahankan customer workflow yang sudah berjalan.

Dependency Security

Snyk secara berkelanjutan menemukan risiko pada JavaScript dependency graph. Saya melakukan triage dan meremediasi vulnerable paths melalui upgrade direct serta transitive dependencies. Beberapa contohnya:

Tidak setiap advisory memiliki runtime exposure yang sama dalam aplikasi mobile. Tugas engineering-nya adalah memahami setiap dependency path, menerapkan upgrade atau dependency-chain remediation yang tersedia, lalu memastikan aplikasi tetap berfungsi dengan benar.

Menyelesaikan Issue Production Intermiten

Salah satu issue yang dialami customer muncul secara intermiten di production, tetapi tidak dapat direproduksi di staging. Pendekatan test-and-retry biasa tidak cukup karena kegagalan tersebut bergantung pada user state, timing, dan device context.

Saya mengumpulkan analytics events yang relevan, menghubungkan urutannya dengan informasi perangkat, lalu merekonstruksi kondisi saat kegagalan terjadi. Bukti tersebut mengarah pada validasi yang belum lengkap dan sebuah race condition. Saya menambahkan defensive validation serta menyesuaikan execution flow agar operasi yang bersaing tidak lagi meninggalkan aplikasi dalam state yang tidak valid.

Investigasi ini mengubah komplain customer yang tidak konsisten menjadi fix berbasis bukti meskipun tidak tersedia reproduksi yang reliable di staging.

Observability dan Engineering Governance

Tim menggunakan Dynatrace untuk production monitoring dan Azure DevOps untuk delivery infrastructure. Sebelum fix atau feature digabungkan ke main codebase, kami mendokumentasikan context, design, dan validation di Confluence.

Praktik design review ini membentuk operational memory untuk tim. Ketika issue serupa muncul, engineer dapat menelusuri keputusan sebelumnya, membandingkan gejala, dan tidak perlu mengulang investigasi dari nol.

Kenapa Ini Penting

Aplikasi asuransi membutuhkan stability, traceability, dan change management yang hati-hati. Pekerjaan ini menggabungkan framework modernization, dependency remediation, regression discipline, dan production forensics tanpa mengubah customer workflow yang sudah terbentuk.