<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Eko Suryahadi</title>
    <description>The latest articles on DEV Community by Eko Suryahadi (@eko_suryahadi).</description>
    <link>https://dev.to/eko_suryahadi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4182144%2F7dbe89aa-6fb9-473b-9e5d-8298b36fb66c.jpg</url>
      <title>DEV Community: Eko Suryahadi</title>
      <link>https://dev.to/eko_suryahadi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eko_suryahadi"/>
    <language>en</language>
    <item>
      <title>Building Indonesia's Industrial Data Layer: From Power BI to DuckDB Lakehouses and Multi-Agent AI</title>
      <dc:creator>Eko Suryahadi</dc:creator>
      <pubDate>Tue, 13 Oct 2026 13:02:24 +0000</pubDate>
      <link>https://dev.to/eko_suryahadi/building-indonesias-industrial-data-layer-from-power-bi-to-duckdb-lakehouses-and-multi-agent-ai-1fmn</link>
      <guid>https://dev.to/eko_suryahadi/building-indonesias-industrial-data-layer-from-power-bi-to-duckdb-lakehouses-and-multi-agent-ai-1fmn</guid>
      <description>&lt;p&gt;Building Indonesia's Industrial Data Layer From Power BI Dashboards to Out‑of‑Core Engines and Multi‑Agent AI&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Most industrial data projects fail at the same point:&lt;/strong&gt; the data sits in the plant, the decisions sit in the boardroom, and nobody bridges the two.&lt;br&gt;
I've spent years working that messy middle — Oil &amp;amp; Gas production analytics, EPC project controls, and AI systems that turn field data into decisions.&lt;br&gt;
This is the architecture, the benchmarks, and the portfolio.&lt;/p&gt;

&lt;p&gt;The Problem&lt;br&gt;
Indonesia's heavy industry runs on a fragmented data stack. The production engineer tracks well output in a spreadsheet. The project scheduler manages a Gantt chart in MS Project. The HSE supervisor files safety reports in a web form. The PMO director wants a single view but gets three different PowerPoint decks.&lt;/p&gt;

&lt;p&gt;Traditional BI tools (Power BI, Tableau) work for aggregated reporting, but they &lt;strong&gt;cannot&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process millions of rows without hammering the source database&lt;/li&gt;
&lt;li&gt;Run predictive models (delay forecast, cost overrun flags) in the same pipeline&lt;/li&gt;
&lt;li&gt;Handle multi-user real-time collaboration on project schedules&lt;/li&gt;
&lt;li&gt;Execute autonomous agents that monitor, alert, and act&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We needed something else.&lt;/p&gt;

&lt;p&gt;The Architecture: Three Layers&lt;br&gt;
Layer 1: Out‑of‑Core Lakehouse (GaungNusa)&lt;/p&gt;

&lt;p&gt;The core insight: memory is the bottleneck in a $50/month VPS. Traditional data platforms assume infinite RAM. Industrial datasets (production logs, inspection records, supply chain movements) regularly exceed 5 million rows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DuckDB 1.1.0 (pure-JS fallback, no native binary conflicts)&lt;/li&gt;
&lt;li&gt;Polars/Arrow vectorized memory processing&lt;/li&gt;
&lt;li&gt;Snappy Parquet on MinIO S3 (Bronze → Silver → Gold tiering)&lt;/li&gt;
&lt;li&gt;Prisma ORM on PostgreSQL for the business layer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Benchmark:&lt;/strong&gt; Aggregated 5,000,000 synthetic rows via DuckDB with only &lt;strong&gt;+0.12 MB Node.js heap delta&lt;/strong&gt; — the entire operation spilled to SSD, not memory.&lt;/p&gt;

&lt;p&gt;flowchart LR&lt;br&gt;
A[Raw Parquet] --&amp;gt; B[Bronze / MinIO]&lt;br&gt;
B --&amp;gt; C[DuckDB Out-of-Core]&lt;br&gt;
C --&amp;gt; D[Silver / MinIO]&lt;br&gt;
D --&amp;gt; E[Polars Arrow Pipeline]&lt;br&gt;
E --&amp;gt; F[Gold / MinIO]&lt;br&gt;
F --&amp;gt; G[Next.js API Route]&lt;br&gt;
G --&amp;gt; H[React Dashboard]&lt;/p&gt;

&lt;p&gt;Layer 2: Project Scheduling &amp;amp; Cost Control (Kurvaup)&lt;br&gt;
MS Project is the standard in EPC contracting, but it's single-user, Windows-only, and expensive per seat. We built a web-native replacement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core capabilities:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recursive Critical Path Method (CPM) with custom non-working calendar exceptions&lt;/li&gt;
&lt;li&gt;4-way dependency graphs (FS, SS, FF, SF + Lag)&lt;/li&gt;
&lt;li&gt;S-Curve baseline variance tracking (EV, PV, AC)&lt;/li&gt;
&lt;li&gt;Earned Value Analysis: SPI, CPI, CBS‑WBS reconciliation&lt;/li&gt;
&lt;li&gt;Multi-contractor milestone valuation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why it matters for EPC contractors:&lt;/strong&gt; A medium refinery project runs 2,500+ activities across 5+ contractors. The scheduler reconciles 6 different MS Project files weekly. Kurvaup collapses this into a real-time multi-user view with automated delay propagation.&lt;/p&gt;

&lt;p&gt;Layer 3: AI Agents &amp;amp; MCP Integration&lt;/p&gt;

