Skip to main content

Perjalanan Saya Menjadi Software Engineer

· 6 min read
Jacky Rusly

Jacky

Perkenalan

Halo perkenalkan nama saya Jacky Rusly. Saat ini saya bekerja sebagai Senior Frontend Engineer. Di samping saya bekerja, saya juga menulis artikel-artikel di JRBlog dan menulis chord lagu di JRChord. Hobby saya adalah bermain multiplayer online games seperti Wild Rift atau Mobile Legends.

Perkenalan Dengan Pemrograman

Pada saat saya SMA kelas 1, ada satu mata pelajaran yang bernama TIK (Teknologi Informasi dan Komunikasi). Di pelajaran TIK, saya mendapatkan tugas untuk mencari nilai atau data pada Excel. Di sini saya mengenal formula-formula Excel seperti COUNT, SUM, VLOOKUP, dan HLOOKUP.

Pada mata pelajaran TIK, saya juga mendapatkan tugas untuk membuat program kasir menggunakan Visual Basic (VB). Di sinilah awal mula saya kenal dengan pemrograman. Pada saat membuat program menggunakan VB, saya merasa ada ketertarikan pada saat saya drag/drop untuk membuat form dengan menggunakan Label, Text Input, Checkbox, Radio dan Button.

Kuliah Computer Science

Karena ketertarikan saya pada pemrograman, akhirnya saya memutuskan untuk mengambil kuliah jurusan Computer Science di Universitas Bina Nusantara.

Saat liburan lulus SMA sebelum masuk kuliah, saya coba mengambil kursus pemrograman VB dan HTML (HyperText Markup Language). Pada awal kursus tersebut saya diajarkan Flowchart dan dilatih untuk mengembangkan logika. Kemudian diperkenalkan dengan tag-tag yang ada di HTML seperti html, body, footer, img, p, label, form, input, dan lainnya.

Semester 1

Pada saat masuk semester 1, mata kuliah yang paling berkesan adalah Algoritma dan Pemrograman Menggunakan Bahasa Pemrograman C. Di sini saya diajarkan bagaimana cara mencetak Hello World 😁, membuat kondisi if, and, dan or, membuat loop seperti while, for, dan do-while, dan membuat function yang dijalankan dalam bentuk console application.

Semester 2

Pada saat semester 2, mata kuliah yang diajarkan adalah Pemrograman Berorientasi Objek (Object Oriented Programming) Menggunakan Bahasa Pemrograman C++. Di mata kuliah ini, saya diajarkan bagaimana caranya untuk membuat class, interface, static variable dan lainnya.

Kemudian juga ada mata kuliah yang tidak kalah penting yaitu Struktur Data. Di mata kuliah ini, saya diajarkan Linked List, Stack, Queue dan Tree.

Namun disaat itu saya belum begitu mengerti bagaimana apply OOP dan Data Structure kedalam suatu program.

Semester Selanjutnya

Pada saat semester 3 dan selanjutnya, mata kuliah yang diajarkan itu adalah chart-chart dan diagram-diagram, kemudian Web Programming Menggunakan PHP, dan Database karena saya mengambil peminatan Database.

Skripsi

Project akhir saya adalah membuat program yang bisa melakukan Penjadwalan Ujian Secara Otomatis. Ini adalah hal yang paling mengesankan. Query yang diperlukan itu sangat kompleks karena harus mempertimbangkan:

  • Ruangan yang tersedia.
  • Jadwal tidak bentrok dengan jadwal lainnya.
  • Mata kuliah dengan aturan khusus.
  • Kapasitas ruangan.

Karir

Karir yang saya jalani sampai sekarang ini adalah:

  • Junior Programmer.
  • Software Developer.
  • Full Stack Developer.
  • Software Engineer ➡️ Technical Architect (Frontend).
  • Senior Frontend Engineer.

Junior Programmer

Di pertengahan kuliah saya, pada saat semester 5, saya mendapatkan pekerjaan pertama saya sebagai Junior Programmer. Di awal karir ini, pemrograman yang dipakai adalah:

  • Visual Basic.
  • PHP.
  • ASP.NET.

Hari pertama yang dikerjakan adalah setup XAMPP. XAMPP digunakan untuk menjalakan pemrograman PHP pada saat development. Di sini saya belajar belajar cara setting port apache di localhost agar tidak bentrok dan cara menjalakan website PHP.

Saya belajar banyak pada karir pertama saya saat itu.

