36 poin oleh GN⁺ 2025-11-10 | Belum ada komentar. | Bagikan ke WhatsApp
  • Engineer compiler adalah bidang rekayasa perangkat lunak yang bukan merancang bahasa pemrograman secara langsung, melainkan membuat bahasa yang sudah ada berjalan lebih cepat dan efisien
  • Peran ini hanya mencakup sebagian sangat kecil dari seluruh pekerjaan software engineer, dengan hambatan masuk yang tinggi dan permintaan yang terbatas
  • Perusahaan yang merekrut beragam, termasuk startup, perusahaan teknologi besar, akademia, sektor keuangan, dan proyek open source, tetapi kebanyakan berfokus pada kandidat berpengalaman
  • Dalam wawancara, penilaian berfokus pada implementasi algoritme berbasis C++, desain bahasa, optimisasi compiler, dan pengetahuan sistem level rendah
  • Proses persiapan dengan memanfaatkan kuliah MIT dan materi belajar open source, serta networking dan referral yang konsisten, menjadi kunci keberhasilan mendapatkan pekerjaan

Apa itu engineer compiler

  • Compiler adalah alat perangkat lunak yang mengubah kode yang ditulis dalam satu bahasa pemrograman menjadi bahasa lain
    • Engineer compiler bertanggung jawab atas implementasi dan optimisasi bahasa-bahasa tersebut
    • Perannya bukan merancang bahasa baru, melainkan meningkatkan efisiensi eksekusi bahasa yang sudah ada
  • Penulis bekerja di perusahaan teknologi besar di kawasan Teluk San Francisco untuk meningkatkan performa bahasa pemrograman

Alasan menulis artikel ini

  • Karena hampir tidak ada informasi online tentang cara mendapatkan pekerjaan di bidang compiler, artikel ini ditulis untuk memberikan panduan praktis bagi pemula dan lulusan baru
  • Materi tentang machine learning atau full-stack sangat banyak, tetapi konten terkait compiler masih kurang
  • Penulis membagikan pengalaman berhasil mendapatkan pekerjaan setelah sekitar satu tahun trial and error

Ringkasan karier pribadi

  • Lulus dari MIT pada 2023 dengan double major matematika dan ilmu komputer
  • Setelah menghentikan program magister berbasis riset, pada 2024 bekerja di startup di New York untuk mengembangkan ekstensi bahasa open source
  • Setelah itu pindah ke perusahaan teknologi publik di San Francisco

Tempat yang merekrut engineer compiler

  • Menurut Indeed, lowongan “software engineer” ada sekitar 116.000, sedangkan “compiler engineer” sekitar 400
  • Startup: peluang merekrut lulusan baru lebih tinggi, dan penulis juga memulai pekerjaan pertamanya di startup
  • Perusahaan teknologi besar: terutama perusahaan hardware dan otomotif seperti Tesla, Waymo, Nvidia
    • Pada perusahaan FAANG, ada kasus masuk melalui konversi dari program magang
  • Akademia: peluang terbatas karena penyusutan dana riset
  • Perusahaan keuangan kuantitatif: seperti Jane Street, Five Rings, menuntut kemampuan high-performance computing
  • Proyek open source: beberapa startup juga melakukan rekrutmen terkait area ini

Strategi resume dan networking

  • Referral adalah pendekatan yang paling efektif
    • Minta referral melalui kenalan atau kenalan dari kenalan
    • Dengan menuliskan "Rona likes compilers" di profil media sosial, penulis menandai minatnya dan berhasil membuka peluang networking yang benar-benar berujung pada wawancara
  • Latar belakang pribadi (kewarganegaraan AS, gelar MIT, dsb.) juga memberi keuntungan