&lt;p&gt;The Model Context Protocol (MCP) connects LLMs directly to enterprise data without brittle RAG pipelines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Batu ERP Agent:&lt;/strong&gt; Natural-language queries against inventory, POs, production milestones&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Valoris Agentic Suite:&lt;/strong&gt; Multi-agent autonomous framework for operational analysis and report synthesis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Power BI Model Bridge:&lt;/strong&gt; Automated DAX measure optimization, schema validation, and documentation via MCP server&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;QueryGuard:&lt;/strong&gt; SQL AST injection prevention on autonomous query channels&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Portfolio (50+ Production Repositories)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;th&gt;Engine&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kurvaup&lt;/td&gt;
&lt;td&gt;EPC Scheduling&lt;/td&gt;
&lt;td&gt;Next.js + DuckDB&lt;/td&gt;
&lt;td&gt;Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GaungNusa Lakehouse&lt;/td&gt;
&lt;td&gt;Data Lakehouse&lt;/td&gt;
&lt;td&gt;DuckDB/Polars/MinIO&lt;/td&gt;
&lt;td&gt;Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safety Analytics Pro&lt;/td&gt;
&lt;td&gt;O&amp;amp;G HSE&lt;/td&gt;
&lt;td&gt;FastAPI + React&lt;/td&gt;
&lt;td&gt;Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EPC Delay Predictor&lt;/td&gt;
&lt;td&gt;Project Controls&lt;/td&gt;
&lt;td&gt;XGBoost + Next.js&lt;/td&gt;
&lt;td&gt;Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Valoris AI Agents&lt;/td&gt;
&lt;td&gt;Operational AI&lt;/td&gt;
&lt;td&gt;LangChain/Claude/MCP&lt;/td&gt;
&lt;td&gt;Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Batu ERP Agent&lt;/td&gt;
&lt;td&gt;Manufacturing&lt;/td&gt;
&lt;td&gt;AI Agent + API&lt;/td&gt;
&lt;td&gt;Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ControlCheck&lt;/td&gt;
&lt;td&gt;QA/QC Field&lt;/td&gt;
&lt;td&gt;Next.js + PostgreSQL&lt;/td&gt;
&lt;td&gt;Pilot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ESG AI Carbon&lt;/td&gt;
&lt;td&gt;Sustainability&lt;/td&gt;
&lt;td&gt;Python + API&lt;/td&gt;
&lt;td&gt;Pilot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DTI Dashboard Builder&lt;/td&gt;
&lt;td&gt;Analytics&lt;/td&gt;
&lt;td&gt;Low-Code Builder&lt;/td&gt;
&lt;td&gt;Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SC-EPC Supply Chain&lt;/td&gt;
&lt;td&gt;Material Tracking&lt;/td&gt;
&lt;td&gt;Next.js + Prisma&lt;/td&gt;
&lt;td&gt;Live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost Control SaaS&lt;/td&gt;
&lt;td&gt;EVM/CBS&lt;/td&gt;
&lt;td&gt;SaaS Platform&lt;/td&gt;
&lt;td&gt;Beta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Band Procurement&lt;/td&gt;
&lt;td&gt;Procurement&lt;/td&gt;
&lt;td&gt;MVP&lt;/td&gt;
&lt;td&gt;Beta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TalentaDesk&lt;/td&gt;
&lt;td&gt;Manpower&lt;/td&gt;
&lt;td&gt;Next.js + PostgreSQL&lt;/td&gt;
&lt;td&gt;Live&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The Business Case
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;For investors:&lt;/strong&gt; Indonesia's infrastructure spend will exceed IDR 400 trillion in 2026 (PUPR budget + SOE capex). Every rupiah needs tracking, scheduling, and compliance. Current tools are fragmented (MS Project + Excel + Power BI + WhatsApp). A unified decision layer for EPC/O&amp;amp;G operators in Southeast Asia is a greenfield opportunity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For clients:&lt;/strong&gt; An EPC contractor managing 10 projects simultaneously can reduce delay-related cost exposure by an estimated &lt;strong&gt;$750K-1.2M/year&lt;/strong&gt; with predictive delay flags appearing 3-4 weeks before conventional reports detect them. Safety compliance audit time drops from 5 days to 4 hours with AI-assisted report synthesis.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Lead
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Eko Suryahadi&lt;/strong&gt; — Industrial Data &amp;amp; AI Specialist / EPC Tech Lead.&lt;/p&gt;

&lt;p&gt;Production out-of-core data systems, mathematical project scheduling engines, and AI agent engineering. Built end-to-end: from Power BI delivery models to DuckDB lakehouses to autonomous multi-agent frameworks, with Oil &amp;amp; Gas and EPC domain depth.&lt;/p&gt;

&lt;p&gt;I don't build dashboards. I build the decision layer between field data and management actions, end to end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's Talk
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Portfolio:&lt;/strong&gt; ekosuryahadi.web.id&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:e.suryahadi@gmail.com"&gt;e.suryahadi@gmail.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Location:&lt;/strong&gt; Indonesia (UTC+7) — Remote &amp;amp; On-Site Heavy Industry Advisory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open to select consulting engagements: data engine architecture, EPC scheduling systems, and custom AI agent deployments.&lt;/p&gt;

</description>
      <category>dataengineering</category>
      <category>duckdb</category>
      <category>ai</category>
      <category>powerbi</category>
    </item>
  </channel>
</rss>