SQL:

  • Bagaimana cara membuat Stored Procedure.
  • Bagaimana cara menggunakan Join, Left Join, dan Right Join.
  • Bagaimana cara menggunakan Cursor, Common Table Expression (CTE), dan Temp Table.
  • Syntax seperti COALESCE, SUBSTRING, dan CHARINDEX.
  • Optimasi table dengan menggunakan Index.

PHP:

  • Syntax yang ada di PHP.
  • Bagaimana cara execute Stored Procedure.

JavaScript:

  • Perkenalan dengan jQuery.
  • Memanipulasi DOM mengunakan jQuery.

Software Developer

Pekerjaan kedua yang saya dapatkan yaitu sebagai Software Developer. Tools yang dipakai adalah:

  • Node.js.
  • Aurelia.
  • React.
  • ASP.NET Core.
  • MongoDB.

Beberapa hal yang saya dapatkan ketika bekerja pada saat itu:

  • Belajar konsep yang bernama REST API.
  • Memakai Node.js untuk membuat API dan memakai Aurelia untuk membuat website.
  • Belajar tools yang sangat membantu developer yaitu git.
  • Pertama kali belajar bagaimana cara Software Development Life Cycle (SDLC) Scrum bekerja dan mempraktikkannya.
  • Belajar membuat Data Warehouse, konsep Fact Table dan Dimension Table.
  • Konsep unit test, tools testing pakai mocha dan chai.
  • Docker untuk kebutuhan integration testing.

Full Stack Developer

Pekerjaan ketiga yang saya dapatkan yaitu Full Stack Developer. Tools yang digunakan adalah React dan Node.js.

Di sini saya sudah mulai lebih tertarik ke bagian Frontend yaitu React.

Beberapa hal yang saya dapatkan ketika bekerja saat itu:

  • Membuat Progresive Web App (PWA).
  • Konsep Functional Programming.
  • Unit test menggunakan jest dan enzyme.
  • Midtrans integration (Frontend).

Software Engineer ➡️ Technical Architect (Frontend).

Pekerjaan keempat yang saya dapatkan adalah sebagai Software Engineer dan kemudian saya dipromosi menjadi Technical Architect (Frontend). Tools yang dipakai adalah:

  • Next.js
  • React Native
  • React Native Web
  • Tailwind CSS
  • TypeScript
  • Laravel
  • MySQL
  • Redis
  • MongoDB
  • Docker
  • Redux dan Redux Saga
  • Firebase

Beberapa hal yang saya dapatkan:

  • Migrasi dari Expo ke React Native CLI.
  • Meningkatkan performa aplikasi/website menggunakan Pure Component, memo (HOC), useMemo, dan useCallback untuk mengurangi re-renders yang tidak perlu.
  • Meningkatkan Lighthouse score pada website.
  • Mempercepat build time CI/CD menggunaan Docker Cache.
  • CI/CD upload images dan Next.js assets ke S3.
  • Debug dan menyelesaikan permasalahan server heap memory leak pada website.
  • Belajar interview kandidat Frontend.
  • Implementasi JS obfuscator untuk security pada website.
  • Migrasi ke CloudFront CDN.
  • Enable Brotli/Gzip compression.

Senior Frontend Engineer

Pekerjaan saya saat ini adalah sebagai Senior Frontend Engineer. Tools yang digunakan adalah:

  • Django
  • Docker
  • Vite
  • React
  • Netlify

Beberapa hal yang sudah didapatkan:

  • Override local time menjadi server time.
  • Buat pipeline Pull Request Validation untuk pengecekan ESLint pada saat Pull Request.
  • CI/CD Aplikasi React SPA ke CloudFront.
  • Website dokumentasi memakai Docusaurus.

Projects

Beberapa projects yang saya kerjakan diluar kerjaan saya.

JRBlog

JRBlog adalah website tempat saya menulis artikel-artikel yang saya ingin bagikan.

JRChord

JRChord adalah aplikasi/website chord dan lirik lagu rohani kristen.

JRSpace

JRSpace adalah portfolio saya dalam bentuk dunia game yang menggunakan Phaser 3.

Personal Website

Personal Website saya yang berisi biography dan portfolio saya.

Ester Wijaya

Ester Wijaya personal website.

House of Underwear

House of Underwear adalah website yang menampilkan produk-produk underwear.

Penutup

Terimakasih sudah membaca artikel Perjalanan Saya Menjadi Software Engineer. Semoga bisa menjadi inspirasi bagi teman-teman yang mau menjadi Software Engineer.