Standar Kerja Profesional dan Portfolio
Standar kerja yang membedakan engineer profesional, membangun portfolio yang berbicara sendiri, template README proyek AI, dan langkah konkret dari bootcamp ke karir.
Kemampuan teknis yang tidak bisa ditunjukkan adalah kemampuan yang tidak bisa diverifikasi. Bab terakhir ini membahas dua hal yang saling berkaitan: standar kerja profesional yang membedakan engineer yang bisa diandalkan dari yang sekadar bisa coding, dan cara mengemas pekerjaan yang sudah dilakukan menjadi portfolio yang berbicara sendiri tanpa perlu penjelasan panjang.
23.1 Standar Kerja yang Membedakan Engineer Profesional
Perbedaan antara junior dan senior engineer bukan hanya jumlah yang diketahui, tapi cara bekerja: konsistensi, komunikasi, dan kebiasaan yang terbentuk dari disiplin.
Git yang Bersih
feat: tambah semantic cache Redisfix: atasi timeout Pinecone querydocs: perbarui README deployment
README yang Fungsional
Wajib ada: apa yang dilakukan sistem, cara setup dari nol, environment variable yang dibutuhkan, cara menjalankan secara lokal.
Dokumentasi Kode yang Berguna
Docstring yang menjawab "mengapa": min_skor=0.45 dikalibrasi dari 200 sampel uji internal.
Komunikasi Progress
Progress: sudah selesai apa. Blocker: apa yang menghambat. Next: langkah selanjutnya. Butuh bantuan: spesifik.
Testing yang Bermakna
Minimal: test set RAG (15-20 pertanyaan), halucination test (5 pertanyaan), unit test fungsi kritis, health check endpoint.
Error Handling Defensif
Setiap panggilan eksternal: dibungkus try-except spesifik, ada timeout masuk akal, error di-log di server, pesan ramah ke pengguna.
23.2 Membangun Portfolio yang Berbicara Sendiri
Portfolio AI Engineer yang efektif bukan kumpulan proyek yang pernah dikerjakan, tapi bukti kemampuan untuk menyelesaikan masalah nyata dari awal hingga deployment. Perbedaannya terletak pada cara menyajikan, bukan jumlah proyeknya.
1. Pilih Proyek yang Menunjukkan Siklus Penuh, Bukan Potongan
Notebook Jupyter yang memanggil API OpenAI dan mencetak hasilnya. Script Python yang membuat embedding tanpa sistem di sekitarnya. Demo yang hanya berjalan di localhost tanpa deployment.
Sistem yang bisa diakses via URL publik, punya README dengan instruksi setup jelas, menangani error, menampilkan sumber, dan memiliki endpoint health check. Siklus penuh: problem, solusi, deployment, bisa diakses.
2. Tulis README yang Menjelaskan Keputusan Teknis, Bukan Hanya Cara Menjalankan
# Proyek RAG
Sistem RAG menggunakan LangChain.
## Cara Menjalankan
pip install -r requirements.txt
python main.py
# Sistem RAG untuk Dokumen Hukum
## Masalah yang Diselesaikan
Pengacara menghabiskan 3-4 jam mencari
preseden hukum manual. Sistem ini
mereduksi waktu tersebut menjadi <30 detik.
## Keputusan Teknis
- Chunk size 700 token: dikalibrasi dari
200 sampel dokumen hukum Indonesia
- Gemini Flash: dukungan BI lebih baik
dari GPT-4o untuk teks legal Indonesia
- FAISS lokal: data klien tidak boleh
keluar dari infrastruktur internal
## Demo
https://web-legal-rag.railway.app
3. Dokumentasikan Masalah yang Kamu Temui dan Cara Mengatasinya
Siapapun bisa mengikuti tutorial dan menghasilkan sistem yang "berjalan". Yang membedakan engineer yang berpengalaman adalah kemampuan mendiagnosis dan menyelesaikan masalah yang tidak ada di tutorial.
Tambahkan bagian "Tantangan dan Solusi" di README. Contoh: "Awalnya menggunakan chunk_size=1000 tapi precision retrieval rendah. Setelah eksperimen dengan test set 50 pertanyaan, chunk_size=500 dengan overlap=100 memberikan hasil terbaik. Lihat experiments/chunking_eval.py untuk detail evaluasi."
4. Tiga Jenis Proyek yang Paling Bernilai untuk Portfolio
- Sistem RAG end-to-end yang di-deploy: mengindeks dokumen nyata, menjawab pertanyaan, bisa diakses via URL publik, menampilkan sumber
- Agent dengan tool calling: agent yang memanggil setidaknya dua tools berbeda berdasarkan jenis pertanyaan
- Perbandingan teknis terdokumentasi: evaluasi kuantitatif, chunk_size mana yang terbaik, model embedding mana yang terbaik untuk Bahasa Indonesia
- Kontribusi ke dokumentasi atau open-source: memperbaiki dokumentasi, melaporkan bug dengan reproducible example
23.3 Template README Proyek AI
Template README lengkap yang bisa langsung disesuaikan. Bagian dalam kurung kurawal diisi dengan informasi spesifik proyekmu.
# [Nama Proyek]
> [Satu kalimat: apa yang dilakukan sistem ini dan untuk siapa]
> Demo: [URL jika sudah di-deploy] | Status: [Active/Archived]
## Masalah yang Diselesaikan
[Deskripsikan masalah nyata yang dihadapi pengguna, bukan masalah
teknis, tapi masalah bisnis atau workflow yang diperbaiki.
Sertakan angka jika ada: "menghemat X jam per minggu".]
## Arsitektur Sistem
[Diagram atau deskripsi singkat alur: bagaimana data mengalir
dari input pengguna hingga output. Sebutkan komponen utama:
embedding model, vector database, LLM yang digunakan.]
## Stack Teknologi
- **Backend**: FastAPI + Python 3.11
- **LLM**: [model dan provider]
- **Embedding**: [model embedding]
- **Vector DB**: [Pinecone / FAISS]
- **Deployment**: [Railway / Cloud Run]
- **Observability**: LangSmith
## Keputusan Teknis Utama
# Bagian ini yang paling membedakan README biasa dari yang luar biasa
- **Chunk size 700 token**: [alasan spesifik berdasarkan evaluasi]
- **Gemini Flash bukan Pro**: [trade-off yang dipertimbangkan]
- **FAISS lokal bukan Pinecone**: [constraint yang mempengaruhi]
## Setup Lokal
git clone [repo-url]
cd [nama-proyek]
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
# Isi API key di .env
uvicorn main:app --reload
## Environment Variables
Salin .env.example menjadi .env dan isi nilai berikut:
GEMINI_API_KEY= # dari Google AI Studio
PINECONE_API_KEY= # dari Pinecone dashboard
LANGCHAIN_API_KEY= # dari LangSmith (opsional, untuk observability)
## Evaluasi Kualitas
[Sertakan hasil evaluasi yang sudah dijalankan: skor retrieval,
skor generation, jumlah pertanyaan dalam test set.]
- Retrieval accuracy: [X]% dari [N] test case
- Hallucination rate: [X]% (pertanyaan di luar domain)
## Tantangan dan Solusi
[Dokumentasikan 2-3 masalah nyata yang ditemui dan cara
mengatasinya. Bagian paling berharga dari README.]
## Pengembangan Selanjutnya
[Apa yang akan ditambahkan jika ada lebih banyak waktu,
menunjukkan bahwa kamu berpikir tentang sistem secara utuh.]
23.4 Dari Bootcamp ke Karir: Langkah Konkret
0-3 Bulan Pertama: Konsolidasi dan Bangun Portfolio Dasar
Prioritas teknis: selesaikan satu proyek RAG end-to-end yang bisa diakses publik, ini portfolio utama. Pastikan GitHub profile terisi: README yang baik, commit history yang konsisten. Pelajari satu hal yang belum dikuasai secara mendalam. Tulis satu artikel teknis tentang sesuatu yang dipelajari.
Mindset yang perlu dibangun: selesai lebih baik dari sempurna, satu proyek yang bisa diakses lebih bernilai dari sepuluh proyek yang tersimpan di laptop. Tulis semua yang dipelajari. Bergabung dengan komunitas untuk menemukan masalah nyata yang layak diselesaikan.
3-9 Bulan: Spesialisasi dan Kontribusi Nyata
Prioritas teknis: pilih satu area untuk diperdalam (RAG, Agent, atau MLOps/infra), jangan mencoba semua sekaligus. Kontribusi ke proyek open-source, mulai dari dokumentasi. Bangun proyek kedua yang lebih kompleks, tambahkan satu komponen baru.
Mindset yang perlu dibangun: angka konkret ("membangun sistem RAG dengan precision@3 sebesar 87% pada corpus 2.000 dokumen hukum" lebih kuat dari "membangun sistem RAG"). Keputusan yang bisa dijelaskan: mengapa memilih Pinecone bukan FAISS, mengapa chunk_size 700 bukan 500.
9 Bulan Lebih: Dari Engineer ke Problem Solver
Pergeseran yang perlu terjadi: mulai berpikir dari masalah bisnis, bukan dari teknologi. Bangun kemampuan mengestimasi scope. Mulai memimpin, bukan hanya mengeksekusi: mentoring junior, menulis technical spec.
Tanda kamu sudah di jalur yang benar: bisa menjelaskan trade-off teknis kepada orang non-teknis tanpa jargon. Menemukan bug di proyek open-source yang digunakan dan melaporkannya dengan reproducible example. Orang lain bertanya kepadamu tentang masalah AI yang mereka hadapi. Sudah deploy setidaknya satu sistem yang digunakan pengguna nyata secara rutin.
Kesalahan Umum
Portfolio yang tidak bisa diakses tidak ada bedanya dengan tidak punya portfolio. Satu proyek yang di-deploy dan bisa dicoba langsung oleh siapapun jauh lebih kuat dari sepuluh proyek "dalam pengerjaan" yang hanya ada di mesin lokalmu. Prioritaskan deployment, bukan kesempurnaan.
"Menggunakan Pinecone, LangChain, dan Gemini" tidak membedakanmu dari siapapun yang mengikuti tutorial yang sama. Yang membedakan adalah kemampuan menjelaskan: mengapa Pinecone bukan FAISS untuk kasus ini, mengapa chunk_size 700 bukan 500, apa yang dievaluasi sebelum membuat keputusan. Keputusan yang bisa dijelaskan adalah bukti pemahaman yang sesungguhnya.
Rekruter dan engineer yang melakukan technical review sering melihat commit history untuk memahami cara kerja seseorang: apakah commit-nya kecil dan terfokus atau besar dan tidak terstruktur, apakah pesan commit-nya deskriptif atau hanya "fix" dan "update". Biasakan menulis commit yang baik sejak sekarang, kebiasaan ini sulit diubah setelah terbentuk.
Proyek terbaik untuk portfolio lahir dari masalah yang kamu atau orang di sekitarmu benar-benar hadapi. Sistem RAG untuk dokumen internal tempat kerja orang tuamu, agent untuk mengotomatisasi workflow yang membosankan di komunitas yang kamu ikuti, atau tool yang menyelesaikan frustrasi yang kamu sendiri rasakan, proyek semacam ini punya narasi yang jauh lebih kuat dari "saya mengikuti tutorial dan membangun chatbot".
Ringkasan Bab 23
- Saya menulis commit message yang deskriptif menggunakan konvensi feat/fix/docs/refactor/test, bukan sekadar "update" atau "fix bug".
- Setiap proyek saya memiliki README yang menjelaskan masalah yang diselesaikan, keputusan teknis utama beserta alasannya, dan cara setup dari nol dalam kurang dari 15 menit.
- Saya memiliki minimal satu proyek yang bisa diakses via URL publik, bukan hanya berjalan di localhost.
- Saya mendokumentasikan masalah nyata yang ditemui selama membangun proyek dan cara mengatasinya, bukan hanya hasil akhirnya.
- Saya bisa menjelaskan setiap keputusan teknis dalam proyek saya berdasarkan evaluasi, bukan sekadar mengikuti tutorial.
- Saya punya rencana konkret untuk 3 bulan pertama setelah bootcamp: satu proyek yang diselesaikan dan di-deploy, GitHub profile yang terisi, dan satu artikel teknis yang ditulis.
- Proyek yang saya bangun berasal dari masalah nyata, bukan sekadar replikasi tutorial, sehingga punya narasi yang bisa dijelaskan dengan jelas kepada siapapun.