👋 Hi, my name is Fernando Siahaan

I'm an Software Engineer | IoT Engineer

LinkedIn



About Me

Additional Information

I am a graduate in Electrical Engineering with a deep interest in technology and research. With a background in engineering and programming, I have experience in software & firmware development, as well as implementing software & IoT solutions. I am committed to continuously learning and developing my skills in the latest technological advancements, and applying my knowledge to various innovative projects.

Skills

  • Programming Languages: C/C++, Go, Python
  • Embedded Device: OrangePi, RaspberryPi, ESP32, STM32, Arduino
  • Tools/ application: Git, Platformio, Postman, Vscode, MQTT, JWT, Redis, gRPC, protobuf, RabbitMQ
  • Databases: MySql, Sqlite, PostgreSQL


My Project

📚 Collaborative Task Manage (Backend)

Description: Collaborative Task ... Description: Collaborative Task Management System is a platform designed to help users efficiently manage their tasks, whether for personal use or in a team context. This system allows users to create, track, update, and delete tasks in real-time, as well as provides collaboration capabilities among team members, including real-time notifications, task reminders, and activity logging.

The development utilizes several tech stacks, such as:
  • Go Programming Language (Golang) with manage routing Gorilla Mux
  • Microservice Architecture : The system consists of several independent services that communicate with each other, such as the user service, task service, log service, and notification service.
  • Clean architecture
  • Security with JWT Token Authentication
  • Redis Data Caching
  • RabbitMQ Message Queue : for Asynchronous Communication message beetween microservice (from task service send to notification service)
  • gRPC (Google Remote Procedure Call) -> for synchronous communication beetween microservice (from task service request data to user service)
  • Database SQL PostgreSQL -> Database SQL for task and user microservice DB
  • Database NoSQL MongoDB -> for logging microservice DB (in progress)
  • Docker Environment Management -> for setup and package all env & all these tech stacks (redis, rabitmq, PostgreSQL, etc)
  • Datadog Monitoring Performance Tool -> for create dashboard performance about these system (redis, rabitmq, PostgreSQL, etc)

Smart Monitor

Description: The Smart Monitor is ... Description: Smart Monitor is an IoT device used in farming to monitor the environment of the animal enclosure, including conditions such as temperature, humidity, wind, light, and odor levels (ppm). The devices use an ESP32.

Contributions:
  • Developed the complete firmware, including communication with sensors via BLE, Modbus, and other protocols.
  • Designed the data transmission format for sensor data, both periodic and instantaneous, sent to an MQTT broker for backend processing.
  • Developed additional device features such as data backup, time synchronization, over-the-air (OTA) updates, and more.

Smart Controller

Description: The Smart Controller is ... Description: The Smart Controller is an IoT device used in farming to manage the environment of the animal enclosure, such as controlling fans, lights, heaters, or coolers within the enclosure. The devices use ESP32 and STM32.

Contributions:
  • Developed firmware for handling faulty sensors and backups.
  • Enabled two-way communication between the Smart Monitor device and the Smart Controller.

Smart Camera

Description: The Smart Camera is ... Description: The Smart Camera is an IoT device used in farming to analyze and predict the crowdness of chicken behavior. This device was developed using Orange Pi.

Contributions:
  • Developed a script for scheduled image transmission using cronjob.
  • Developed a script for the over-the-air (OTA) update process for the device.
  • Developed a feature to generate remote names using tmate.

Retro Dashboard

Description: Retro dashboard is ... Description: Retro Dashboard is a desktop application designed to serve as a dashboard for V8 vehicles. The application provides real-time data on vehicle conditions, such as RPM, torque, and more. The implementation is planned to be carried out on a Jetson Nano device.

Contributions:
  • Developed the desktop application using Qt with C++.
  • Integrated the PCANBasic API as a CAN bus data converter from the device to the vehicle.

MVP-FMS

Description: MVP FMS is ... Description: MVP FMS is an IoT device designed for use in mining vehicles, such as Komatsu. The device tracks various vehicle data, including CAN bus data, RS232 data, voltage, and GPS. This data is transmitted via Bluetooth and received by a tablet device in the vehicle. The device uses an ESP32.

Contributions:
  • Developed firmware using ESP-IDF to retrieve sensor data from CAN bus, RS232, voltage in/out, and GPS.
  • Implemented TLV format for interaction between the MVP FMS device and the vehicle.
  • Implemented TLV format for interaction with the tablet device using classic Bluetooth.
  • Developed an hour meter feature to track vehicle operating time information.