Skip to content
Ikbal.

Backend engineer for industrial systems

Muhammad Jafar Ikbal

I connect field protocols to reliable backend services: OPC UA, IEC 104, Kafka, and the dashboards operators use to see what is happening.

At PLN Icon Plus, I build and maintain SCADA platform services across device communication, notification delivery, and monitoring. Based in the Jakarta area, open to remote.

About

I have spent the last years between two worlds: operational technology (SCADA, PLCs, IEC 60870-5 protocols, OPC UA) and modern backend engineering (Python, Go, Java Spring Boot, Kafka, PostgreSQL, Docker). My job is making those two talk to each other reliably.

At PLN Icon Plus I built and maintain industrial communication services: an OPC UA front-end processor, a smart modem service, and a digital SMS notification gateway. Before that I worked on HRIS backends and application QA at Mutiara Solusindo.

I prefer boring technology that can be monitored: small binaries, clear protocols, tests, and logs that explain themselves.

Work

  1. May 2024 - Present

    Software Engineer

    PLN Icon Plus · Contract

    • Built and maintained industrial communication services in Python and Java Spring Boot, connecting field telemetry to SCADA platform services.
    • Delivered an OPC UA front-end processor, smart modem service, and SMS notification gateway that bridge device events into digital workflows.
    • Added network monitoring tools and a configurable OPC UA simulator to make integration work easier to inspect and test.
  2. Aug 2023 - Apr 2024

    Full Stack Developer

    Mutiara Solusindo · Contract

    • Maintained and tested HRIS backend workflows for employee data, compliance reporting, and bug resolution.

Selected contribution snapshot

21

repositories contributed

1,344

commits authored

May 2024 - Sep 2026

github.com/PT-PLN-ICONPLUS

Private repositories are summarized here. The counts come from the GitHub API and are re-counted by a script; the snapshot date is shown below.

Snapshot: 2026-09-15

Selected projects

Public source code on GitHub. Summaries here describe what the code actually does; the long-form engineering write-ups live in the case studies.

Flagship

pocketkafka

Go

A Kafka-compatible event broker written from scratch in Go. Wire protocol, consumer-group coordination, log compaction, tiered storage, a schema registry, and REST plus MQTT gateways all ship in one static binary with no third-party dependencies.

Verified in repository

  • Zero third-party Go dependencies
  • 15 test files across protocol, storage, gateways, and e2e
  • CI runs build, vet, and test on push and pull request
  1. Producer
  2. Broker
  3. Consumer

industrial-iot-dashboard

TypeScript

The presentation layer of an OPC UA to Kafka to WebSocket pipeline. It renders 3-phase voltage, current and power analytics, a digital I/O and breaker state panel, and a threshold alarm log, driven either by live WebSocket telemetry or a built-in mock simulator.

digital-gateway-notifier

Python

A Kafka alarm consumer that fans notifications out to Telegram and WhatsApp. A FastAPI backend handles JWT-authenticated user management, a React dashboard edits recipients and channel preferences, and PostgreSQL stores them, with an audit trail published back to Kafka.

kafka-ws-bridge

Python

A FastAPI service that bridges Kafka topics to WebSocket clients with topic-based routing. Connected clients subscribe per topic, an HTTP endpoint publishes back to Kafka, and health and metrics endpoints expose the service state.

opc-load-simulator-python

JavaScript

An OPC UA server simulator built on Node-OPCUA for exercising clients, SCADA systems and gateways without physical hardware. Address space and node behaviour come from JSON config, it generates sine, cosine and random sensor values, and it ships with Docker Compose and a Kubernetes manifest.

pi-codego

Go

A native Go rewrite of a coding-agent CLI: no Node or Bun runtime, an interactive Bubbletea TUI plus print and headless RPC modes, multi-provider LLM clients, native tool execution with context cancellation, and JSONL session trees.

Contact

Open to backend / industrial IoT roles and collaborations. The fastest way to reach me is email or LinkedIn.