Jenis wawancara

  • Algoritme gaya LeetCode: whiteboarding struktur data seperti BFS, priority queue, dan sebagian besar menggunakan C++
  • Desain bahasa: menulis grammar untuk bahasa sederhana di bawah batasan tertentu
  • Pertanyaan terkait bahasa pemrograman: bahasa pemrograman favorit dan alasannya
  • Representasi menengah (IR): interpretasi dan transformasi assembly x86, termasuk tugas berbasis MLIR
  • Optimization pass: dalam tugas MLIR, menulis algebraic simplification optimization pass, mengimplementasikan constant propagation dan dead code elimination
  • Dasar-dasar compiler: menjelaskan komponen compiler, teknik optimisasi, serta compiler statis vs dinamis
  • Teori graf: pertanyaan tentang representasi compiler berbasis graf seperti control flow graph dan register allocation (dipengaruhi topik skripsi sarjana penulis)
  • Topik sistem level rendah: deadlock, race condition, register tujuan khusus, instruction pipeline, alokasi memori, representasi dan operasi biner, garbage collection, dll.
  • Pertanyaan perilaku: berfokus pada motivasi seperti “mengapa ingin bekerja di compiler”

Proses persiapan wawancara

  • Belajar dengan berpusat pada kuliah MIT OCW
    • Computation Structures: konsep level rendah seperti pipeline, assembly, operasi biner
    • Computer Language Engineering: pengalaman C++ dan codebase skala besar
    • Performance Engineering: berfokus pada optimisasi performa, dan berperan menentukan dalam mendapatkan pekerjaan saat ini
    • Theory of Computation: membantu memahami desain grammar bahasa
  • Juga merujuk pada pembelajaran mandiri Advanced Compilers dari Cornell

Hal yang bisa diperbaiki dan pelajaran yang didapat

  • Tidak adanya mentor: menyadari perlunya networking lewat LinkedIn
  • Buku-buku teknis (Engineering a Compiler, Dragon Book) berguna untuk meninjau konsep, tetapi terbatas untuk persiapan praktik nyata
  • Tidak mencatat pertanyaan wawancara: sebuah kesalahan karena tidak merekam dan meninjau ulang pertanyaan setelah wawancara
  • Kurang aktif di open source: sempat meninjau proyek seperti Carbon dan Mojo tetapi tidak benar-benar berkontribusi. Open source efektif untuk belajar dan networking

Alasan memilih compiler

  • Penulis sempat mempertimbangkan program PhD matematika, tetapi setelah program riset musim panas REU, ia menginginkan pekerjaan yang dampaknya lebih langsung sehingga menambah double major ilmu komputer
    • Ia tertarik pada kemiripan antara cara berpikir teoretis dan pemrograman level rendah
  • Daya tarik pemrograman level rendah adalah perasaan membangun seluruh dunia dari prinsip-prinsip dasar, seperti matematika
  • Berbeda dengan sifat empiris machine learning, penulis lebih menyukai pendekatan membangun seluruh semesta dari aksioma
  • Di MIT, ada banyak orang yang disukai di komunitas compiler, dan dibanding bidang lain, karena uang serta ketenarannya lebih sedikit, bidang ini terasa membutuhkan sedikit sifat masokistis

Pasar kerja teknologi dan saran

  • Teman-teman penulis di Oregon (termasuk Oregon State dan universitas negeri non-elit lain) hanya mendapat sekitar 4 wawancara meski melamar ratusan posisi
  • Manfaatkan sumber daya semaksimal mungkin dan buat diri berbeda: ikut komunitas open source, gunakan media sosial, manfaatkan sumber daya kampus (bahkan memulai klub yang tak didatangi siapa pun)
  • Temui orang secara langsung: ikut kelompok baca sistem, dll. (disebutkan grup sistem New York milik Eric)
  • Penulis juga serius mempertimbangkan memulai channel YouTube compiler (meski canggung di depan kamera)
  • Aktivitas-aktivitas ini tidak menjamin pekerjaan secara langsung, tetapi meningkatkan peluang mendapatkan kesempatan

Kesimpulan dan pengalaman pribadi

  • Sebelum startup pada 2024, penulis tidak punya pengalaman industri terkait compiler
  • Dalam proses rekrutmen 2025, ia juga melamar posisi dengan upah per jam yang rendah, tetapi kesempatan itu jatuh kepada pelamar program PhD
  • Setelah 10 bulan dan puluhan wawancara, akhirnya berhasil mendapatkan pekerjaan, dan kini berfokus pada peningkatan performa program dalam hitungan milidetik
  • Penulis meminta orang-orang di bidang compiler untuk menghubunginya, serta menyebut awal baru di wilayah Palo Alto
  • Terakhir, ia membagikan kabar terbitnya novel berjudul You Had Me at Hello World

Belum ada komentar.

Belum ada komentar.