Software Engineer
Description
KEJAR sedang mencari Software Engineer untuk bergabung dengan divisi Digital Technology. Dalam posisi ini, Anda akan bekerja mengembangkan dan memelihara sistem internal yang mendukung operasional cash-in-transit (pengiriman uang tunai) dan cash management (pengelolaan uang tunai). Sistem ini digunakan setiap hari oleh tim operasional di lapangan serta menjadi sarana pelaporan bagi klien perbankan kami.
Sistem yang digunakan mencakup backend berbasis Go, antarmuka web menggunakan React dan Next.js, serta aplikasi Android yang digunakan oleh tim operasional lapangan.
Kualifikasi Utama (Essential Skills)
Setiap kualifikasi berikut dilengkapi dengan gambaran penerapannya dalam pekerjaan, sehingga kandidat dapat menilai kesesuaiannya sebelum melamar. Kemampuan pertama merupakan aspek yang paling diutamakan dalam proses penilaian. Kemampuan lainnya dapat dikembangkan seiring waktu. Kami lebih mengutamakan kandidat yang memiliki kemampuan berpikir dan pemecahan masalah yang baik dibandingkan kandidat yang hanya menguasai bahasa pemrograman tertentu.
1. Logika dan Kemampuan Berpikir Sistematis (Logic and Systems Thinking). Mampu menganalisis permasalahan secara terstruktur serta memahami hubungan sebab-akibat. Contohnya, ketika terdapat kesalahan angka pada laporan, kandidat mampu menelusuri sumber permasalahan melalui query dan data, bukan sekadar menebak penyebabnya.
2. Kemampuan SQL. Memahami penggunaan JOIN, aggregation, indexing, serta kemampuan membaca query plan. Kemampuan ini digunakan secara rutin untuk kebutuhan laporan operasional dan mengidentifikasi penyebab lambatnya proses query.
3. Menguasai Minimal Satu Bahasa Pemrograman Statically Typed. Menguasai salah satu bahasa pemrograman seperti Go, Java, C#, atau TypeScript, serta memahami dasar-dasar HTTP dan REST. Dalam pekerjaan ini, kandidat akan mengembangkan fitur backend menggunakan Go dengan framework Fiber dan GORM. Namun, penguasaan Go tidak diwajibkan sejak awal.
4. Kemampuan Membaca dan Memahami Kode Program. Mampu membaca serta memahami kode program yang dibuat oleh developer lain. Mengingat sistem yang digunakan sudah memiliki basis kode yang cukup besar dan telah dikembangkan selama bertahun-tahun, sebagian besar pekerjaan akan diawali dengan memahami kode yang sudah ada. Setiap perubahan kode akan melalui proses pull request dan code review.
5. Pendidikan dan Pengalaman. Minimal lulusan Diploma (D3) dari jurusan STEM, seperti Ilmu Komputer, Teknik Informatika, Teknik, Matematika, atau bidang ilmu pengetahuan alam lainnya. Fresh graduate dipersilakan melamar. Kandidat lulusan bootcamp maupun belajar secara mandiri (self-taught) juga memiliki kesempatan yang sama, selama mampu menjelaskan kode program yang dibuat.
Kualifikasi Tambahan (Nice to Have)
Kualifikasi berikut merupakan nilai tambah, bukan persyaratan wajib. Seluruh kemampuan ini dapat dipelajari dan dikembangkan selama bekerja.
Memiliki pengalaman menggunakan bahasa pemrograman Go dalam proyek nyata atau memahami framework web yang menggunakan sistem routing dan middleware.
Memiliki pemahaman mengenai React atau Next.js, yang digunakan untuk membangun antarmuka sistem internal dan portal klien perbankan.
Memahami PostgreSQL lebih lanjut, seperti penggunaan index, execution plan, atau pengelolaan tabel dengan jutaan baris data.
Memahami penggunaan container seperti Docker dan Docker Compose, serta terbiasa menggunakan command line Linux.
Memahami konsep in-memory caching menggunakan key-value store seperti Redis.
Mengenal tools monitoring dan observability seperti Grafana atau Prometheus, serta mampu membaca application logs untuk mengidentifikasi permasalahan sistem.
Memahami proses code review, CI/CD pipeline (GitHub Actions, GitLab CI, atau sejenisnya), serta automated testing.
Memiliki ketertarikan terhadap pengembangan sistem operasional yang mengutamakan ketepatan dan keakuratan dibandingkan sekadar menghadirkan teknologi baru.