Dari Android Freelancer ke Full-Stack: Evolusi Stack Saya

Kalau ditanya “stack utama kamu apa”, jawaban saya berubah cukup jauh dalam beberapa tahun terakhir. Ini ringkasan perjalanannya, dan kenapa saya nggak nyesel pindah-pindah — walau jujur, di tengah-tengah prosesnya sering kerasa kayak nggak pernah beneran “jago” di satu hal, karena keburu pindah lagi ke area baru.
Fase Android (2019—2023)
Saya mulai sebagai freelancer Android di Koding Works — ngerjain pengembangan aplikasi Android, kolaborasi lintas tim buat fitur baru, perbaikan bug dan performa. Fokusnya sempit tapi dalam: UI native, lifecycle Activity/Fragment, integrasi API REST ke backend yang biasanya udah disediain tim lain. Empat tahun itu bukan waktu yang sia-sia — pola pikir soal lifecycle dan resource constraint dari Android ternyata banyak yang transfer ke area lain belakangan, walau saya belum tau itu waktu itu.
Merambah full-stack web
Di sela-sela dan setelah fase Android itu, saya mulai megang juga sisi backend dan frontend web — React di sisi client, Spring Boot buat backend Java-based, plus eksplorasi Python dan Go buat servis yang lebih ringan. Dorongannya bukan idealisme “saya mau jadi full-stack”, tapi kebutuhan yang lebih langsung: klien freelance sering nggak punya tim backend terpisah. Kalau saya cuma bisa Android, saya kehilangan proyek yang butuh solusi penuh dari ujung ke ujung — dan sebagai freelancer, kehilangan proyek itu artinya kehilangan penghasilan, bukan cuma “sayang aja”.
Awal-awal belajar full-stack itu nggak semulus yang keliatan di ringkasan ini. Beberapa bulan pertama saya sering bikin keputusan arsitektur yang belakangan saya sadar salah — misalnya nge-couple logic yang harusnya di backend malah ditaruh di frontend, cuma karena saya lebih nyaman di situ waktu itu. Butuh waktu buat kalibrasi ulang mana yang emang best practice dan mana yang cuma kebiasaan lama saya dari dunia mobile yang nggak nyambung ke web.
Fase desktop cross-platform (2023—sekarang)
Sejak Juni 2023 saya di Hantechno, ngerjain aplikasi desktop multiplatform buat koneksi VPN, remote desktop, dan security reporting, dibangun pakai Avalonia (C#), Golang, dan Python tergantung kebutuhan modulnya. Ini area yang jarang saya sentuh waktu awal karier, dan jujur waktu pertama ditawarin proyek ini saya sempet ragu — desktop app itu dunia yang beda banget sama web atau mobile yang selama ini saya kenal. Ternyata skill dasar (state management, networking, concurrency) banyak yang transfer dari pengalaman mobile dan web sebelumnya, walau syntax dan tooling-nya beda total.
Yang saya pelajari dari transisi ini
Stack spesifik itu alat, bukan identitas. Fondasi yang beneran penting — problem solving, baca dokumentasi asing dengan cepat, dan disiplin nulis kode yang bisa di-maintain orang lain — itu yang portable lintas platform. Bahasa dan framework tinggal dipelajari pas dibutuhkan. Yang saya nggak duga: makin sering pindah stack, makin cepat juga saya belajar stack berikutnya, karena saya jadi lebih jago ngenalin pola mana yang universal (state management, error handling, testing) dan mana yang spesifik ke satu ekosistem doang.