☁ Sync
📅 0 hari
?
—

Selamat datang kembali!

Lanjutkan perjalanan belajarmu.

0%
Overall Progress
0 / 0 materi jadwal selesai
0j
Deep Work Hours
Mulai sesi Pomodoro pertama
0
Total Hari
+1 hari tiap 5 sesi Pomodoro
0
Cornell Notes
Tambah lewat menu Catatan
🎯 WOOP Wish · Outcome · Obstacle · Plan
📌 Sticky Notes
🍅 Pomodoro
25:00
FOKUS
Sesi ke-1 · 0 hari ini
Custom:
// Aktivitas Belajar — 60 Hari Terakhir
Kurang
Aktif
Task & To-Do Roadmap
0 tersisa
📅
Fase 0 — Jadwal Harian
Core habits setiap hari + deep-dive topic berputar tiap minggu
0%
minggu ini
🔁
Core Habits Harian
0/3
📖
Deep-Dive Minggu Ini
0/3
📊 Goals Belajar
// Sprint Minggu Ini · Fokus 1 Proyek Aktif
Import kurikulum untuk memunculkan jadwal
0 / 0 materi
// Target Bulan Ini · Selesaikan 1 Proyek Portfolio
Import kurikulum untuk memunculkan jadwal
0 / 0 materi
📅 Fase 0 — Jadwal Harian Paralel · Setiap Hari
Fase 0 berjalan paralel dari hari pertama dan sudah masuk ke jadwal belajar. Topik Fase 0 akan muncul di jadwal bersama Fase 1+ — kuasai tools ini setiap hari di sela sesi teknikal. Streak harian diperbarui otomatis setelah 5 sesi Pomodoro selesai.
0
Total Hari
+1 hari tiap 5 sesi Pomodoro
60 Hari Terakhir
Auto Check-in
Selesaikan 5 sesi Pomodoro
🔗 Akses Cepat
Klik untuk membuat jadwal mingguan berdasarkan semua materi Fase 0.
⌨
Level 1 — Vim Fundamentals
Bulan 1–2 · 15–20 menit/hari
▸Modal Editing: Normal, Insert, Visual, Command
▸Motion & Navigation: hjkl, w/b/e, 0/$, gg/G, f/t
▸Operator + Motion: d, y, p, c — verb+noun pattern
▸Text Objects: iw, aw, i(, i[, i", at, it
▸Search & Replace: /pattern, n/N, :%s/old/new/g
▸Register & Yank, Macro: qa record, @a replay
▸Marks & Jumps: ma set, 'a jump, Ctrl-o/i
▸Dot Command · Split & Windows: :split, :vsplit
📚 Referensi: Practical Vim — Drew Neil · vimtutor (jalankan setiap hari)
🔧
Level 2 — Neovim Setup Embedded
Bulan 2–4 · Setup sekali, pakai selamanya
▸Install Neovim 0.10+ + kickstart.nvim starting config
▸Lua dasar untuk config: variabel, fungsi, table, vim.opt
▸lazy.nvim + plugin inti: telescope, lualine, gitsigns
▸LSP: clangd + mason.nvim + nvim-lspconfig untuk C/C++
▸compile_commands.json dari PlatformIO / CMake / Bear
▸nvim-cmp + LuaSnip · conform.nvim + clang-format
▸nvim-lint: cppcheck & clang-tidy · telescope.nvim
▸gitsigns.nvim + vim-fugitive · toggleterm.nvim
▸nvim-treesitter: syntax highlight C/C++ berbasis AST
📚 Referensi: kickstart.nvim (github.com/nvim-lua/kickstart.nvim)
🐛
Level 2b — nvim-dap Debug Embedded
Bulan 3–4 · Debug dari Neovim tanpa GDB terminal
▸nvim-dap + nvim-dap-ui: Debug Adapter Protocol client
▸OpenOCD + GDB → nvim-dap: debug STM32/RP2040
▸cortex-debug adapter untuk ARM Cortex-M + probe-rs
▸Breakpoint, step over/into/out, watch, memory inspect
📚 Referensi: nvim-dap docs · interrupt.memfault.com "GDB for Firmware"
🐧
Level 3 — Linux Power User
Bulan 1–6 · Gunakan setiap hari dalam workflow
▸Text processing: grep -E, sed s/old/new/g, awk, find
▸Pipe & redirection: |, >, >>, 2>&1, tee, process substitution
▸Process & system: ps, top, systemd unit, journalctl, strace
▸Networking: ip, ss, tcpdump, curl, ssh key + config, rsync
▸Permissions: chmod, chown, udev rules untuk ST-Link/J-Link
▸Package & build: apt, pip+venv, make install, pkg-config
▸Serial via CLI: picocom, tio, screen — serial monitor terminal
📚 Referensi: The Linux Command Line — William Shotts (linuxcommand.org, gratis)
🖥
Level 3b + 4 — Tmux & Git Power User
Bulan 1–6 · Workflow harian wajib
Tmux
▸Session, window, pane: prefix Ctrl-b, split & navigate
▸tmux.conf: prefix Ctrl-a, mouse on, vi-mode, status bar
▸Workflow: Neovim + serial monitor + build dalam 1 session
▸tmux-resurrect + tmux-continuum: save/restore session
Git
▸git log --oneline --graph · git stash push/pop · git reflog
▸git rebase -i: squash, reword, fixup · git bisect
▸Git hooks: pre-commit clang-format + cppcheck otomatis
▸Conventional Commits: feat:, fix:, chore: — standar industri
📚 Referensi: Pro Git — Scott Chacon (git-scm.com, gratis) · GitHub CLI (gh)
⚙
Level 5 + 6 — Build Stack & Matematika Terapan
Bulan 3+ · Paralel dengan Fase 1+
OSS Build & Debug Stack
▸GNU Make lanjut: Pattern Rules, Phony, $@/$</$^
▸CMake: CMakeLists.txt, Toolchain File, cross-compile
▸nm, objdump, readelf, size, addr2line, objcopy
▸GDB lanjut: info registers, x/nfu, scripting Python, .gdbinit
Matematika Terapan
▸M1: Aljabar — Ohm, Voltage Divider, PWM, Unit
▸M2: Exp & Log — Konstanta RC, dB, f_c = 1/(2πRC)
▸M3: Trigonometri — Sinusoidal, RMS, Phasor, Harmonik
▸M4: Statistik — Mean/σ, SNR, Oversampling, Moving Avg
▸M5: Aljabar Linear — Vektor, Matriks (Track D & E)
▸M6: Kalkulus Intuitif — dV/dt, Integral Energi, FFT Konsep
📚 Referensi: No Bullshit Guide to Math — Ivan Savov · The Linux Programming Interface — Michael Kerrisk
⚡
Level 6b — Fisika Elektronika
Bulan 1–4 · Paralel · Fondasi teoritis untuk semua track
▸F1: Listrik & EM — Muatan, Medan, Arus, Faraday
▸F2: Termal — θ_ja, T_junction = T_amb + P×θ, Thermal Runaway
▸F3: Gelombang & Sinyal — λ=c/f, Nyquist, Aliasing, Skin Effect
▸F4: Semikonduktor — PN Junction, BJT, MOSFET, CMOS Fisika
▸F5: Mekanika Sensor — F=ma, MEMS, Euler Angles, IMU Fusion
📚 Referensi: No Bullshit Guide to Math and Physics — Ivan Savov · Practical Electronics for Inventors — Scherz & Monk (Bab 1–3)
Memuat…
🗺 Peta Visual
Seluruh topik sesuai role & durasi Kurikulum · klik node untuk detail dan koneksi
✎ Cornell Notes
Format Cornell Notes
🔑 Cues / Kata Kunci
📝 Notes / Catatan Detail
📌 Summary / Ringkasan
✎
Belum ada catatan. Tulis Cornell Note pertamamu di atas!
📁 File Manager
Upload dan kelola file project (code, schematic, notes, gambar) via GitHub Gist — permanent & shareable.
🔑 Setup GitHub Gist
Buat Personal Access Token di GitHub dengan scope gist saja.
Caranya: GitHub → Settings → Developer Settings → Personal Access Tokens → Tokens (classic) → New token → centang "gist".
Token disimpan di browser, tidak dikirim ke mana pun selain ke api.github.com.
☁
Drag & drop file, atau klik untuk pilih
Code (.c .h .v .py .md), Schematic (.kicad_sch), Image (.png .jpg), PDF, dan lainnya · Max 5MB/file
📂
Belum ada file. Upload file pertamamu!
🧠 Spaced Repetition
Algoritma SM-2 — review di interval optimal. Klik jawaban untuk reveal, lalu nilai hafalanmu.
0
Jatuh Tempo
0
7 Hari Ke Depan
0
Terjadwal
0
Total Kartu
⚡ Kartu Jatuh Tempo 0 topik
Belum ada topik. Tambahkan di bawah!
+ Tambah Kartu ke Review Queue Pilih topik & interval pertama
📋 Semua Kartu 0 kartu
🃏
Belum ada kartu terdaftar.

Cara pakai:
Tandai topik ✓ di Roadmap Visual →
kartu SR otomatis terbuka.

Atau tambah manual via dropdown di atas.
Progress
1 / 1
📖 Topik
Memuat...
👁
Klik untuk lihat jawaban
🍅 Pomodoro Timer
Teknik manajemen waktu: 25 menit fokus, 5 menit istirahat. Setiap 4 sesi, ambil istirahat panjang.
25:00
FOKUS
Custom:
Sesi ke-1 · 0 selesai hari ini · Siap belajar
0
Sesi Hari Ini
0 menit fokus
0
Sesi Minggu Ini
0 menit total
0
Total Semua Waktu
0 jam belajar
// Aktivitas 7 Hari Terakhir
// Log Sesi Hari Ini
Belum ada sesi. Mulai timer di atas!
// Riwayat Lengkap
🎯 Target & Deadline
Set deadline per fase dan pantau apakah kamu on-track.
// Overall Progress vs Target
Total Checklist Progress
0%
Set deadline per fase untuk tracking lebih akurat.
⚙ Settings
📅 Tanggal Mulai Belajar

Tentukan kapan kamu mulai belajar. Tanggal ini digunakan untuk estimasi penyelesaian tiap fase dan kalkulasi jadwal belajar.

💾 Backup & Restore Progress

Semua progressmu tersimpan otomatis di cloud (Supabase) dan di localStorage browser ini sebagai cache. Login dengan akun yang sama di browser/perangkat lain untuk memulihkannya. Export tetap berguna sebagai cadangan tambahan.

☁ GitHub Gist Sync (Cloud Backup Otomatis)

Simpan progress ke GitHub Gist (private). Bisa diakses dari device manapun.
Buat token di github.com/settings/tokens → centang scope gist saja.

💡 Setelah token disimpan, backup otomatis aktif: data tersync ke Gist setiap kali ada perubahan (checklist, notes, dll) dan saat tab ditutup. Status tampil di topbar.
🎨 Tampilan
Tema Gelap / Terang
Ganti tampilan sesuai preferensi
🔐 Akun
Ganti PIN
Ubah PIN login kamu
🗺 Reset Kurikulum + Dashboard
Hapus checklist, todo, jadwal, habit & proyek — siap import ulang
Reset Semua Data
Hapus seluruh progress, notes, dan pengaturan
✎ Kelola Referensi & Materi

Tambah atau edit materi untuk setiap topik. Klik tombol ✎ Edit di pojok kanan atas modal referensi, atau cari topik di bawah ini.

💡 Data custom tersimpan di localStorage dan ikut ter-backup ke Gist otomatis.
// Tips keamanan data
• Semua progress (checklist roadmap, kurikulum, jadwal, catatan, artikel kustom, project, pengaturan) tersimpan otomatis ke cloud Supabase dan bisa dibuka dari browser/perangkat mana pun dengan login yang sama
• Export backup setiap minggu → simpan di Google Drive / Dropbox
• Aktifkan GitHub Gist Sync untuk backup cloud otomatis dan sinkronisasi antar device
• "Reset Data" hanya menghapus cache di perangkat ini — data cloud tetap aman dan kembali saat login
• "Reset Kurikulum" ikut tersimpan ke cloud dan berlaku di semua perangkat
💻 Dev Environment: Neovim + Linux
Kurikulum lengkap membangun environment kerja embedded engineer berbasis Linux — dari Neovim modal editing hingga debugging firmware on-chip, tanpa bloat IDE berat.
⬡ Visual Roadmap
IoT · Embedded · Firmware · Geophysics
0 / 0 topik selesai
0%
🧭 Peta Konsep
Urutan belajar bergaya roadmap.sh: garis tengah adalah jalur utama, cabang di kiri & kanan adalah materinya. Klik sebuah materi untuk menandai progres, atau klik tombol ref untuk membuka isi materinya.
0/0
0%
Belum dikerjakanSelesai (klik 1×)Ditunda / pending (klik 2×)Klik 3× = kembali ke "Belum" · tombol ref = buka materi
💡 Ide Project
Ide proyek untuk portofolio embedded engineer. Saran: kerjakan 1 proyek setiap 1,5–2 bulan dan utamakan kualitas daripada jumlah. Setiap proyek sebaiknya punya repo GitHub publik, README lengkap, dan dokumentasi pengujian.
Cara memakai: (1) pilih filter di bawah, misalnya papan yang kamu punya atau level; (2) klik 📋 Detail untuk melihat yang harus dibuat, batasan, contoh hasil, dan langkah awal; (3) klik tombol 📝 untuk catatan dan link GitHub; (4) klik Tandai Selesai setelah semua syarat terpenuhi.
Total: 0 proyek
Selesai: 0
Progress: 0%
⭐ Panduan tempo portofolio: Selesaikan 1 proyek bertanda ⭐ PORTFOLIO setiap 1,5–2 bulan. Tiap proyek sebaiknya punya repo GitHub publik, README (pinout, arsitektur, cara build), dan bukti pengujian seperti foto, log, atau video singkat. sebelum dinyatakan "selesai". Kualitas > kuantitas — 6 proyek portfolio yang solid lebih berharga dari 20 proyek setengah jadi.
📖 Sumber Belajar
Koleksi personal sumber materi belajar — buku, video, artikel, dokumentasi, kursus
Tambah Sumber Belajar
Pindah Materi
Pilih hari tujuan untuk materi ini
↔ Pindah Jadwal Terpilih
Pilih tanggal tujuan
Semua topik dari hari-hari yang dipilih akan dipindahkan ke tanggal ini.
Preview Topik yang Akan Dipindah
🎯 Milestones
Timeline 30 bulan — dari hari pertama ke offer remote internasional
Checklist per Fase
💡 Tips
Kumpulan tips praktis dari seluruh fase — disaring dari pengalaman dan roadmap v6
📚 Artikel & Jurnal
Kumpulan artikel, makalah ilmiah, dan jurnal dari peneliti, insinyur, dan ilmuwan terkemuka — bacaan foundational yang membentuk cara berpikir di bidang IoT, Embedded Systems, Geophysics, dan Software Engineering.
📊 Project Scheduling
Gantt · Kanban · Sprint — visualisasi roadmap belajar lengkap
Mulai:
Filter Fase:
Sprint durasi:
Proyek Durasi
🔑 Ganti PIN
Masukkan PIN lama dan PIN baru (4-8 digit)
✚ Tambah Artikel
⬡ VLSI Engineering
Desain chip dari RTL hingga tapeout: Digital Design, Physical Design, Verification, dan Analog/Mixed-Signal IC Design — 4 spesialisasi VLSI lengkap.
Advanced · Bln 18+ · Prereq: Fase 1–2
Digital Design Physical Design Verification Analog/Mixed-Signal
⬡
Kenapa VLSI Relevan untuk Embedded/IoT Engineer?
Engineer yang memahami chip architecture — bagaimana RTL, timing, power domain, dan physical design bekerja — jauh lebih efektif saat debug hardware, pilih SoC, atau optimize firmware untuk target spesifik. VLSI engineer juga salah satu profesi dengan gaji tertinggi di industri semiconductor: $80k–$250k/yr tergantung spesialisasi dan seniority.
HDL Fundamentals
Verilog HDL — Dasar hingga AdvancedHard⏱30h
DIG
SystemVerilog untuk DesignHard⏱25h
DIG
VHDL FundamentalsHard⏱20h
DIG
FSM Design & Coding StylesMed⏱12h
DIG
Clock Domain Crossing (CDC)Hard⏱16h
DIG
RTL Lint & Coding GuidelinesMed⏱8h
DIG
Synthesis & FPGA
Logic Synthesis — Yosys & DCHard⏱20h
DIG
FPGA Prototyping — iCE40 / XilinxHard⏱18h
DIG
SDC Constraints & Timing AnalysisHard⏱16h
DIGPD
OpenROAD — Open-Source EDAHard⏱20h
DIGPD
PD Flow
Floorplanning & Power PlanningHard⏱18h
PD
Placement & OptimizationHard⏱16h
PD
Clock Tree Synthesis (CTS)Hard⏱14h
PD
Global & Detail RoutingHard⏱18h
PD
Static Timing Analysis (STA)Hard⏱20h
PDDIG
DRC/LVS & Sign-offHard⏱14h
PD
Open-Source PD Tools
Magic VLSI Layout ToolMed⏱12h
PD
KLayout — GDS Viewer & EditorEasy⏱6h
PD
OpenLane — RTL-to-GDSII FlowHard⏱24h
PDDIG
SkyWater 130nm PDK — Free TapeoutHard⏱20h
PD
Efabless Chipignite — DIY ChipHard⏱30h
PDDIG
Simulation & Coverage
Testbench Methodology — CocotbHard⏱16h
VER
UVM — Universal Verification MethodologyHard⏱40h
VER
Functional Coverage & AssertionsHard⏱18h
VER
Icarus Verilog & GTKWaveEasy⏱8h
VER
Formal Verification — SymbiYosysHard⏱20h
VER
Advanced Verification
Constrained Random TestingHard⏱16h
VER
FPGA Emulation & PrototypingHard⏱20h
VERDIG
DFT — Design for TestabilityHard⏱18h
VERPD
Analog Fundamentals
MOSFET Physics & Small-Signal ModelHard⏱20h
AMS
Op-Amp Design — OTA & Folded CascodeHard⏱24h
AMS
Bandgap Reference & Bias CircuitsHard⏱16h
AMS
PLL Design — VCO, CP, Loop FilterHard⏱28h
AMS
ADC/DAC Architecture — SAR, Sigma-DeltaHard⏱30h
AMS
Open-Source Analog EDA
ngspice — Open-Source SPICE SimulatorMed⏱14h
AMS
Xschem — Schematic CaptureMed⏱10h
AMS
GAW — Waveform ViewerEasy⏱4h
AMS
Caravel Harness — Chip SubmissionHard⏱24h
AMSPD
Roadmap Belajar VLSI (Open-Source First)
Tahap 1 (Bln 1–3)
Verilog dasar → Icarus + GTKWave → desain counter, FIFO, state machine → FPGA di iCE40 (IceStudio/Yosys)
Tahap 2 (Bln 4–6)
OpenLane + SkyWater PDK → RTL-to-GDSII flow → submit chip via Efabless Chipignite (gratis untuk proyek open-source)
Tahap 3 (Bln 7–9)
UVM verification / ngspice analog simulation → STA dengan OpenSTA → formal verification dengan SymbiYosys
Tools (Gratis)
Icarus Verilog, GTKWave, Yosys, OpenROAD, Magic, KLayout, OpenLane, ngspice, Xschem, SymbiYosys, cocotb
⬢ CAD & 3D Design
Desain enclosure mekanis, 3D model komponen, integrasi PCB-ke-enclosure, dan parametric modeling — semua menggunakan software open-source.
Paralel Fase 4+ · Prereq: KiCad Basics
Mechanical Design Parametric Modeling PCB 3D Integration DFM & Manufacturing
⬢
Mengapa CAD Penting untuk Embedded/IoT Engineer?
Product engineer yang bisa desain PCB sekaligus enclosure mekanis memiliki nilai sangat tinggi. Enclosure yang pas = proteksi IP67, thermal management yang baik, assembly yang mudah di produksi massal. Dengan FreeCAD + KiCad 3D, kamu bisa validasi fit antara PCB dan enclosure sebelum order ke manufaktur.
FreeCAD Core
FreeCAD Setup & InterfaceEasy⏱5h
CAD
Sketcher Workbench — 2D ConstraintMed⏱10h
CAD
Part Design — 3D Solid ModelingHard⏱16h
CAD
Assembly3 / A2plus — Multi-PartHard⏱14h
CAD
TechDraw — Engineering DrawingMed⏱8h
CAD
FEM Workbench — Structural AnalysisHard⏱12h
CAD
Enclosure untuk IoT/Embedded
Desain Enclosure PCB — Best PracticesMed⏱14h
CADHW
IP67/IP68 Enclosure DesignHard⏱16h
CAD
Thermal Management — Heatsink DesignHard⏱14h
CAD
3D Printing — FDM & Resin untuk PrototypeEasy⏱8h
CAD
DFM Mekanis — CNC & Injection MoldingHard⏱12h
CAD
OpenSCAD Fundamentals
OpenSCAD Language & CSG ModelingMed⏱12h
SCAD
Parametric Design — Variables & ModulesMed⏱10h
SCAD
MCAD & Community LibrariesEasy⏱6h
SCAD
Generate Enclosure dari PCB DimensiMed⏱10h
SCADHW
Other Open-Source CAD
Blender — 3D Visualization & RenderingHard⏱16h
VIZ
SolveSpace — Lightweight Parametric CADEasy⏱8h
CAD
LibreCAD — 2D Technical DrawingEasy⏱6h
CAD
CadQuery — Python Parametric CADMed⏱14h
SCAD
KiCad 3D Workflow
Assign 3D Model ke FootprintEasy⏱5h
HW
Export STEP/VRML dari KiCadEasy⏱4h
HW
Import STEP ke FreeCAD — Fit CheckMed⏱8h
HWCAD
Buat Custom 3D Model KomponenMed⏱12h
HW
FreeCAD StepUp WorkbenchMed⏱10h
HWCAD
Fabrication & Prototyping
Slicer — Cura / PrusaSlicer untuk FDMEasy⏱6h
CAD
CAM untuk CNC Milling — FreeCAD PathHard⏱18h
CAD
Laser Cutting — Enclosure Box JointEasy⏱6h
CAD
GD&T — Toleransi & Fits EngineeringHard⏱14h
CAD
Roadmap Belajar CAD (Embedded Engineer Path)
Minggu 1–4
FreeCAD Part Design dasar → desain box sederhana → cetak dengan 3D printer untuk test fit dengan PCB
Minggu 5–8
OpenSCAD parametric → enclosure yang auto-resize berdasarkan PCB dimension → export STL
Minggu 9–12
KiCad 3D export STEP → FreeCAD StepUp → full assembly PCB + enclosure → clearance check
Toolchain
FreeCAD 1.0+, OpenSCAD, CadQuery, KiCad 8+, Cura/PrusaSlicer, Blender untuk rendering produk
Fase 0 — Vim · Linux · Open Source Tools
Ini bukan fase terpisah — ini adalah cara kamu bekerja setiap hari. Mulai hari pertama, berjalan paralel sepanjang roadmap. Kuasai tools sebelum benar-benar butuh, bukan saat butuh.
Paralel — Mulai Hari Pertama
Firmware Engineer IoT Engineer Embedded Engineer Semua Track
🎯
Tolok Ukur Fase 0
Semua editing sehari-hari di Neovim tanpa mouse. Tmux session per-project aktif. Git workflow dengan Conventional Commits. Bisa debug firmware dari Neovim via nvim-dap + OpenOCD. Bisa hitung f_c = 1/(2πRC) dan T_junction tanpa kalkulator.
Level 1 — Vim Fundamentals (Bulan 1–2)
Modal Editing: Normal, Insert, Visual, Command — filosofi & perpindahan modeEasy⏱3h
All
Motion & Navigation: hjkl, w/b/e, 0/$, gg/G, f/t, {/} — tanpa mouseEasy⏱3h
All
Operator + Motion: d, y, p, c, x, u — verb+noun pattern (dw, ciw, yap)Easy⏱4h
All
Text Objects: iw, aw, i(, i[, i", at, it — ini yang membuat Vim cepatMed⏱4h
All
Search & Replace: /pattern, n/N, :%s/old/new/g, cgn, :nohEasy⏱3h
All
Register & Yank: "ay ke register, "ap paste, "+ system clipboardMed⏱2h
All
Macro: qa record, @a replay, 10@a — automasi editing repetitifMed⏱3h
All
Marks & Jump List: ma set, 'a jump, Ctrl-o/i jump historyEasy⏱2h
All
Dot Command: . untuk ulangi operasi terakhir — kunci produktivitasEasy⏱1h
All
Split & Windows: :split, :vsplit, Ctrl-w hjkl, :e :w :qEasy⏱2h
All
Level 2 — Neovim Setup untuk Embedded (Bulan 2–4)
Install Neovim 0.10+ + kickstart.nvim sebagai starting configEasy⏱2h
FW
Lua dasar untuk config: variabel, fungsi, table, module, vim.optEasy⏱3h
FW
lazy.nvim plugin manager + plugin inti: telescope, lualine, gitsigns, toggletermMed⏱4h
FW
LSP Setup: clangd + mason.nvim + nvim-lspconfig untuk C/C++Med⏱4h
FW
compile_commands.json dari PlatformIO / CMake / Bear — wajib untuk clangdMed⏱2h
FW
nvim-cmp + LuaSnip: autocompletion dari LSP + snippet untuk C patternsMed⏱3h
FW
conform.nvim + clang-format: auto-format on save, .clang-format configEasy⏱2h
FW
nvim-lint: integrasi cppcheck & clang-tidy sebagai linter real-timeMed⏱2h
FW
telescope.nvim: fuzzy find file, live grep, LSP symbols, git commitsEasy⏱2h
FW
gitsigns.nvim + vim-fugitive: diff gutter, blame, full git workflowEasy⏱2h
FW
toggleterm.nvim: terminal float/split + serial monitor picocom dari NeovimEasy⏱2h
FW
nvim-treesitter: syntax highlight akurat C/C++ + text objects berbasis ASTEasy⏱1h
FW
Level 2b — nvim-dap: Debug Embedded dari Neovim
nvim-dap + nvim-dap-ui: debug adapter protocol client & UIMed⏱4h
FW
OpenOCD + GDB → nvim-dap: debug STM32/RP2040 langsung dari NeovimMed⏱4h
FW
cortex-debug adapter untuk ARM Cortex-M + probe-rs alternatifMed⏱3h
FW
Breakpoint, step over/into/out, watch variables, inspect memory registersMed⏱4h
FW
Level 3 — Linux Power User (Bulan 1–6)
🆕Baru menggunakan Linux?Lihat prasyarat

Sebelum mulai, pastikan kamu nyaman dengan membuka terminal, navigasi folder (cd, ls, pwd, mkdir), membaca/menulis file (cat, nano, cp, mv), serta konsep dasar ownership & permission.

Pengantar yang disarankan: MIT Missing Semester atau The Linux Command Line.

Urutan belajar: Bash scripting → Pipe & Redirection → Process & System → Networking → Permissions & udev.

Bash scripting: variabel, control flow, fungsi, error handling set -euo pipefailMed⏱8h
FWEM
Text processing: grep -E, sed s/old/new/g, awk field, find -exec, xargsMed⏱6h
FW
Pipe & redirection: |, >, >>, 2>&1, tee, process substitution <(cmd)Easy⏱4h
FW
Process & system: ps, top, systemd unit file, journalctl, strace, dmesgMed⏱5h
FW
Networking: ip, ss, tcpdump, curl, ssh key-based + config, rsync ke boardMed⏱5h
FW
Permissions: chmod, chown, udev rules untuk ST-Link/J-Link/FTDI tanpa sudoEasy⏱3h
FWEM
Package & build: apt, pip+venv, make install, pkg-config, Flatpak KiCadEasy⏱3h
FW
Serial via CLI: picocom, tio, screen — serial monitor dari terminalEasy⏱2h
FWEM
Level 3b — Tmux Workflow (Bulan 1+)
Session, window, pane: konsep, prefix key Ctrl-b, split & navigateEasy⏱3h
All
tmux.conf: ganti prefix ke Ctrl-a, mouse on, vi-mode copy, status barEasy⏱2h
All
Workflow: Neovim + serial monitor + build + openocd dalam satu sessionMed⏱3h
FW
tmux-resurrect + tmux-continuum: save/restore session otomatisEasy⏱1h
All
vim-tmux-navigator: navigasi seamless antara pane tmux & split NeovimEasy⏱1h
All
Level 4 — Git Power User (Bulan 2–6)
git log --oneline --graph --all: visual history, diff, reflog recoveryEasy⏱3h
All
git stash push/pop/list, partial stash -p, stash branchEasy⏱2h
All
git rebase -i: squash, fixup, reword, reorder — bersihkan history sebelum PRMed⏱4h
All
git bisect: binary search untuk temukan commit yang introduce bugMed⏱2h
All
git cherry-pick + git worktree: multiple checkout dalam satu repoMed⏱2h
All
Git hooks: pre-commit jalankan clang-format + cppcheck otomatisMed⏱3h
FW
Conventional Commits: feat:, fix:, chore:, docs: — standar industri remoteEasy⏱1h
All
GitHub CLI (gh): buat PR, review, issue, watch CI dari terminalEasy⏱2h
All
Level 5 — OSS Build & Debug Stack (Bulan 3+)
GNU Make lanjut: pattern rules, phony, automatic variables $@/$</$^Med⏱6h
FW
CMake: CMakeLists.txt, toolchain file cross-compile, target_link_librariesMed⏱8h
FW
nm, objdump, readelf, size, addr2line, objcopy — inspeksi ELF binaryMed⏱4h
FW
Python automation: subprocess, pyserial, pytest untuk testing firmware via serialMed⏱8h
FW
Dokumentasi: Markdown, Mermaid diagram, Doxygen, README professionalEasy⏱4h
All
GDB lanjut: info registers, x/nfu, Python scripting, .gdbinit per projectMed⏱6h
FW
Valgrind, AddressSanitizer, gcov + lcov: memory bug & coverage report HTMLMed⏱6h
FW
Level 6 — Matematika Terapan (Bulan 1–4, Paralel)
M1: Aljabar terapan — Ohm, voltage divider, PWM duty cycle, unit conversionEasy⏱6h
EM
M2: Eksponensial & log — konstanta RC τ=RC, desibel dB, f_c = 1/(2πRC)Easy⏱6h
EMHW
M3: Trigonometri & sinyal — sinusoidal, V_rms = Vpeak/√2, phasor, harmonikMed⏱6h
EM
M4: Statistik — mean/σ, SNR dB, oversampling √N, moving average filterMed⏱5h
IoT
M5: Aljabar linear — vektor, matriks, eigenvalue (wajib Track D & E)Med⏱8h
TinyMLGeo
M6: Kalkulus intuitif — i=C×dV/dt, integral energi, FFT konsep untuk sensorMed⏱8h
EMTinyML
Level 6b — Fisika Elektronika (Bulan 1–4, Paralel)
F1: Listrik & EM — muatan, medan, Hukum Faraday, gelombang EM (WiFi/BLE)Med⏱8h
EMHW
F2: Termal — θ_ja, T_junction = T_amb + P×θ, thermal runaway, solderingEasy⏱4h
EMHW
F3: Gelombang & sinyal — λ=c/f, Nyquist, aliasing, skin effect, path loss RFMed⏱6h
IoTEM
F4: Semikonduktor — PN junction, BJT, MOSFET, CMOS hemat daya, LED bandgapMed⏱6h
EMHW
F5: Mekanika & sensor gerak — F=ma, 1g=9.81m/s², MEMS, Euler angles, IMU fusionMed⏱5h
FWIoT
📦 Proyek Fase 0 (Paralel dengan Fase 1)
P1 · vimtutor Selesai
Selesaikan vimtutor dari terminal dalam satu sesi 30 menit — lakukan hari pertama. Target: bisa edit file tanpa merasa tersiksa
P2 · Neovim Setup Lengkap
kickstart.nvim → konfigurasi clangd + PlatformIO → generate compile_commands.json → verifikasi autocomplete bekerja di project C pertama
P3 · Tmux Session Firmware
Buat script startup tmux: Neovim kiri + picocom serial kanan atas + build terminal kanan bawah. Simpan sebagai ~/bin/dev-session.sh
P4 · Debug STM32 dari Neovim
Setup nvim-dap + OpenOCD → set breakpoint → step through kode → inspect register peripheral. Target: debug tanpa buka aplikasi lain
P5 · Git Hook Quality
Setup pre-commit hook: jalankan clang-format --dry-run dan cppcheck otomatis sebelum commit. Target: tidak ada kode yang commit tanpa lulus static analysis
P6 · Kalkulasi Manual
Hitung tanpa kalkulator: (1) f_c RC filter 10kΩ+100nF, (2) T_junction MOSFET 1W @ θ50°C/W @ ambient 35°C, (3) SNR sensor 50mV dengan noise 2mV dalam dB
💡
Tips Fase 0
Vim bukan pilihan, ini investasi. Setiap jam yang dihemat dari editing efisien selama 2,5 tahun = ratusan jam ekstra belajar. Mulai dengan vimtutor hari ini.

Terminal-first workflow. Kalau bisa dilakukan di terminal, lakukan di terminal. Employer remote menilai ini. Serial monitor, build, flash, debug — semua dari terminal.

Jangan setup semua plugin sekaligus. Mulai dengan kickstart.nvim, tambahkan plugin satu per satu hanya saat benar-benar butuh. Plugin yang tidak dipakai = overhead.

Matematika tidak perlu sampai level universitas. Target: bisa hitung f_c = 1/(2πRC), T_junction, dan SNR_dB tanpa bantuan orang lain. Ini sudah cukup untuk 80% kebutuhan embedded.

Level 6 (matematika & fisika) paling relevan untuk: Semua orang untuk M1-M2 (aljabar, RC). Track C/D/E untuk M5-M6 (aljabar linear, kalkulus). PCB designer untuk F2 (termal). IoT engineer untuk F3 (gelombang RF).
📚 Sumber Materi Fase 0
Vim/Neovim
vimtutor (terminal) · Practical Vim — Drew Neil · ThePrimeagen Playlist (YouTube) · kickstart.nvim (GitHub) · Vim Adventures (vim-adventures.com)
Linux & Tmux
The Linux Command Line — Shotts (PDF gratis) · MIT Missing Semester (YouTube) · explainshell.com · The Tao of tmux (gratis online) · tldr.sh
Git
Pro Git — Chacon (PDF gratis, git-scm.com) · Learn Git Branching (learngitbranching.js.org) · GitHub CLI docs (cli.github.com)
Matematika
Khan Academy (khanacademy.org) · 3Blue1Brown: Essence of Calculus, Linear Algebra, Fourier Transform (YouTube) · StatQuest — Statistics (YouTube)
Fisika
Feynman Lectures Vol.2 (gratis, feynmanlectures.caltech.edu) · Khan Academy Physics · Veritasium, ElectroBOOM (YouTube) · Walter Lewin MIT 8.02 (YouTube)
Debug & Tools
interrupt.memfault.com — Neovim for Embedded, GDB Tips, Makefile, CMake · Interrupt — Pre-commit, ASan · probe-rs.rs
Fase 1 — Elektronika, C & Git
Program C jalan, hardware nyala, workflow terminal-based. Jalankan paralel dengan Fase 0 (Vim + Linux).
Bulan 1–3 · Semua Role
IoT Engineer Firmware Engineer Embedded Engineer HW/PCB Designer ← Semua role mulai di sini
🎯
Tolok Ukur Fase 1
Program C selesai (pointer, struct, bitwise, callback, circular buffer), memahami interrupt dan ADC secara teori, LED blink dari bare-metal via CLI, driver I2C/SPI portabel jalan di 2 MCU, schematic KiCad pertama terdokumentasi, Vim sebagai editor utama setiap hari. Pahami memory map ARM Cortex-M dan clock tree MCU.
Elektronika Dasar
Hukum Ohm & Kirchhoff (KVL, KCL)Easy⏱4h
FWEMHW
Resistor, kapasitor, induktor — nilai, toleransi, ratingEasy⏱6h
EMHW
Dioda: PN junction, Zener, Schottky, LED — kurva I-VEasy⏱5h
EMHW
Transistor BJT & MOSFET sebagai switch — kalkulasiMed⏱8h
EMHW
Konstanta waktu RC, filter pasif low/high-pass, impedansiMed⏱8h
EMHWFW
Pull-up, pull-down & open-drain — I2C pull-up sizingEasy⏱4h
EMFW
Op-Amp: buffer, inverting, non-inverting, komparatorMed⏱8h
EMHW
Decoupling & bypass capacitor — 100nF + 10µF per ICEasy⏱3h
EMHW
LDO vs Buck converter — efisiensi, dropout, rippleMed⏱7h
EMHW
Logic level & level shifting — 3.3V ↔ 5VEasy⏱3h
FWEM
Interface sensor dasar: NTC, potensio, hall, ADC scalingMed⏱6h
IoTEM
Proteksi rangkaian: reverse polarity, ESD, overcurrentMed⏱5h
HWEM
Osilator & clock: crystal, ceramic resonator, RC internalMed⏱4h
FWEM
Cara baca datasheet: absolute max, timing diagram, app circuitMed⏱6h
FWEM
Multimeter, oscilloscope & logic analyzer (Sigrok/PulseView)Easy⏱6h
EMHW
Bench power supply & function generator — current limiting, waveform injectionEasy⏱4h
EMHW
Sistem bilangan: biner, hex, two's complement, IEEE 754Easy⏱4h
FWEM
Relay & Motor Driver: transistor/MOSFET switch, freewheeling diodeEasy⏱5h
EMHW
Baterai & Battery Management: Li-Ion/LiFePO4, charging CC/CV, SoC, cutoff voltageEasy⏱6h
IoTEM
Bahasa C — Embedded Core
Tipe data, operator, control flow, fungsiMed⏱12h
FWEM
Pointer, array, string, pointer ke fungsi, void pointerHard⏱15h
FWEM
Struct, union, enum — type punning, register accessMed⏱8h
FWEM
Bitwise: AND, OR, XOR, NOT, shift — set/clear/toggle bitMed⏱8h
FWEM
Preprocessor: #define, #ifdef, macro dengan argumen, stdint.hMed⏱6h
FWEM
Scope, linkage, const & volatile — semantik embeddedMed⏱5h
FWEM
Makefile dasar: compile, link, clean untuk embeddedEasy⏱4h
FWEM
C++ untuk embedded: class, RAII, constexpr, no exceptionHard⏱12h
FWEM
Manajemen memori: malloc/free, memory leak, stack vs heap di embeddedHard⏱8h
FWEM
Function pointer & callback pattern — driver abstraction layerMed⏱6h
FWEM
State machine pattern di C: enum + switch + function tableMed⏱6h
FWEM
Circular buffer & ring buffer — implementasi lock-free untuk ISRMed⏱5h
FW
assert(), defensive programming & error propagation di embeddedEasy⏱3h
FWEM
Elektronika Lanjut — Fondasi Kritis
ADC: resolusi, ENOB, referensi tegangan, oversampling & noiseMed⏱8h
FWEM
PWM: duty cycle, frekuensi, dead-time, aplikasi motor & LED dimmingEasy⏱5h
FWEM
Interrupt: NVIC priority, ISR latency, reentrancy, atomicsHard⏱10h
FWEM
UART protocol: baud rate, framing, parity, flow control RTS/CTSEasy⏱4h
FWEM
SPI protocol: clock polarity/phase (CPOL/CPHA), NSS, daisy-chainMed⏱5h
FWEM
I2C protocol: address frame, ACK/NACK, clock stretching, multi-masterMed⏱5h
FWEM
Power sequencing & brown-out detection — reset supervisor ICMed⏱4h
HWEM
EMI dasar: conducted vs radiated, ferrite bead, ground plane, shieldingHard⏱8h
HWEM
Memory map ARM Cortex-M: Flash, SRAM, periph, vendor regionsHard⏱8h
FWEM
Clock tree MCU: HSE/HSI, PLL, AHB/APB prescaler — setup di CubeMXMed⏱5h
FWEM
Dev Environment & Tools
Vim fundamentals: modal editing, text objects, macroMed⏱10h
FWEM
Neovim + LSP (clangd) + nvim-dap untuk embedded C/C++Med⏱12h
FWEM
Linux CLI: bash, grep, sed, awk, tmux, systemdMed⏱10h
FWEM
PlatformIO CLI: build, flash, monitor, library, unit testEasy⏱6h
FWEM
Git power user: rebase, bisect, reflog, conventional commitsEasy⏱6h
IoTFWEMHW
LTspice: simulasi RC filter, LDO, op-amp sebelum hardwareMed⏱8h
EMHW
KiCad schematic: shortcut, net label, ERC, BOM exportMed⏱8h
HWEM
ESP-IDF: idf.py, menuconfig, build system, NVS, event loopHard⏱10h
IoTFW
Algoritma & Struktur Data
Kompleksitas algoritma: Big-O, Big-Ω, analisis waktu & ruangMed⏱8h
FWIoT
Array, linked list (single, double, circular) — operasi O(n) vs O(1)Easy⏱6h
FWEM
Stack & Queue: array-based, linked-list, circular buffer untuk embeddedEasy⏱5h
FW
Hash table: fungsi hash, collision resolution (chaining, open addressing)Med⏱6h
FW
Tree: binary tree, BST, traversal (in/pre/post-order), heapMed⏱8h
FW
Sorting: bubble, selection, insertion, merge, quick — kapan pakai apaMed⏱6h
FW
Searching: linear, binary search, interpolation — implementasi di CEasy⏱4h
FW
Graph dasar: representasi adjacency, BFS, DFS — aplikasi di networkingHard⏱10h
IoT
Logika & Matematika Diskrit
Aljabar Boolean: gerbang logika, De Morgan, Karnaugh map, minimisasiEasy⏱6h
FWEM
Logika proposisional: implikasi, ekuivalensi, tabel kebenaran, proofEasy⏱5h
FW
Teori himpunan & relasi: union, intersection, complement, fungsiEasy⏱4h
FW
Kombinatorika: permutasi, kombinasi, pigeonhole, prinsip inklusi-eksklusiMed⏱6h
FW
Aritmetika modular: modulo, CRC, checksum — aplikasi komunikasi embeddedMed⏱5h
FWEM
Finite State Machine (FSM): DFA, NFA, reguler language, implementasi di CMed⏱8h
FWIoT
Teori graf: terminologi, representasi, Eulerian, Hamiltonian pathHard⏱8h
IoT
Paradigma Pemrograman
Prosedural: fungsi, modularitas, separation of concerns di C embeddedEasy⏱5h
FWEM
OOP: encapsulation, inheritance, polymorphism — implementasi di C & C++Med⏱10h
FWEM
Functional: fungsi murni, immutability, higher-order function, map/filterMed⏱6h
FW
Event-driven & reactive: callback, event loop, observer pattern di embeddedMed⏱8h
FWIoT
Concurrent programming: race condition, mutex, semaphore, deadlock preventionHard⏱10h
FWEM
Design patterns: singleton, factory, strategy, observer — contoh firmware nyataMed⏱8h
FWIoT
Sistem Operasi — Konsep Dasar
Process & thread: PCB, context switch, scheduling (FIFO, round-robin, priority)Med⏱8h
FWIoT
Manajemen memori: virtual memory, paging, segmentation, MMUHard⏱10h
FWEM
IPC: pipe, shared memory, message queue, socket — vs RTOS queueMed⏱6h
FWIoT
Filesystem: VFS, inode, block device, mount — relevan untuk embedded LinuxMed⏱6h
IoTFW
Driver model Linux: char device, platform device, device tree overviewHard⏱12h
IoT
RTOS vs GPOS: determinism, latency, preemption, tickless modeMed⏱5h
FWEM
Basis Data — Fondasi
Relational model: tabel, relasi, primary/foreign key, normalisasi 1NF–3NFEasy⏱6h
IoT
SQL: SELECT, INSERT, UPDATE, DELETE, JOIN, GROUP BY, subqueryEasy⏱8h
IoT
SQLite embedded: API C, WAL mode, penyimpanan sensor data di embedded LinuxMed⏱8h
IoTFW
Time-series DB: InfluxDB, TimescaleDB — pola penyimpanan data sensor IoTMed⏱6h
IoT
NoSQL overview: key-value (Redis), document (MongoDB) — kapan pakai vs SQLEasy⏱4h
IoT
Non-volatile storage di MCU: NVS (ESP-IDF), EEPROM emulation, wear levelingMed⏱5h
FWIoT
Version Control System — Mendalam
Git internals: object model (blob, tree, commit, tag), plumbing vs porcelainMed⏱6h
FWIoTEM
Branching strategy: Git Flow, trunk-based development, feature flagsMed⏱5h
FWIoT
Rebase vs merge: interactive rebase, squash, amend — riwayat commit bersihMed⏱4h
FWEM
Git hooks: pre-commit (clang-format, cppcheck), commit-msg (conventional commits)Easy⏱4h
FWEM
Submodule & subtree: kelola library firmware sebagai dependensi gitMed⏱4h
FWEM
CI/CD dasar: GitHub Actions untuk build & test firmware — matrix buildHard⏱8h
FWIoT
Sistem Digital — Jembatan Analog → Firmware ⭐ Baru
Flip-flop: SR, D, JK, T — setup/hold time, propagation delayMed⏱8h
FWEM
Register & counter: shift register, ripple counter, synchronous counterMed⏱6h
FWEM
Sequential vs combinational logic — mengapa MCU peripheral bekerja seperti ituMed⏱6h
FWEM
Timing diagram untuk debug protokol: setup/hold violation, clock-to-output delayHard⏱8h
FWEM
Glitch & metastability: sinkronisasi sinyal antar clock domain, two-FF synchronizerHard⏱8h
FWEM
Matematika Praktis MCU ⭐ Baru
Fixed-point arithmetic: Q-format (Q15, Q31), operasi tanpa FPU, overflow detectionHard⏱8h
FWEM
Floating-point di embedded: NaN, infinity, denormal — sumber bug yang sangat umumHard⏱8h
FWEM
Interpolasi linear & lookup table (LUT) — kalibrasi sensor sehari-hari di firmwareEasy⏱4h
FWIoT
Filter sensor praktis: moving average, EMA (exponential moving average), simple Kalman 1DMed⏱6h
FWIoT
Debugging Mindset ⭐ Baru
Isolasi masalah sistematis: bisect, divide & conquer di hardware & firmwareMed⏱6h
FWEM
Reproducing intermittent bugs: race condition, glitch, timing — metodologi sistematisHard⏱8h
FWEM
Membaca waveform oscilloscope untuk debug: ringing, undershoot, jitter analisisMed⏱6h
FWEM
Debug non-intrusive: SWO ITM, Segger RTT, GPIO toggling — tidak ganggu real-time timingEasy⏱4h
FWEM
📦 Proyek Portfolio Fase 1 — 4 Proyek (1 per ~1.5–2 Bulan)
P1 · UART Shell Debug Interface
Command-line interface via UART: minimal 5 perintah (led, sensor, sysinfo, reset, echo). Portfolio output: GitHub repo bersih + README dengan pinout, foto setup, video demo 60 detik. Mengapa portfolio-ready: menunjukkan kemampuan driver UART interrupt-driven, string parsing di C, dan disiplin dokumentasi.
P2 · I2C Sensor Driver dari Scratch
Driver portabel untuk BME280 atau MPU6050 tanpa library — cukup implementasi fungsi i2c_write/read. Portfolio output: library yang compile di STM32, RP2040, dan x86 host + unit test. Mengapa portfolio-ready: menunjukkan kemampuan membaca datasheet, portable driver design, dan testing mindset.
P3 · FreeRTOS Multi-task System
Firmware 3+ task: sensor_task → queue → display_task, comm_task; dengan semaphore dan mutex. Portfolio output: visualisasi di SEGGER SystemView + diagram arsitektur di README. Mengapa portfolio-ready: skill FreeRTOS adalah syarat minimum hampir semua posisi firmware engineer.
P4 · PCB IoT Sensor Node
ESP32 atau STM32 + sensor + LDO + USB-C, desain di KiCad, order di JLCPCB, solder dan bring-up. Portfolio output: Gerber + BOM + foto PCB nyata + video firmware berjalan di board buatan sendiri. Mengapa portfolio-ready: 1 PCB order real lebih bernilai dari 100 proyek simulator.
⚠️ Jadwal Realistis: Selesaikan 1 proyek setiap 1.5–2 bulan — kualitas > kuantitas. Setiap proyek harus punya GitHub repo publik, README yang jelas, dan dokumentasi pengujian sebelum dianggap "selesai portfolio". Jangan lanjut ke proyek berikutnya sebelum proyek aktif benar-benar selesai.
🧠 Proyek Uji Fondasi Komputer — Algoritma, OS, DB & VCS (6 Proyek)
F1 · Library Algoritma & DS di C
Implementasi dari scratch: linked list, stack, queue, hash table, binary search tree, dan heap. Setiap ADT punya header public API + tes unit. Constraint: tanpa stdlib, hanya pakai pointer & manual memory. Output: repo GitHub dengan README benchmarks waktu vs input size.
F2 · FSM-based Protocol Parser
Implementasi FSM (finite state machine) untuk mem-parse paket data biner kustom via UART. Gunakan enum state + tabel transisi + checksum CRC-16 (modular arithmetic). Output: parser robust yang tahan input corrupt + diagram state machine di README.
F3 · OOP-style Driver C++ untuk GPIO
Terapkan paradigma OOP di embedded: class GpioPin, inheritance untuk GpioPwm, template untuk register address. Bandingkan ukuran binary vs versi C murni. Output: library C++ zero-cost abstraction untuk embedded + analisis overhead di README.
F4 · Mini Task Scheduler (bare RTOS)
Tulis cooperative task scheduler sendiri dari scratch tanpa RTOS library: round-robin, prioritas, timer tick via SysTick. Pelajari context switch manual di ARM Cortex-M. Output: scheduler yang menjalankan 3 task di STM32 + penjelasan assembly context switch.
F5 · Sensor Logger dengan SQLite
Pada embedded Linux (Raspberry Pi / BeagleBone): baca sensor via I2C/SPI, simpan ke SQLite dengan schema terstruktur, query aggregasi per jam/hari. Output: daemon C yang looping baca-simpan + CLI query tool + analisis disk usage per bulan.
F6 · Git Workflow Firmware Professional
Setup repo firmware professional: Git hooks (pre-commit: clang-format + cppcheck), GitHub Actions CI (build matrix 3 platform), semantic versioning, CHANGELOG otomatis. Output: template repo firmware yang bisa di-fork + dokumentasi workflow di README.
💡 Proyek Fondasi — Kerjakan paralel atau setelah portofolio utama. Setiap proyek menguji pemahaman konsep, bukan sekadar "bisa jalan". Commit setiap hari ke GitHub meski hanya 5 baris — konsistensi lebih penting dari quantity.
💡
Tips Fase 1
Vim bukan pilihan, ini investasi. Setiap jam yang dihemat dari editing efisien selama 2,5 tahun = ratusan jam ekstra belajar. Mulai dengan vimtutor hari pertama — wajib.

Dokumentasikan schematic setiap proyek. Ini kebiasaan engineer profesional. Satu schematic ERC-clean yang didokumentasikan di GitHub lebih bernilai dari 10 proyek tanpa dokumentasi.

LTspice dulu sebelum hardware. Simulasikan RC filter dan LDO sebelum beli komponen. f_c = 1/(2πRC) — verifikasi dengan simulasi, baru dengan oscilloscope.

Jangan skip circular buffer dan callback. Keduanya adalah pattern dasar yang muncul di hampir semua firmware production. Implementasikan dari scratch sebelum lanjut ke Fase 2. Circular buffer lock-free untuk ISR + callback-based driver design adalah syarat tidak tertulis untuk hampir semua posisi firmware engineer.

Pahami interrupt sebelum menyentuh RTOS. 90% bug firmware berasal dari mismanagement interrupt dan shared state. Kuasai NVIC, ISR reentrancy, dan atomic operations di Fase 1 — bukan setelah masalah muncul di Fase 3.
📚 Sumber Materi Fase 1
Buku Wajib
The C Programming Language — K&R 2nd Ed. · Beej's Guide to C (gratis) · Practical Electronics for Inventors — Scherz & Monk (Bab 1–6) · Making Embedded Systems — Elecia White (Bab 1–3: state machines, callbacks, interrupts)
Video
CS50x Harvard Week 0–5 · Jacob Sorber Embedded C Series (callback, state machine, ring buffer) · EEVblog #187 How to Read a Datasheet · ThePrimeagen Vim as Your Editor · Phil's Lab KiCad Schematic Tutorial · DigiKey Embedded Systems — Interrupt Deep Dive
Blog
beej.us/guide/bgc · interrupt.memfault.com — Practical C Patterns (callbacks, ring buffers, state machines) · electronics-tutorials.ws · contextualelectronics.com KiCad crash course · barrgroup.com/embedded-systems (interrupt best practices)
Alat
vimtutor · kickstart.nvim · PlatformIO CLI · LTspice (analog.com) · KiCad 7+ · Sigrok/PulseView (logic analyzer) · GDB + arm-none-eabi-gdb untuk debug C
Peran & Fondasi Firmware (tambahan roadmap GfG)
Peran Firmware Engineer: firmware vs software, tanggung jawab, industri & standarEasy⏱3h
FW
Mikrokontroler vs mikroprosesor: Harvard/Von Neumann, SoC, memilih MCUEasy⏱4h
FW
Proyek hands-on Arduino & Raspberry Pi Pico — lalu port ke register/SDKEasy⏱10h
FW
Prototyping, Sensor & Aktuator (tambahan roadmap m3y54m)
Breadboarding & Prototyping CepatEasy⏱3h
FW
GCC Toolchain & MakefileMed⏱8h
FW
Signal Conditioning: Amplifikasi, Filtering & KalibrasiMed⏱6h
FW
Aktuator: Motor DC, Servo, Stepper, Relay & SolenoidMed⏱8h
FW
Fase 2 — Embedded Core Bare-metal
Kontrol hardware langsung lewat register, debug dengan GDB dari Neovim, Sigrok untuk protocol analysis.
Bulan 2–6
Firmware Engineer ★ Utama Embedded Engineer ★ Utama IoT Engineer (sebagian)
🎯
Tolok Ukur Fase 2
LED blink bare-metal STM32 tanpa HAL via register, UART shell interaktif, driver I2C/SPI dari scratch, debug HardFault dengan GDB, baca disassembly, Sigrok decode protokol, C++ GPIO driver dengan RAII.
Arsitektur ARM Cortex-M
ARM Cortex-M: pipeline, register bank, memory mapHard⏱15h
FWEM
Memory sections: .text, .data, .bss, .heap, .stackHard⏱10h
FWEM
Linker script & startup code: dari reset ke main()Hard⏱12h
FWEM
ARM Assembly & inline ASM: baca disassembly, HardFault debugHard⏱10h
FWEM
Exception model: NVIC, IRQ, SysTick, HardFault, stack frameHard⏱12h
FWEM
Peripheral Bare-metal STM32
GPIO: RCC, MODER, OTYPER, PUPDR, BSRR — tanpa HALMed⏱8h
FWEM
UART: BRR, CR1/CR2, retarget printf, ring bufferMed⏱10h
FWEM
SPI: CPOL/CPHA, CR1, DR, SR, DMA transferHard⏱10h
FWEM
I2C: addressing, ACK/NACK, error recovery, pull-up sizingHard⏱10h
FWEM
Timer: PSC, ARR, CCR — PWM, input capture, encoderHard⏱12h
FWEM
DMA: ping-pong buffer, circular, scatter-gather, cache coherencyHard⏱14h
FWEM
Watchdog: IWDG, WWDG, software watchdog multi-task, reset causeHard⏱10h
FWEM
USB CDC/HID/MSC bare-metal via TinyUSBHard⏱16h
FWEM
Debug & Protocol Analysis
GDB + OpenOCD + nvim-dap: break, step, x/nfu, disassembleHard⏱12h
FWEM
Sigrok/PulseView: decode UART/I2C/SPI/CAN dari waveformMed⏱8h
FWEM
HardFault debug: CFSR, HFSR, stack frame decode, MPU guardHard⏱10h
FWEM
RP2040 PIO: state machine, custom protokol, WS2812, encoderHard⏱14h
FWEM
C++ GPIO driver: class, RAII, template — vs versi CMed⏱12h
FWEM
Clock system & PLL: RCC, HSE, HSI, clock tree konfigurasiHard⏱8h
FWEM
Familiarity IDE industri: STM32CubeIDE, Keil µVision, IAR — workflow & project setupEasy⏱6h
FWEM
Memory Architecture — Kritis MCU Modern ⭐ Baru
Cache coherency DMA (Cortex-M7/STM32H7/ESP32-S3): D-Cache clean/invalidateHard⏱10h
FWEM
Stack overflow detection: stack canary, FreeRTOS uxTaskGetHighWaterMark, MPU guardHard⏱8h
FWEM
Heap fragmentation di embedded: kenapa malloc berbahaya, memory pool & static allocationHard⏱8h
FWEM
Memory pool pattern: block allocator, slab allocator — pola standar industri embeddedHard⏱8h
FWEM
📦 Proyek Fase 2 (8 Proyek)
P1 · Blink LED Bare-metal STM32
Tanpa HAL, register langsung, Makefile; constraint: zero HAL calls; output: LED blink via register RCC + GPIO
P2 · UART Shell
Parser command interaktif, retarget printf, debug dari Neovim; output: shell via serial yang responsive
P3 · OLED Driver I2C dari Scratch
Tanpa library, SSD1306 manual; constraint: no third-party lib; output: teks & grafik tampil di OLED
P4 · PWM Servo Controller
Timer register, multiple channel; output: servo bergerak presisi dengan duty cycle terukur di oscilloscope
P5 · Watchdog + HardFault Handler
Fault debug, decode CFSR register; output: sistem reset otomatis + log fault cause via UART
P6 · Logic Analyzer Software
RP2040 PIO sampling GPIO, output via USB; output: data digital stream yang bisa dianalisis Sigrok
P7 · C++ GPIO Driver
Class GpioPin dengan constructor/destructor, RAII, template untuk port address; deliverable: bandingkan ukuran binary vs versi C
P8 · Disassembly Debug Lab
Trigger HardFault, debug dengan objdump + GDB disassemble /m; deliverable: identifikasi instruksi penyebab dari disassembly
💡
Tips Fase 2
Beli logic analyzer murah FX2-based ($5–10). Pasang Sigrok/PulseView. Debug I2C/SPI yang error tanpa logic analyzer seperti debug kode tanpa GDB — buta. Protocol decoder Sigrok mengubah sinyal digital menjadi pesan yang manusiawi dalam satu klik.

Baca disassembly, bukan hanya kode C. Jalankan objdump -d firmware.elf dan korelasikan dengan source. Ketika HardFault terjadi, kamu butuh bisa baca PC dari stack frame dan trace ke instruksi penyebabnya di disassembly — ini skill yang membedakan firmware junior dan senior.

DMA ping-pong buffer wajib dimengerti. Ini pola yang paling sering dipakai untuk ADC streaming, audio, dan UART receive — dan paling sering salah diimplementasikan. Pelajari sekarang, bukan saat sudah ada di produksi.
📚 Sumber Materi Fase 2
Buku Wajib
The Definitive Guide to ARM Cortex-M3/M4 — Joseph Yiu · Mastering STM32 — Carmine Noviello · Programming with STM32 — Donald Norris
Video
Phil's Lab STM32 Bare Metal Series · FastBit EBA ARM Cortex-M Full Playlist · Low Level Learning GPIO & ARM Architecture · Vivonomicon Bare Metal STM32
Blog Wajib
interrupt.memfault.com "Zero to main()" series (5 artikel) · interrupt.memfault.com "How to Write a Linker Script" · interrupt.memfault.com "HardFault Debug on Cortex-M" · Azeria Labs ARM Assembly Basics
Tools
Sigrok/PulseView (logic analyzer) · GDB + OpenOCD · nvim-dap + cortex-debug · probe-rs · picocom/tio serial monitor
Simulasi & Hardware Minim Dokumentasi (tambahan roadmap GfG)
Emulator & simulator: Wokwi, Renode, QEMU — uji firmware tanpa hardwareMed⏱8h
FW
Hardware minim dokumentasi: errata, probing register, bring-up boardHard⏱10h
FW
Kontrol & Tools Debug Lanjut (tambahan roadmap m3y54m)
Control Theory & PID di Firmware: Loop Kontrol Motor, Suhu & PosisiHard⏱14h
FW
Saleae Logic — Advanced Protocol CaptureMed⏱4h
FW
Segger J-Link, Ozone & RTT LoggingMed⏱6h
FW
GDB Scripting & CoreDump AnalysisMed⏱6h
FW
Fase 3 — RTOS, Arsitektur & Protokol
Firmware multi-task terstruktur, protokol industri, power-aware design, flash storage, dan custom bootloader.
Bulan 6–10
Firmware Engineer ★ Utama Embedded Engineer ★ Utama IoT Engineer (OTA, storage)
🎯
Tolok Ukur Fase 3
FreeRTOS multi-task dengan queue dan mutex, CAN Bus data logger, custom bootloader A/B jalan, low power node <10µA (diukur), RTC + timestamped logger ke LittleFS, fuel gauge, USB CDC, error handling architecture solid.
RTOS & Arsitektur Firmware
FreeRTOS internals: TCB, scheduler, tick, heap schemesHard⏱20h
FWEM
FreeRTOS advanced: mutex, event group, software timer, TracealyzerHard⏱14h
FWEM
HAL pattern: portable driver, FSM, active object, observerHard⏱12h
FWEM
Error handling architecture: error code, propagation, assert, crash dumpHard⏱10h
FWEM
Memory safety: MPU, atomics, lock-free circular buffer, CMSIS-DSPHard⏱12h
FWEM
Protokol Hardware Lanjut
CAN Bus: frame format, arbitration, error handling, CAN FDHard⏱16h
FWEM
1-Wire: timing, parasite power, ROM search, DS18B20Med⏱4h
FWEM
RS-485 & Modbus RTU: half-duplex, DE/RE control, multi-drop bus, termination 120ΩMed⏱6h
FWEM
Modbus RTU/TCP: function codes, CRC16, gateway RTU→TCPMed⏱10h
FWEM
USB HID & MSC: descriptor, TinyUSB, composite deviceHard⏱16h
FWEM
Ethernet + lwIP: TCP server, UDP, DHCP, HTTP (W5500/LAN8720)Hard⏱16h
FWEM
Storage, RTC & Power
LittleFS + FatFS + NVS: wear leveling, safe write, power-loss proofHard⏱14h
FWEM
RTC: DS3231 eksternal, Unix timestamp, SNTP WiFi syncMed⏱10h
FWEM
Low power: sleep/stop/standby, RTC wake, clock gating, power profilingHard⏱14h
FWEM
Battery management: SoC estimation, fuel gauge MAX17048, CC/CV chargingHard⏱14h
FWEM
Custom bootloader: dual-bank A/B, CRC check, UART XMODEM, anti-brickHard⏱18h
FWEM
Real-Time Guarantees ⭐ Baru
Priority inversion: penyebab, priority ceiling protocol, priority inheritance mutexHard⏱8h
FWEM
Jitter measurement: GPIO toggle + oscilloscope, Segger SystemView task timingHard⏱8h
FWEM
Tickless mode mendalam: suppressed tick, wakeup latency, FreeRTOS configUSE_TICKLESS_IDLEHard⏱8h
FWEM
Power profiling tools: Nordic PPK2, Segger SystemView energy, oscilloscope shuntMed⏱6h
FWEM
MISRA-C tools praktis: PC-lint/Flexelint, cppcheck MISRA rules, clang-tidy checksHard⏱8h
FWEM
📦 Proyek Fase 3 (10 Proyek)
P1 · Firmware Multi-task FreeRTOS
Sensor + display + UART + queue + semaphore; output: 3+ task berjalan tanpa deadlock
P2 · PID Motor Controller
PWM + encoder, FreeRTOS, telemetry via UART; constraint: overshoot <5%
P3 · CAN Bus Data Logger
STM32 + TJA1050 transceiver, log ke SD card; output: decode frame di Sigrok
P4 · Modbus RTU Slave/Master
STM32/ESP32 + MAX485, baca sensor industri; deliverable: frame Modbus terverifikasi di Sigrok
P5 · Ultra-Low Power Node
Stop Mode + RTC wake; constraint: ukur <10µA sleep dengan PPK2 atau shunt resistor
P6 · USB CDC dari Scratch
RP2040 atau STM32 via TinyUSB; output: gantikan USB-UART dongle dengan MCU sendiri
P7 · Custom Bootloader
Dual-bank A/B, CRC check, UART XMODEM, fallback ke slot lama; deliverable: anti-brick watchdog counter
P8 · Battery-Powered IoT Node
Fuel gauge MAX17048, SoC display, alert interrupt, coulomb counting; output: estimasi baterai akurat
P9 · RTC + Timestamped Logger
DS3231 + LittleFS ke W25Q SPI flash, log sensor setiap menit, baca via UART; SNTP sync (ESP32)
P10 · Software Watchdog Multi-task
Setiap FreeRTOS task check-in ke watchdog manager; constraint: simulasi task hang → verifikasi sistem reset otomatis
💡
Tips Fase 3
Ukur semua klaim power. "Sleep current <10µA" tanpa angka dari PPK2 atau shunt resistor adalah klaim kosong. Angka nyata = credibility di interview. Shunt 10Ω + oscilloscope sudah cukup untuk mulai.

Custom bootloader adalah topik wajib di interview firmware senior. Tulis dari scratch — jangan langsung pakai MCUboot. Pahami jump ke aplikasi, CRC check, slot swap logic. MCUboot untuk Fase 4, bootloader custom untuk Fase 3.

LittleFS bukan FatFS. Untuk embedded yang bisa mati di tengah write: pakai LittleFS. Untuk data logger yang cardnya bisa dicabut dan dibaca di PC: pakai FatFS. Pahami trade-off, implementasikan keduanya.
📚 Sumber Materi Fase 3
Buku Wajib
Mastering FreeRTOS Real Time Kernel — Richard Barry (PDF gratis) · Making Embedded Systems — Elecia White 2nd Ed. · Practical UML Statecharts — Miro Samek
Video
Shawn Hymel Digi-Key RTOS 13-video series (wajib) · Jacob Sorber FreeRTOS Series · CSS Electronics CAN Bus Explained · Phil's Lab W25Q Flash Driver from Scratch
Blog Wajib
interrupt.memfault.com FreeRTOS Debugging & DMA Guide · interrupt.memfault.com "How to Write a Bootloader from Scratch" · github.com/littlefs-project · interrupt.memfault.com Memfault SDK Getting Started
Tools
Nordic PPK2 (power profiling) · DS3231 + W25Qxx SPI Flash · LittleFS + FatFS · TinyUSB · CMSIS-DSP library
Ketahanan Update di Lapangan (tambahan roadmap GfG)
Pemulihan update gagal di lapangan: rollback, boot counter, safe mode, anti-brickHard⏱12h
FW
RTOS & Zephyr (tambahan roadmap m3y54m)
Percepio Tracealyzer — RTOS VisualizationMed⏱6h
FW
RTOS Komersial & Alternatif: QNX, µC/OS, RT-ThreadMed⏱10h
FW
ThreadX / Azure RTOSMed⏱12h
FW
RIOT OS — Lightweight IoT RTOSMed⏱10h
FW
embOS & Segger EcosystemMed⏱6h
FW
Keluarga MCU & Vendor (tambahan roadmap m3y54m)
STM32 — HAL, LL, Register Level & CubeMXHard⏱16h
FW
ESP32 — ESP-IDF & Zephyr SupportHard⏱16h
FW
Nordic nRF52840 — nRF Connect SDK & ZephyrHard⏱20h
FW
Nordic nRF9160 — LTE-M & NB-IoT FirmwareHard⏱18h
FW
RP2040 — PIO State Machine & SDKMed⏱14h
FW
SAM D21/D51 — ASF & ZephyrMed⏱10h
FW
Renesas RA / RX FamilyMed⏱10h
FW
Infineon XMC & PSoC EcosystemMed⏱10h
FW
PIC32 & MPLAB HarmonyMed⏱10h
FW
Fase 4 — IoT & Konektivitas
Bangun stack IoT end-to-end dari sensor sampai dashboard. OPC-UA untuk industrial Eropa, MCUboot OTA, Matter, AWS IoT Core.
Bulan 10–16
IoT Engineer ★ Utama Firmware Engineer (OTA, security) Embedded Engineer (gateway)
🎯
Tolok Ukur Fase 4
IoT stack end-to-end (MQTT + InfluxDB + Grafana), OTA + signature verification via MCUboot, BLE GATT custom, LoRaWAN ke TTN, OPC-UA sensor server yang dibaca UaExpert, Matter device di Apple Home/Google Home.
Protokol IoT & Wireless
MQTT: QoS 0/1/2, retain, LWT, clean session, TLS, ACLMed⏱10h
IoTFW
CoAP, WebSocket, Protocol Buffers (nanopb), MessagePackHard⏱16h
IoT
BLE stack: GAP advertising, GATT, notification, MTU, bondingHard⏱15h
IoTFW
LoRa & LoRaWAN: SF, BW, OTAA/ABP, ADR, TTN, duty cycleHard⏱14h
IoT
Zigbee, Thread, Matter, NB-IoT/LTE-M, WiFi provisioningHard⏱24h
IoT
Cloud, Backend & Industrial
Mosquitto + InfluxDB + Grafana + Node-RED + Docker ComposeMed⏱14h
IoT
AWS IoT Core: thing, certificate, shadow, Rules EngineHard⏱18h
IoT
OPC-UA: information model, open62541, sensor server, UaExpertHard⏱16h
IoTEM
Industrial Ethernet awareness: PROFINET, EtherCAT, EtherNet/IPHard⏱12h
IoTEM
Networking: TCP/IP, HTTP/HTTPS, TLS 1.3, socket programming CHard⏱16h
IoTFW
IoT Security
TLS 1.3, mTLS, certificate chain, mbedTLS di MCUHard⏱14h
IoTFW
MCUboot: A/B swap, image validation, rollback, OTA signingHard⏱16h
IoTFW
OWASP IoT Top 10, device provisioning, TrustZone-M, eFuseHard⏱12h
IoT
OTA end-to-end: delta update, anti-rollback counter, fleet managementHard⏱14h
IoTFW
Network Fundamentals IoT ⭐ Baru
Subnetting & routing: CIDR, network/broadcast address, static IP, default gatewayMed⏱8h
IoT
mDNS/Bonjour: zero-config device discovery di local network, ESP32 mDNSMed⏱6h
IoTFW
Wireshark & tcpdump untuk debug IoT traffic: filter BPF, decode MQTT/CoAP, TLS handshakeHard⏱10h
IoTFW
Cloud networking dasar: VPC, security group, port forwarding, firewall rules untuk IoT backendMed⏱6h
IoT
Docker Compose untuk IoT stack: Mosquitto + InfluxDB + Grafana + Node-RED dalam satu yamlMed⏱8h
IoT
CoAP & LwM2M: standar manajemen device IoT, object model, Leshan server, firmware updateHard⏱10h
IoT
📦 Proyek Fase 4 (8 Proyek)
P1 · IoT Full Stack
ESP32 + BME280 → MQTT → InfluxDB → Grafana (Docker); output: dashboard real-time berjalan di server lokal
P2 · WebSocket Dashboard
Update sensor real-time <500ms di browser; constraint: latency terukur <500ms
P3 · BLE Sensor Hub
Custom GATT, notify dari ESP32 ke smartphone; output: data terbaca di nRF Connect app
P4 · LoRaWAN Node
The Things Network, decode di TTN console; deliverable: payload ter-decode di TTN
P5 · OTA + Signature Verification
MCUboot, A/B swap, rollback; constraint: update yang signature salah harus ditolak
P6 · Industrial IoT Gateway
Modbus RTU → MQTT bridge, Docker deployment; output: sensor industri terbaca di cloud
P7 · Matter Device
ESP32 + Matter SDK, integrasi Apple Home/Google Home; output: device muncul di Home app
P8 · OPC-UA Sensor Server
RPi + open62541, expose BME280 sebagai OPC-UA variable nodes; bridge ke MQTT via Node-RED; deliverable: data terbaca di UaExpert
💡
Tips Fase 4
OPC-UA bukan opsional untuk remote job Eropa. Hampir semua job posting embedded/IoT industrial Eropa (Jerman, Skandinavia, Belanda) menyebut OPC-UA. Implementasikan server minimal dengan open62541 di RPi — cukup expose 3 variable node dan baca dari UaExpert. Pengalaman nyata ini jauh lebih bernilai dari hafal teorinya.

PROFINET dan EtherCAT adalah bahasa umum di pabrik Eropa. Tahu perbedaannya, kapan pakai masing-masing, dan ada library open-source (p-net, SOES) adalah pertanyaan umum di interview perusahaan industrial Eropa.

Self-hosted stack dulu sebelum cloud. Pahami Mosquitto + InfluxDB + Grafana di laptop/RPi sebelum AWS IoT Core. Saat kamu debug isu koneksi, memahami layer per layer dari broker jauh lebih penting dari konfigurasi console AWS.
📚 Sumber Materi Fase 4
Buku
MQTT Essentials — HiveMQ (gratis PDF 11 bab) · Computer Networks — Tanenbaum Bab 1,6,7 · Unix Network Programming Vol.1 — Stevens
Video
HiveMQ MQTT Essentials 11-video series · Andreas Spiess LoRa/BLE/TLS/Self-hosted · Hussein Nasser TCP/WebSocket/TLS Deep Dive · Rui Santos ESP32 MQTT/BLE/OTA
Blog
randomnerdtutorials.com ESP32 semua koneksi · interrupt.memfault.com OTA/TLS/MCUboot · hivemq.com MQTT Essentials · open62541.org dokumentasi OPC-UA server C
Tools Industrial
open62541 (OPC-UA server C) · UaExpert (OPC-UA client desktop) · p-net (PROFINET IO Device stack) · Node-RED OPC-UA node · Wireshark + tcpdump
Wireless & Seluler (tambahan roadmap m3y54m)
WiFi 802.11: Station, AP Mode & Auto-ReconnectMed⏱8h
FW
Thread Mesh Networking & OpenThreadMed⏱8h
FW
Matter ProtocolMed⏱12h
FW
NB-IoT & LTE-M: SIM, AT Commands & MQTTHard⏱12h
FW
Seluler untuk IoT: GSM, LTE, LTE-M, NB-IoT & 5G RedCapMed⏱8h
FW
UWB (Ultra-Wideband): Ranging, Positioning & Digital KeyMed⏱6h
FW
Otomotif, Industri & Bus Lain (tambahan roadmap m3y54m)
LIN Bus — Automotive ProtocolMed⏱8h
FW
FlexRay & MOST: Bus Otomotif Deterministik & MultimediaMed⏱6h
FW
AUTOSAR: Classic Platform, Layered Architecture & RTEHard⏱16h
FW
PCIe: Lane, Link Training & Perangkat di SoC EmbeddedHard⏱8h
FW
Fase 5 — Kualitas, PCB & Portfolio
Kode dan project siap interview perusahaan remote internasional. CI/CD, testing, KiCad 4-layer, firmware versioning, dan functional safety awareness.
Bulan 16–20
IoT Engineer Firmware Engineer Embedded Engineer HW/PCB Designer
🎯
Tolok Ukur Fase 5
CI/CD firmware pipeline (GitHub Actions + Renode + Unity + coverage >80%), 1 PCB sampai di tangan dari JLCPCB, CHANGELOG + semantic versioning workflow, 2–3 portfolio project di GitHub dengan README bahasa Inggris + CI badge + demo video.
Testing & Kualitas Kode
Unit testing: Unity framework, CMock, TDD cycle, test doubleHard⏱14h
FWEM
CI/CD: GitHub Actions, matrix build, Renode emulasi, DockerHard⏱14h
FWEM
Static analysis: cppcheck, clang-tidy, ASan, fuzzing AFL++Med⏱10h
FWEM
MISRA-C:2012, Barr Group Coding Standard, code coverage gcovHard⏱12h
FW
Firmware versioning: semantic ver, git hash in binary, image header, anti-downgradeMed⏱8h
FWEM
Functional safety awareness: IEC 61508, ISO 26262, PSA Certified (interview level)Hard⏱10h
FWEM
KiCad PCB Layout Lanjut
KiCad PCB Layout: component placement, routing, DRC clean, GerberHard⏱20h
HWEM
4-layer stackup: signal/ground/power/signal, via stitching, return currentHard⏱16h
HW
Impedance-controlled routing: 50Ω single-ended, 90Ω diff pair USBHard⏱14h
HW
Thermal management: via thermal array, T_junction kalkulasi, copper areaHard⏱12h
HWEM
LTspice pre-PCB: buck ripple, LDO panas, decoupling impedansiMed⏱8h
EMHW
DFM: JLCPCB PCBA workflow, BOM+CPL, fiducial, panelizationMed⏱8h
HW
Board bring-up terstruktur: power sequencing, current limiting, reworkHard⏱12h
HWEM
SMD soldering & rework: hand solder, hot air, pasta solder, identifikasi cold jointMed⏱8h
HWEM
Portfolio & Karier Remote
Portfolio: README bahasa Inggris, demo video, CI badge, licenseMed⏱12h
IoTFW
Technical writing: ADR, Doxygen, async PR/issue culture, commit messageMed⏱8h
FWEM
Open source contribution: Zephyr, FreeRTOS, Embassy — PR yang mergeMed⏱20h
FWEM
Sertifikasi: AWS IoT Specialty, ARM AAE, Bootlin Embedded LinuxMed⏱40h
IoTFW
Interview: 100+ firmware questions, LeetCode bit manipulation, system designHard⏱20h
FWEM
📦 Proyek Portfolio Fase 5 (Pilih 2–3, GitHub dengan README + demo video)
P1 · PCB IoT Sensor Node
ESP32-S3 + BME280 + USB-C, KiCad 4-layer → JLCPCB PCBA; deliverable: board fisik berfungsi + foto
P2 · CI/CD Firmware Pipeline
GitHub Actions + Renode + Unity + coverage report; constraint: coverage >80% + green badge di README
P3 · Secure OTA + MCUboot
A/B swap + signature + rollback ESP32; constraint: update malformed harus ditolak + rollback otomatis
P4 · Industrial IoT Gateway
Modbus RTU → MQTT + Docker, production-grade; deliverable: Docker Compose yang bisa deploy ulang satu perintah
P5 · Mini Oscilloscope Digital
RP2040 PIO + DMA ADC + SPI display; output: waveform terukur akurat di display
P6 · Buck Converter PCB
LTspice simulation → KiCad layout → board, ukur ripple & efisiensi; deliverable: bandingkan LTspice vs hasil nyata
P7 · USB Full-Speed Device PCB
STM32 + USB connector, impedance-controlled D+/D− 90Ω, 4-layer → JLCPCB; constraint: verifikasi dengan USB analyzer
P8 · Power PCB dengan Thermal
MOSFET power switch + thermal via array; deliverable: ukur T_junction vs kalkulasi datasheet
💡
Tips Fase 5 — Persiapan Remote Job
Satu proyek selesai dengan README bagus > sepuluh proyek setengah jadi. README bahasa Inggris + CI badge + demo video + clean code = satu proyek yang bisa berbicara sendiri ke recruiter asing yang tidak bisa mengukur kamu via gelar.

Pahami functional safety di level awareness sebelum interview Eropa. Tidak perlu jadi safety engineer, tapi bisa menjawab "apa itu ASIL-B?" atau "kenapa MISRA-C wajib di automotive?" membuat kamu terlihat jauh lebih senior dari kandidat yang hanya tahu coding.

Versioning bukan formalitas. Firmware tanpa version string, git hash, dan CHANGELOG adalah firmware yang tidak siap produksi. Terapkan sejak proyek pertama di Fase 2 — bukan nanti.

Setup Wise sebelum dapat offer pertama. Verifikasi akun Wise butuh beberapa hari. Jangan baru setup saat sudah dapat offer — delay pembayaran pertama karena urusan administrasi adalah pengalaman yang buruk.

Technical skill lolos screening, soft skill remote yang lolos probation. Banyak yang diterima tapi tidak bertahan karena tidak bisa async communication, tidak bisa code review culture, tidak bisa over-communicate progress. Commit message, PR description, dan issue report dalam bahasa Inggris mulai sekarang.
📚 Sumber Materi Fase 5
Buku
Test-Driven Development for Embedded C — James Grenning (wajib) · The Pragmatic Programmer · Signal and Power Integrity Simplified — Eric Bogatin · PCB Design for Real-World EMI Control — Bruce Archambeault
Video PCB
Phil's Lab KiCad PCB Design Full Series (4-layer, impedance, USB routing) · Robert Feranec How to Learn PCB Design · Rick Hartley PCB Design & EMC Full Talk (2 jam, wajib) · JLC PCB KiCad to JLCPCB Full Workflow
Blog
interrupt.memfault.com CI/CD, Unit Testing, Portfolio · interrupt.memfault.com "Firmware Portfolio: What Recruiters Actually Look For" · embeddedartistry.com TDD & MISRA-C · keepachangelog.com · semver.org
Platform Job Hunt
LinkedIn (remote filter) · Wellfound · RemoteOK · WeWorkRemotely · Wise (terima pembayaran USD/EUR) · interrupt.memfault.com "100+ Firmware Interview Questions"
Proses, Standar & Observabilitas (tambahan roadmap m3y54m)
Static Analysis — cppcheck & clang-tidyMed⏱10h
FW
V-Model & SDLC Embedded: Dari Requirement ke VerifikasiEasy⏱4h
FW
SVN & Version Control Lain (Subversion, Perforce)Easy⏱3h
FW
Functional Safety: IEC 61508 SIL & ISO 26262 ASILHard⏱10h
FW
Memfault — Crash Reporting & OTA CloudMed⏱8h
FW
Fase 6 — Pilih Track Spesialisasi
Analisis minat, peluang kerja, dan mulai depth di 1–2 track. Ini saat memutuskan posisi diri di pasar kerja global.
Bulan 20–22
Firmware Engineer IoT Engineer Embedded Engineer
✅
Checklist Kesiapan Sebelum Masuk Track
Pastikan semua item ini sudah solid sebelum mulai deep-dive track spesialisasi:

☐ Bisa debug bare-metal STM32 dari GDB tanpa bantuan IDE
☐ Punya minimal 3 proyek selesai di GitHub dengan README bahasa Inggris
☐ Pernah implementasi FreeRTOS multi-task dengan queue dan mutex
☐ Pernah buat driver I2C/SPI dari scratch (tanpa library pihak ketiga)
☐ Bisa baca dan menulis linker script sederhana
☐ Pernah trace protokol dengan logic analyzer (bukan hanya oscilloscope)
☐ Mengerti konsep OTA dan sudah pernah implementasi (walau sederhana)
☐ Pernah mengukur konsumsi arus firmware dengan shunt atau PPK2
📊 Profil per Track & Target Perusahaan
Track A — Embedded Linux
Profil: suka sistem operasi, driver, kernel · Pasar: Eropa (Jerman, Finlandia, Belanda) · Kompetisi: Sedang
Track B — IoT Security
Profil: suka reverse engineering, CTF, security mindset · Pasar: Global, US, UK · Kompetisi: Tinggi tapi premium
Track C — FPGA/VLSI
Profil: suka digital logic, matematika, hardware detail · Pasar: US, Taiwan, Korea, defense · Kompetisi: Sangat tinggi, sangat premium
Track D — TinyML
Profil: suka ML + embedded intersection, signal processing · Pasar: Global startup, Arm ecosystem · Kompetisi: Sedang, niche baru
Track E — Geofisika
Profil: punya background geofisika atau mau niche ekstrem · Pasar: Oil & gas, BMKG, universitas riset · Kompetisi: Hampir tidak ada kompetitor
Track F — Rust Embedded
Profil: suka language design, safety-critical, tooling · Pasar: Europe safety-critical, US startup · Kompetisi: Rendah — skill langka
Cara Riset Demand Sebelum Memilih
LinkedIn Jobs → filter: "Remote" + "Firmware Engineer" — catat kata kunci di 20 job posting terakhirEasy⏱2h
RemoteOK, WeWorkRemotely — filter "embedded" atau "firmware", catat stack yang dimintaEasy⏱2h
Embedded.fm podcast episode terbaru — tren industri sering dibahasEasy
Baca job description 5 perusahaan target — identifikasi overlap dengan track yang dipertimbangkanEasy⏱3h
Kombinasi Track Sinergis
Track A + F: Embedded Linux + Rust → Zephyr+Rust, Linux driver di Rust (tren 2024+)
Track A + B: Embedded Linux + Security → Linux kernel security, Yocto hardening, CVE hunting
Track D + F: TinyML + Rust → microML inference engine di Rust — sangat langka, sangat premium
Track B + C: Security + FPGA → hardware security, bitstream encryption, side-channel resistance
🎯 Milestone Fase 6 (Bulan 20–22)
Bulan 20
Putuskan track (commit, jangan ragu lagi) · Setup environment track: install toolchain, buat repo baru khusus track
Bulan 21
Selesaikan proyek pertama (kecil/sederhana) di track yang dipilih
Bulan 22
Identifikasi satu open-source project di track tersebut untuk mulai kontribusi kecil
Fundamental OS, Layar & GUI (tambahan roadmap m3y54m)
SBC vs MCU — Kapan Pakai Mana?Easy⏱3h
FW
Display: HDMI, DSI, SPI TFT, OLED di SBCMed⏱8h
FW
Embedded GUI: LVGL, Framebuffer & Antarmuka Layar SentuhMed⏱14h
FW
Qt untuk Embedded Linux & MCU (Qt for MCUs)Hard⏱14h
FW
Fase 7 — Advanced Track Pilihan
Deep dive ke spesialisasi yang dipilih. Ini masa membangun expertise yang membuat kamu kompetitif di pasar remote internasional.
Bulan 22–28
Track A · Embedded Linux Track B · IoT Security Track C · FPGA/VLSI Track D · TinyML Track E · Geofisika Track F · Rust Embedded
Track A — Embedded Linux & Kernel DriverDicari Eropa & US
Linux process model: fork, exec, wait, zombie, orphan, IPC POSIXMed⏱10h
POSIX threads: pthread_create, mutex, cond variable, barrier, thread poolMed⏱12h
epoll/select/poll: I/O multiplexing untuk server embeddedHard⏱10h
Device Tree mendalam: sintaks DTS, overlay, compatible string, driver matchingHard⏱16h
U-Boot: boot sequence, environment variables, boot script, network bootHard⏱14h
Linux kernel module: init/exit, Makefile, insmod/rmmod, /proc entryHard⏱20h
Character device driver: file_operations, cdev, udev, ioctl, mmapHard⏱20h
Platform driver + DT binding: probe/remove, devm_, regmap, IRQHard⏱18h
Yocto Project: layer, recipe (.bb), image, SDK, devshell, PokyHard⏱24h
Buildroot: menuconfig, busybox, custom package, rootfs overlayMed⏱14h
PREEMPT_RT: patch kernel, cyclictest, SCHED_FIFO vs SCHED_OTHER, latency benchmarkHard⏱16h
Zephyr RTOS: west workspace, devicetree overlay, Kconfig, shieldHard⏱20h
PROFINET IO Device: p-net library, PROFINET vs EtherCAT, industrial EropaHard⏱20h
Kontribusi Zephyr RTOS: fix doc, small bug, add test → PR mergedHard⏱30h
Track B — IoT Security & Firmware REPremium Global
Threat modeling: STRIDE, attack tree, CVSS scoring untuk IoT deviceHard⏱14h
Secure boot: chain of trust, code signing, hash verification, anti-rollbackHard⏱16h
Firmware RE: Ghidra/Radare2, binwalk, strings, entropy analysis, decompile ARMHard⏱20h
Fuzzing firmware: AFL++ parser, protocol fuzzer, crash triagingHard⏱18h
Side-channel attack awareness: power analysis, timing, countermeasuresHard⏱14h
TLS/DTLS deep: certificate pinning, mTLS, mbedTLS internalsHard⏱16h
Hardware security: JTAG protection, debug port fusing, memory protection unitHard⏱12h
PSA Certified, SESIP, IEC 62443 — sertifikasi IoT security awarenessHard⏱20h
Track C — Digital Design / FPGA / VLSIPremium US/Taiwan
Verilog/SystemVerilog: module, always, assign, FSM, testbench, $monitorMed⏱20h
Icarus Verilog + GTKWave: simulation loop, waveform viewer, debug signalMed⏱10h
Yosys + nextpnr: synthesis open-source iCE40, timing analysis, resource reportHard⏱16h
FPGA board (iCEBreaker/Arty): constraint file, pin assignment, MMCM/PLLHard⏱18h
AXI4-Lite interface: slave register map, Vivado IP integrator, Zynq SoCHard⏱20h
Formal verification: SymbiYosys, assertions, assume/assert/coverHard⏱16h
ASIC flow awareness: synthesis → P&R → DRC/LVS → GDS — sky130 PDK praktikHard⏱20h
Track D — TinyML / Edge AI
TensorFlow Lite Micro: model convert, quantization int8, arena allocationHard⏱18h
Edge Impulse: data collection, training pipeline, deploy ke Arduino/STM32Med⏱14h
CMSIS-NN: ARM optimized neural net kernels, Cortex-M4/M7 SIMDHard⏱16h
DSP untuk ML: FFT features, MFCC untuk audio, accelerometer featuresHard⏱16h
Anomaly detection di sensor: autoencoder tiny, one-class SVM di MCUHard⏱14h
Track E — Geofisika Instrumentasi
Seismologi dasar: gelombang P/S/surface, magnitude, hiposenterMed⏱12h
Sensor geofisika: geofon, seismometer MEMS, digitizer 24-bit ADCHard⏱14h
ObsPy + Geopsy: Python geofisika, HVSR analysis, waveform processingMed⏱16h
MiniSEED format: struktur data seismik standar, baca/tulis dari MCUHard⏱12h
STA/LTA trigger: Short-Term Average / Long-Term Average event detectionHard⏱10h
Time synchronization GPS: PPS signal, NTP stratum-1, timestamping presisi nsHard⏱14h
Track F — Rust Embedded
Rust ownership, borrowing, lifetimes — memahami dari perspektif C programmerHard⏱20h
embedded-hal: trait abstraction, no_std, heapless, PAC/HAL crateHard⏱16h
probe-rs + cargo-embed: flash, RTT logging, debug STM32/nRF tanpa OpenOCDMed⏱8h
Embassy: async/await embedded, executor, RTOS-like concurrency di RustHard⏱18h
RTIC: Real-Time Interrupt-driven Concurrency — task priority, resource sharingHard⏱16h
Kontribusi Embassy atau embedded-hal — PR yang merge ke crate populerHard⏱30h
📚 Sumber Materi Fase 7
Track A — Linux
Linux Device Drivers 3rd Ed (LDD3, gratis online) · Bootlin Embedded Linux Training (elixir.bootlin.com) · The Linux Kernel Module Programming Guide · Bootlin Yocto Lab
Track B — Security
IoT Security Foundation Best Practice Guide · Ghidra Book (NSA) · The Hacker's Guide to Embedded Security · Practical IoT Hacking — Fotios Chantzis
Track C — FPGA
HDLBits (hdlbits.01xz.net) · nandland.com Verilog Course · Yosys Manual · VLSI Design by Debaprasad Das · OpenLane Sky130 Workshop
Track D — TinyML
TinyML — Pete Warden (O'Reilly) · Edge Impulse Docs · TensorFlow Lite Micro GitHub · CMSIS-DSP & CMSIS-NN docs ARM
Track E — Geofisika
ObsPy Tutorial (docs.obspy.org) · Seismological Algorithms — Bullen & Bolt · Raspberry Shake Community · Introduction to Seismology — Shearer
Track F — Rust
The Rust Programming Language (doc.rust-lang.org, gratis) · Rust Embedded Book (docs.rust-embedded.org) · Embassy docs · RTIC Book (rtic.rs)
Fase 8 — Remote Job Hunt
Portfolio final, interview, offer, signed contract. Ini garis finish — tapi juga garis start karier remote internasional.
Bulan 28–30
Firmware Engineer IoT Engineer Embedded Engineer
Portfolio Final & Strategi Self-Taught
GitHub profile README: skills, hardware, link blog — pins 6 repo terbaik dengan README ENMed⏱8h
Setiap repo: README EN + problem statement + demo GIF/video + CI badge + lisensi MIT/ApacheMed⏱12h
Video demo 30–90 detik: screencast atau hardware demo → YouTube unlisted → link di READMEEasy⏱4h
LinkedIn: keyword-optimized headline, About EN, Featured section, Skills spesifik, Open to RemoteEasy⏱3h
Resume: 1 halaman, ATS-friendly, proyek sebagai "experience" bukan "projects", quantify semua klaimMed⏱6h
Blog teknis: 1 artikel per project — error yang ditemukan + cara solusinya = yang paling dicari recruiterMed⏱10h
Job Hunt Strategy
Platform: LinkedIn (remote filter), Wellfound, RemoteOK, WeWorkRemotely, HiredEasy
Target: Arm, Nordic, Silicon Labs, Espressif, STMicro, Memfault, Golioth, Blues WirelessEasy
Cold email ke hiring manager (bukan HR) — lebih efektif dari apply portalMed⏱5h
Komunitas aktif: Embedded.fm, Embedded Artistry Discord, r/embedded, Twitter/X embeddedEasy
Open source contribution: Zephyr, FreeRTOS, Embassy, OpenOCD — PR merged = bukti nyataHard⏱30h
Sertifikasi 1–2: AWS IoT Specialty, ARM AAE, Bootlin CLFE, Linux Foundation CLFEHard⏱40h
Interview Preparation
Firmware interview: interrupt.memfault.com 100+ questions — review semuaHard⏱20h
Coding: LeetCode Easy–Medium — array, bit manipulation, linked list, FSMMed⏱15h
System design: "Design IoT sensor network 10.000 devices" — latency, reliability, OTAHard⏱10h
Behavioral: STAR method, remote collaboration experience, code review cultureMed⏱8h
Take-home assignment: embedded coding challenge — treat as production code + READMEHard⏱12h
Remote Work Soft Skills — Async-First Communication
Commit message: Conventional Commits format — fix(ble): handle null init, bukan "fix bug"Easy
PR description template: What changed? Why? How tested? Concerns? — tanpa konteks meetingMed
Async update proaktif: "sedang X, blocker Y, plan Z" sebelum ditanya — over-communicateEasy
Code review: spesifik + suggestif, bedakan nit/suggestion/request-change, apresiasi kode bagusMed
Estimasi: "3–5 hari jika tidak ada blocker X, perlu konfirmasi spec Y" — update segera jika berubahEasy
GitHub Discussion/Issue = single source of truth — bukan DM. ADR di repo untuk keputusan teknisEasy
English daily: commit, PR, issue, README dalam bahasa Inggris mulai sekarang — kebiasaan, bukan skillEasy
💰 Remote Work Finances — Terima Bayaran dari Luar Negeri (Indonesia)
Wise (Paling Direkomendasikan): rekening virtual USD/EUR, konversi ke IDR kurs mid-market, biaya ~0.5–1% — daftar sebelum dapat offer pertama, verifikasi butuh beberapa hariEasy
Payoneer: mirip Wise, lebih umum di Upwork/Fiverr/Amazon — biaya sedikit lebih tinggiEasy
SWIFT bank lokal: biaya flat $15–30 + spread kurs buruk — cocok hanya untuk transfer besar >$3000Easy
EOR (Employer of Record): Deel/Remote.com bertindak sebagai employer lokal — full-time contract + BPJS, lebih aman hukumMed
Pajak Indonesia: penghasilan dari luar negeri tetap lapor SPT Tahunan via e-Filing DJP Online setiap Maret — NPWP wajibMed
Rate benchmark: Junior $2k–4k/bln · Mid $4k–7k/bln · Senior $7k–12k/bln · Track spesialisasi 20–40% lebih tinggiEasy
Catat income dari hari pertama: spreadsheet: tanggal + nominal USD + kurs + nominal IDR — untuk SPT, jangan rekonstruksi setahun dari memoryEasy
Kontrak: pastikan ada payment terms (Net 15/30), scope of work, IP ownership, termination clause, invoicing scheduleMed
📧
Template Cold Email ke Hiring Manager
Subject: Embedded Firmware Engineer — [Nama Project Relevan dari Perusahaan Mereka]

Hi [Nama],

I've been following [Company]'s work on [specific product/blog post] — particularly your approach to [specific technical detail]. I'm a self-taught firmware engineer with hands-on experience in [skill relevan], and I think I could contribute to [specific team/project].

I recently built [proyek relevan]: [1 kalimat deskripsi + link GitHub + link demo video]. The architecture involved [2-3 poin teknis yang relevan dengan pekerjaan mereka].

I'd appreciate a brief conversation or code review — happy to complete a technical assignment if that's more useful.

Best,
[Nama] | GitHub: [link] | Blog: [link]

Tips: Personalisasi per perusahaan — referensikan produk atau blog post spesifik mereka. Kirim ke 3–5 orang di perusahaan yang sama. Follow up setelah 1 minggu jika tidak ada respons — satu kali, sopan, singkat.
⏱ Timeline 30 Bulan — Milestone Realistis
Bulan 1
Neovim + Tmux jalan, vimtutor selesai, Hello World C di terminal
Bulan 2–3
Program C selesai (pointer, struct, bitwise, callback, circular buffer), P1 UART Shell portfolio selesai di GitHub
Bulan 4
STM32 LED bare-metal via register, interrupt + ADC dipahami, P2 I2C Sensor Driver portabel selesai di GitHub
Bulan 6–7
UART/SPI/I2C bare-metal, linker script, startup code, C++ driver dasar, P3 FreeRTOS Multi-task selesai + visualisasi SystemView di GitHub
Bulan 9
Custom bootloader A/B jalan, Modbus RTU slave, CAN Bus logger — 1 proyek portfolio advanced Fase 2 selesai di GitHub
Bulan 11–12
OTA update sistem end-to-end, MQTT + TLS, low power node <10µA — P4 portfolio IoT Fase 3 selesai
Bulan 14
IoT stack: MQTT + InfluxDB + Grafana + OTA + BLE GATT — semua terdokumentasi di GitHub
Bulan 16–17
PCB IoT Node dari KiCad ke JLCPCB — P5 PCB portfolio selesai (foto PCB nyata + video bringup)
Bulan 19
CI/CD firmware pipeline, unit test coverage >80%, MISRA-C compliant — P6 Fase 5 portfolio selesai
Bulan 20
6 proyek portfolio di GitHub (README EN, CI badge, demo video), track spesialisasi dipilih berdasarkan riset demand pasar
Bulan 22
Deep dive track pilihan, kontribusi pertama ke open source (Zephyr atau FreeRTOS), 1 artikel teknis terpublikasi
Bulan 26
Matang di spesialisasi, blog artikel teknis aktif, sertifikasi dalam proses
Bulan 28
Portfolio final (8–10 proyek solid), LinkedIn optimized, cold email aktif ke perusahaan target
Bulan 30 🎯
Target: offer remote internasional
💡
20 Tips Self-Taught Mengejar Remote Internasional
1. Vim bukan pilihan, ini investasi. Setiap jam yang dihemat dari editing efisien selama 2,5 tahun = ratusan jam ekstra belajar.
2. Terminal-first workflow. Kalau bisa dilakukan di terminal, lakukan di terminal. Employer remote menilai ini.
3. Dokumentasikan perjalanan. Tulis blog tentang error yang kamu temui dan cara solusinya — ini yang paling dicari recruiter.
4. Satu proyek selesai dengan README bagus > sepuluh proyek setengah jadi.
5. Pilih spesialisasi di bulan 20. Generalist bagus untuk lokal, specialist yang dicari untuk remote internasional.
6. Fase 1–3 cukup untuk junior firmware engineer. Fase 4–5 untuk entry-level remote. Spesialisasi untuk kompetitif global.
7. Open source contribution adalah portofolio terbaik. PR yang merge di Zephyr atau FreeRTOS = bukti kualitas kode yang diverifikasi peer.
8. 5–10 jam/minggu konsisten > binge 30 jam sekali lalu berhenti.
9. Baca interrupt.memfault.com & Embedded Artistry setiap minggu. Dua sumber ini setara kuliah embedded gratis.
10. Hardware di tangan adalah privilege. Kamu punya ESP32, STM32, Arduino, RP2040 — gunakan semua, jangan biarkan berdebu.
11. Mulai tulis dalam Bahasa Inggris dari hari pertama. Commit message, README, issue — bukan saat sudah siap, tapi sekarang.
12. Technical skill lolos screening, soft skill remote yang lolos probation. Banyak yang diterima tapi tidak bertahan karena tidak bisa async communication.
13. Ukur semua klaim power kamu. "Sleep current <10µA" tanpa angka dari PPK2 adalah klaim kosong. Angka nyata = credibility di interview.
14. Versioning bukan formalitas. Firmware tanpa version string, git hash, dan CHANGELOG adalah firmware yang tidak siap produksi.
15. Self-taught butuh bukti yang lebih kuat, bukan lebih banyak. Satu proyek lengkap (README EN + CI + demo video + clean code) > sepuluh proyek tanpa dokumentasi.
16. Setup Wise sebelum kamu dapat offer pertama. Verifikasi akun butuh beberapa hari — jangan setup saat sudah dapat offer.
17. Pahami functional safety di level awareness sebelum interview Eropa. Bisa menjawab "apa itu ASIL-B?" membuat kamu terlihat jauh lebih senior.
18. PROFINET dan EtherCAT adalah bahasa umum di pabrik Eropa. Tahu perbedaannya dan ada library open-source (p-net, SOES) adalah nilai tambah besar.
19. Catat penghasilan remote dari hari pertama. Spreadsheet: tanggal + nominal USD + kurs + nominal IDR — untuk SPT, jangan rekonstruksi setahun dari memory.
20. PREEMPT_RT bukan hanya untuk Linux kernel developer. Bisa menjawab "apa bedanya SCHED_FIFO dan SCHED_OTHER?" sering ditanya di interview robotics/motion control Eropa.
📚 Referensi Fase 8
Interview
interrupt.memfault.com "100+ Firmware Interview Questions" · interrupt.memfault.com "How to Get a Job as Firmware Engineer" · embeddedartistry.com "Embedded Systems Interview Questions"
Remote Work
GitLab Handbook (gitlab.com/handbook, gratis, terlengkap) · Shape Up — Basecamp (gratis online) · A World Without Email — Cal Newport · Paul Graham "Maker's Schedule, Manager's Schedule"
Finances
wise.com — panduan setup Indonesia · deel.com/guides "Contractor Guide for Indonesia" · pajak.go.id — panduan SPT Tahunan · RemoteOK blog "How to Get Paid as a Remote Worker"
Komunitas
r/digitalnomad · r/remotework · r/embedded · Embedded Artistry Discord · Embedded.fm podcast · Twitter/X #embedded
Open Source & Magang (tambahan roadmap GfG)
Kontribusi open source firmware: Zephyr, FreeRTOS, ArduPilot — dari issue ke PRMed⏱15h
FW
Magang & posisi entry-level: target perusahaan embedded/IoT, lamaran, portofolioEasy⏱6h
FW
Soft Skill, Interview & Karier (tambahan roadmap GfG)
Soft skill: komunikasi dengan tim hardware & non-teknis, menerima feedbackEasy⏱5h
FW
Coding interview: toggle LED register, circular buffer, UART, FSM, memori terbatasHard⏱12h
FW
Jalur karier & gaji: jenjang, percabangan karier, faktor gajiEasy⏱3h
FW
Belajar berkelanjutan: sertifikasi, kursus lanjut, tren (Rust, RISC-V, Matter, TinyML)Easy⏱4h
FW
Soft Skill Inti (tambahan roadmap m3y54m)
Problem-Solving & Berpikir Kritis untuk DebuggingEasy⏱4h
FW
Manajemen Waktu & Organisasi untuk EngineerEasy⏱3h
FW
Mandiri, Adaptif & Sabar: Sikap Belajar Jangka PanjangEasy⏱3h
FW
Spesialisasi Masa Depan
3 role yang bisa dimasuki setelah menguasai fondasi dari Fase 1–3. Bukan jalur terpisah — melainkan evolusi alami dari skill yang sudah dibangun.
Masuk Bln 9–14+
★ Paling direkomendasikan Masuk setelah Fase 2 Gap skill kecil dari roadmap ini
🧠
Apa itu TinyML?
Menjalankan model machine learning (inferensi) langsung di microcontroller tanpa koneksi cloud. Contoh nyata: ESP32-S3 deteksi gerakan tangan, STM32H7 prediksi kegagalan mesin via sensor getaran, RP2040 mengenali kata kunci suara. Demand-nya meledak karena efisiensi energi dan privasi data. $45k–$120k/yr · Demand: sangat tinggi
Skill dari Roadmap Ini (Sudah Ada)
C/C++ embedded yang kuat — TFLite Micro ditulis dalam C++
FreeRTOS — inference task berjalan sebagai FreeRTOS task
STM32 / ESP32 peripheral — I2C sensor, SPI kamera, DMA untuk data
Memory management — model ML harus muat di RAM yang sangat terbatas
Yang Perlu Ditambahkan (Gap Kecil)
Edge Impulse Studio — platform gratis untuk training dan deploy model ke MCU
TensorFlow Lite Micro — framework inferensi di embedded
Python ML dasar — hanya untuk training, bukan deployment
CMSIS-NN — ARM library untuk accelerate neural network ops
Cara Masuk dari Roadmap Ini
Mulai setelah Fase 2 selesai (bulan 9+)
Daftar Edge Impulse (gratis) — bisa deploy model dalam 1 hari
Project pertama: wake-word detection di ESP32-S3 dengan mikrofon
Lanjutkan: gesture recognition dengan IMU (MPU6050) di STM32
Topik Inti TinyML
Edge Impulse — Training & DeploymentMed⏱12h
TML
TensorFlow Lite MicroHard⏱16h
TML
CMSIS-NN & ARM optimasiHard⏱14h
TML
Model quantization & pruningHard⏱14h
TML
Data pipeline untuk sensorHard⏱16h
TML
Hardware Target
ESP32-S3 — AI-optimized MCUMed⏱12h
TML
STM32H7 — ARM Cortex-M7 fastHard⏱15h
TML
Arduino Nicla Vision / SenseEasy⏱8h
TML
Sensor untuk ML: IMU, Mic, KameraMed⏱10h
TML
Demand tinggi & stabil Masuk paralel Fase 4 $55k–$150k/yr
🐧
Apa itu BSP Engineer?
Board Support Package: mengadaptasi Linux kernel agar berjalan di hardware spesifik — Raspberry Pi CM4, i.MX6/8, NVIDIA Jetson, BeagleBone. Menulis device driver, device tree, custom Yocto layer. Dipakai di: smart gateway industri, kendaraan otonom, medical device, factory automation. Berbeda dari Firmware Engineer — bekerja di SoC berkekuatan penuh, bukan MCU kecil.
Skill dari Roadmap Ini (Sudah Ada)
C mendalam — kernel Linux ditulis dalam C
Hardware protocols (I2C, SPI, UART) — device driver mengontrol peripheral yang sama
Linux CLI essentials — sudah ada di Fase 1
GDB debugging — debugging kernel module menggunakan teknik yang sama
Yang Perlu Ditambahkan (Gap Sedang)
Yocto Project — build system untuk custom Linux image
Device Tree Syntax (.dts) — "peta hardware" yang dibaca kernel
Linux kernel driver model — platform driver, bus driver
U-Boot bootloader — bootloader untuk SoC berbasis Linux
Buildroot — alternatif Yocto yang lebih mudah untuk pemula
Cara Masuk dari Roadmap Ini
Mulai paralel saat Fase 4 (bulan 12+), gunakan Raspberry Pi 4
Kuasai device tree dulu — ini bahasa utama BSP
Tulis karakter device driver sederhana untuk LED/GPIO via sysfs
Build custom image dengan Buildroot sebelum lanjut ke Yocto
Topik Inti BSP
Device Tree Syntax & DTSHard⏱16h
BSP
Linux Kernel Driver DevelopmentHard⏱20h
BSP
Yocto Project & BitBakeHard⏱24h
BSP
Buildroot — Custom Linux ImageMed⏱14h
BSP
U-Boot BootloaderHard⏱16h
BSP
JTAG Debugging Linux KernelHard⏱14h
BSP
Platform Target
Raspberry Pi CM4 / Pi 5Med⏱12h
BSP
NXP i.MX6/8 — IndustriHard⏱18h
BSP
NVIDIA Jetson Nano / OrinHard⏱16h
BSP
BeagleBone BlackMed⏱12h
BSP
Langka · Highly paid Masuk setelah Fase 3 $60k–$160k/yr
🔐
Apa itu IoT Security Engineer?
Mengamankan perangkat IoT dari serangan: secure boot, firmware signing, TLS/DTLS, proteksi terhadap firmware dumping dan reverse engineering. Juga melakukan threat modeling dan penetration testing pada device IoT. Sangat langka — kebanyakan IoT engineer tidak punya skill ini. Fondasi dari Fase 3 roadmap ini (TLS, secure boot, OTA) sudah memberi awalan yang sangat kuat.
Skill dari Roadmap Ini (Sudah Ada)
TLS/DTLS — Fase 3: enkripsi transport sudah dipelajari
Secure boot & code signing — Fase 3: sudah ada topiknya
OTA firmware update — Fase 3: memahami mekanisme update
Bootloader architecture — Fase 2: paham memory layout dan boot flow
Protocol knowledge — MQTT, BLE, LoRa: paham surface attack
Yang Perlu Ditambahkan (Gap Sedang)
Binwalk — ekstrak dan analisis firmware binary
Ghidra — reverse engineering firmware (open source NSA)
OWASP IoT Top 10 — daftar kerentanan paling umum di IoT
Hardware attack surface — JTAG extraction, UART shell, fault injection
TPM/HSM basics — Trusted Platform Module untuk key storage
Cara Masuk dari Roadmap Ini
Mulai setelah Fase 3 selesai (bulan 14+) — fondasi TLS/secure boot wajib ada
Gunakan Binwalk untuk analisis firmware router rumahan yang ada
Pelajari cara mem-bypass fitur keamanan yang sudah Anda implementasi
Ikuti CTF kategori "hardware hacking" di CTFtime.org sebagai latihan
Topik Inti IoT Security
Binwalk — Firmware Extraction & AnalysisMed⏱10h
SEC
Ghidra — Firmware Reverse EngineeringHard⏱20h
SEC
OWASP IoT Top 10Med⏱10h
SEC
Threat Modeling untuk IoT (STRIDE)Hard⏱14h
SEC
TPM / HSM — Hardware Security ModuleHard⏱16h
SEC
Hardware Attack: JTAG, UART, Fault InjectionHard⏱18h
SEC
Tools & Referensi
Attify IoT Security FrameworkMed⏱12h
SEC
Practical IoT Hacking (Buku)Hard⏱20h
SEC
CTFtime.org — Hardware Hacking CTFHard⏱20h
SEC
CVE Analysis & Firmware PatchingHard⏱14h
SEC
Tren industri 2024–2030 Mulai setelah Fase 2 Opsional tapi highly recommended
🦀
Mengapa Rust & Zephyr mulai menggeser C di embedded?
Rust kini menjadi bahasa kedua resmi di Linux kernel (sejak 6.1, 2022) dan digunakan Google di Android, Microsoft di Windows driver, dan Mozilla di browser. Di embedded, Rust menawarkan memory safety tanpa garbage collector — tidak ada null pointer dereference, buffer overflow, atau data race yang bisa lolos dari compile. Zephyr RTOS (Linux Foundation) menjadi standar baru untuk firmware grade produksi, menggantikan FreeRTOS di banyak project IoT baru. Kuasai C dulu — lalu Rust dan Zephyr sebagai diferensiasi karier Anda.
Keterkaitan dengan Roadmap Ini
C/C++ mendalam (Fase 1–2) — Rust bukan pengganti, melainkan komplemen. Ownership system Rust lebih mudah dipahami jika sudah paham pointer C
FreeRTOS (Fase 2) — Embassy Rust adalah async runtime embedded yang conceptnya mirip RTOS task, lebih mudah dipahami setelah paham FreeRTOS
ARM Cortex-M (Fase 2) — Rust embedded menarget arsitektur yang sama: STM32, nRF52, RP2040
Hardware protocols (Fase 2) — embedded-hal trait di Rust mengabstraksi SPI, I2C, UART — sama seperti HAL di C
OTA & Security (Fase 3) — MCUboot yang dipakai Zephyr sama dengan yang ada di roadmap Fase 3
Kapan Mulai & Urutan Belajar
1. Selesaikan Fase 2 dulu — Rust embedded tidak masuk akal tanpa fondasi MCU
2. Mulai Rust dari The Book + Rustlings (2–3 minggu, fokus ownership)
3. Langsung ke Embedded Rust Book — blink LED di RP2040 dengan Rust
4. Eksplorasi Embassy framework — async task tanpa RTOS tradisional
5. Zephyr bisa paralel atau setelah Rust — berbasis C tapi sistemnya lebih modern
6. MicroPython hanya untuk prototyping cepat, bukan production firmware
Prospek Karier & Demand
Rust embedded: demand naik pesat — Google, Amazon, Nordic Semiconductor, Espressif, Microsoft, ARM semua mulai adopsi
Zephyr: Linux Foundation backing — Nordic nRF SDK sepenuhnya berbasis Zephyr, SEGGER, Intel, Espressif juga support
Job posting Rust embedded tumbuh 3–4× dalam 2 tahun terakhir (Stack Overflow Survey 2024)
Kombinasi C + Rust + Zephyr = profil sangat langka dan highly paid ($80k–$180k/yr)
🦀 Rust — Fondasi Bahasa
Rust ownership, borrowing & lifetimesHard⏱40h
RustFW
Rust no_std & bare-metal setupHard⏱20h
RustEM
Rust embedded HAL & Embassy asyncHard⏱30h
RustFW
RTIC — Real-Time Interrupt-driven ConcurrencyHard⏱16h
RustFW
defmt & probe-rs — logging & debug Rust embeddedMed⏱10h
Rust
Rust FFI — interoperabilitas Rust & CHard⏱14h
RustEM
⚡ Zephyr RTOS
Zephyr RTOS — arsitektur & KconfigHard⏱20h
ZephyrFW
Zephyr device driver model & devicetreeHard⏱18h
ZephyrFW
Zephyr BLE — Nordic nRF52/nRF5340Hard⏱20h
ZephyrIoT
Zephyr networking — IPv6, MQTT, CoAP, ThreadHard⏱18h
ZephyrIoT
Zephyr power management — sleep, wakeupHard⏱14h
ZephyrIoT
🐍 MicroPython & CMake
MicroPython / CircuitPython — prototyping MCUMed⏱10h
RapidIoT
CMake untuk embedded C/C++Med⏱12h
FWEM
ARM Cortex-M Assembly — baca & debugHard⏱20h
FWEM
Highly Compensated · Global Independent Path · Math-heavy $80k–$500k+/yr
📊
Apa itu Quantitative Finance?
Membangun model matematis dan statistis untuk pricing aset, factor modeling, risk management, dan systematic trading. Quant researcher di hedge fund (AQR, Two Sigma, D.E. Shaw, Renaissance) menggunakan econometrics, ML, dan optimization untuk extract alpha dari data pasar. Quant developer mengimplementasi model tersebut ke sistem trading production. Ini adalah jalur yang sepenuhnya berbeda dari roadmap embedded/IoT, namun skill Python dan matematika dari sini adalah fondasi yang kuat. Kompensasi: $100k–$500k+/yr untuk quant researcher senior di hedge fund tier-1.
Prasyarat & Fondasi yang Diperlukan
Python mahir — NumPy, Pandas, Matplotlib, Jupyter (Fase 0 quant)
Kalkulus multivariabel — partial derivative, optimization, chain rule
Linear algebra — matrix operations, eigendecomposition, PCA
Probability & statistics — distribusi, MLE, hypothesis testing
Pemrograman fungsional — list comprehension, vectorized operations
Kurikulum 11 Topik Inti (Berurutan)
1. Python for Finance (MIT 6.0001)
2. Probability (Harvard STAT110)
3. Econometrics (Ben Lambert series)
4. Asset Pricing (Cochrane)
5. Time Series Analysis
6. Factor Modeling (Koijen + Jun Pan)
7. Portfolio Risk (MTH9845)
8. ML untuk Asset Pricing (Kelly + Gu et al.)
9. Empirical Asset Pricing with ML (Gu, Kelly, Xiu 2020)
10. Convex Optimization (Boyd/Stanford)
11. Systematic Trading (CS329S)
Target Karir & Lembaga
Hedge Fund Quant: AQR, Two Sigma, D.E. Shaw, Citadel, Renaissance
Prop Trading: Jane Street, Optiver, IMC, Virtu, DRW
Investment Bank: Goldman Sachs Strats, Morgan Stanley, JPMorgan
Asset Management: BlackRock Systematic, Vanguard, Man Group
Indonesia: BEI Research, Mandiri Sekuritas, Bahana Sekuritas, fintech quant
Jalur masuk terbaik: master/PhD program quant finance atau financial engineering
📐 Fondasi Matematika & Statistika
1. Python for Finance — MIT 6.0001Easy⏱40h
QF
2. Probability — Harvard STAT110Med⏱60h
QF
3. Econometrics — OLS, GLS, IV, Panel DataMed⏱60h
QF
5. Time Series — ARIMA, GARCH, CointegrationMed⏱50h
QF
10. Convex Optimization — Boyd/StanfordHard⏱50h
QF
💹 Finance Theory & Empirical Research
4. Asset Pricing — Cochrane (SDF, CAPM, APT)Hard⏱70h
QF
6. Factor Modeling — Koijen + Jun Pan NotesHard⏱60h
QF
7. Portfolio Risk — VaR, CVaR, Stress TestHard⏱50h
QF
8. ML untuk Asset Pricing — Kelly LectureHard⏱40h
QF
9. Empirical Asset Pricing via ML — Gu, Kelly, XiuHard⏱40h
QF
11. Systematic Trading — CS329S + de PradoHard⏱60h
QF
✎ Edit Referensi
📚
—
—
📌 Sumber dari roadmap + kurasi internet. Klik judul untuk membuka.
📚
—
Sumber belajar dari roadmap
Mengambil sumber belajar…
📌 Sumber dari roadmap + kurasi internet. Klik judul untuk membuka.
⠿
Ubah Password
➕ Tambah Projek Kustom