Skip to content
View latverian's full-sized avatar

Block or report latverian

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
latverian/README.md
Faril Pirwanhadi, Embedded Systems Engineer

Typing SVG

"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. //

LinkedIn Gmail


🧩 About Me

#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.",
};

⚑ Currently

  • πŸŽ“ 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

πŸ› οΈ Tech Stack

Category Technologies
Languages C C++ Python TypeScript JavaScript Bash
Embedded & RTOS Raspberry Pi Pico Raspberry Pi + Sense HAT FreeRTOS Pico SDK PIO + DMA CMake
Robotics & Drones ROS 2 micro-ROS ArduPilot Gazebo MAVLink DroneKit
AI / ML TensorFlow Lite Micro PyTorch NumPy Reinforcement Learning TinyML
Backend & Data FastAPI PostgreSQL Docker
Frontend & Apps Vue 3 React Electron Leaflet Tailwind Vite
Networking & Security 5G N3IWF IPsec ML-KEM / Kyber
Tools & Testing GitHub Actions pytest Vitest Ubuntu Git

πŸš€ Featured Projects

πŸŽ“ 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

πŸ” Post-Quantum Crypto on RP2040

πŸ”’ 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
RPIPICO_AGRICULTURE

Two 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

πŸ’Έ Kantong

live demo

A 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

πŸ“Š GitHub Stats

Contribution streak Top languages

πŸ‘Ύ Pac-Man Ate My Commits

Pac-Man eating my contribution graph

β€œWhen you want something in life, you just gotta reach out and grab it.” β€” Alexander Supertramp, Into the Wild

Thanks for dropping by!

Profile views

Popular repositories Loading

  1. Chapter2_Blinktxt Chapter2_Blinktxt Public

    C

  2. RPIPICO_AGRICULTURE RPIPICO_AGRICULTURE Public

    C++

  3. piows2812 piows2812 Public

    C

  4. blink_synk_ros2 blink_synk_ros2 Public

    ROS 2 port of the FreeRTOS BlinkSynk exercise: task notifications as services, tasks as timed nodes

    C++

  5. micro_ros_assignment micro_ros_assignment Public

    C

  6. openmv openmv Public

    OV7670 camera capture on RP2040 via PIO + DMA, frames printed as ASCII art over USB

    CMake