"Turning coffee into firmware, and firmware into blinking LEDs."
Professional LED blinker Embedded Systems Engineer (promoted, allegedly)
π Pin-Out Whisperer β’ π§ Neural Nets in 264 KB of RAM β’ β Coffee-to-Firmware Compiler
// Debugging rule #1: it's always the wiring. Rule #2: see rule #1. //
#include <stdint.h>
typedef struct {
const char *name;
const char *role;
const char *focus[4];
const char *daily_driver[4];
const char *buffs[3];
const char *debuffs[3];
uint8_t coffee_level; /* 0..255, mostly 255 */
const char *motto;
} engineer_t;
const engineer_t faril = {
.name = "Faril Pirwanhadi",
.role = "Embedded Systems Engineer",
.focus = { "TinyML", "Reinforcement Learning", "IoT", "Intelligent Sensing" },
.daily_driver = { "C/C++", "Python", "FreeRTOS", "ROS 2" },
.buffs = { "Coffee", "A working oscilloscope", "Clean ground plane" },
.debuffs = { "Floating pins", "Race conditions", "Magic smoke" },
.coffee_level = 0xFF, /* saturated, as usual */
.motto = "If it compiles, flash it. If it smokes, check the wiring.",
};- π Recently defended my thesis on edge-intelligent aquaculture monitoring: reinforcement learning + TinyML + 5G N3IWF
- π§ Squeezing neural networks into microcontrollers with TinyML
- π Flying simulated drones with ArduPilot + Gazebo (no propellers were harmed)
- π¬ Ask me about RP2040, FreeRTOS, micro-ROS, or why your IΒ²C bus just froze
- β‘ Fun fact: half of my debugging is done with a single LED
| Category | Technologies |
|---|---|
| Languages | |
| Embedded & RTOS | |
| Robotics & Drones | |
| AI / ML | |
| Backend & Data | |
| Frontend & Apps | |
| Networking & Security | |
| Tools & Testing |
|
π thesis Β· showcase
Predicts toxic-ammonia (NHβ) risk from just pH + temperature with a progressive Rule β FQL β DQN pipeline. The DQN trains on a Raspberry Pi 5 and is distilled into a ~5 KB Q-table that a Pico runs in O(1), with every node linked through a 5G N3IWF local edge hub. C Python RP2040 RL 5G N3IWF
|
π private
CRYSTALS-Kyber512 (NIST ML-KEM, FIPS 203) on a $4 microcontroller: a self-test and benchmark at ~6 ms per KeyGen + Encaps + Decaps cycle, plus an encrypted Pico β PC chat over USB serial. C Pico SDK Python Cryptography
|
π± TinyML Smart FarmingTwo int8-quantized neural networks (TensorFlow Lite Micro) decide fan and pump levels from DHT11 temperature/humidity plus an analog sensor, all running on a Raspberry Pi Pico. C++ TFLite Micro FreeRTOS RP2040
|
πΈ KantongA local-first money manager PWA for juggling Rupiah and New Taiwan Dollar: a daily-interest engine, cross-currency transfers, offline-first storage, and a strict CSP with an attack simulation running in CI. React 19 TypeScript Vite IndexedDB
|
|
openmv
Camera capture with PIO + DMA through a 74HC165 shift register (just 2 GPIOs for 8 data bits), printing each frame as ASCII art over USB serial. C PIO DMA Pico SDK
|
FreeRTOS tasks synchronized with semaphores on a Pico, publishing their state to ROS 2 Humble via micro-ROS (XRCE-DDS), plus a pure ROS 2 C++ port of the same pattern. C C++ FreeRTOS micro-ROS ROS 2
|

