Skip to content
View adityonugrohoid's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report adityonugrohoid

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. 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
adityonugrohoid/README.md

Adityo Nugroho

AI Engineer: system design of agentic AI, LLM serving and MLOps for telecom operations, on 18 years in mobile network performance

Architecture first: agent systems, data platforms, model serving and evaluation gates, each built end to end and measured. Telecom operations are the proving ground.

 

Featured Projects

NetPulse AI: the four agent cards of one run, with the Network Investigator and CDR Analyzer details open showing their MCP Toolbox queries, results and findings

Four agents on Google Cloud turn a customer complaint into a triaged NOC incident ticket in a measured 10 to 21 seconds

A Google ADK SequentialAgent runs four Gemini sub-agents on Vertex AI. MCP Toolbox is the single data gateway, switching between SQLite, AlloyDB and BigQuery by configuration, and a four-attempt model-fallback ladder rides out Vertex AI quota contention, each attempt drawing on its own quota. Live on Cloud Run; CI runs the failover self-tests.

  • Selected Top 100 at Google Cloud Gen AI Academy APAC 2026 (Cohort 1)
  • NetPulse Perf, a private working prototype, runs the same design on a tier-1 Indonesian mobile operator's real weekly performance data (1.3M KPI rows) and was demoed to its operations team in July 2026, ahead of a proof of concept.
  • Each card is an audit trail of the tool call the agent made, the rows that came back and the finding it handed to the next agent, streamed to the operator as it happens. The ticket at the end carries recommended NOC actions; a person picks one, and nothing executes on its own.
  • Model failover in action, the Response Formatter's badge reads 3.1 Flash-Lite, then 3.5 Flash-Lite during a Vertex quota squeeze mid-run. A four-attempt ladder swaps models instead of regions, since preview models are region-gated and each model carries its own quota.

RAN Lakehouse: best-server RSRP across the synthetic operator with every cell boundary drawn

3GPP performance files to a versioned KPI catalog and a semver API, with the failures of real operator pipelines planted and tested

A synthetic Indonesian multi-vendor operator (4G LTE and 2G GSM, two vendor dialects) drops performance files every 15 minutes. A bronze-silver-gold pipeline on Iceberg (Lakekeeper) and DuckDB with dbt builds the catalog, and an HTTP API under a semver contract serves KPIs, topology, network planning (OR-Tools optimization) and a what-if simulator: the platform agents like NetPulse AI need.

  • Planted and tested: late, renamed, missing and suspect files, reprocessing and lineage, each guarded by a test; cross-checked against a public Zenodo dataset (Pearson r 0.94 on LTE)
  • 151 tests; one docker compose command runs the demo; CI runs the pipeline against the catalog

Telecom MLOps: the events of a 180-day replay and the days a model was promoted for each

Validate the day's data, detect drift, retrain, and promote only past a margin calibrated against a no-change control run

Six use cases (churn, root cause, anomaly detection, QoE, capacity, network optimization) run on one contract-first loop; each owns its generator, schema and label delay. A candidate is promoted only when it beats the live model by twice the gain that retraining produces from noise alone.

  • Over a 180-day replay, learned 6 real changes and refused every model retrained on a benign shift, with a full promotion audit trail
  • 125 tests, strict typing; CI replays 14 days of all six use cases on every push

Sionna Twin: ray-traced path gain draped over synthetic terrain in 3D

A U-Net that emulates the NVIDIA Sionna RT ray tracer at 1.55 dB error on unseen terrain, 133.5x faster per additional map

Ray-traced path-gain maps with measured uncertainty feed a versioned dataset contract (5,814 maps over 126/9/9 terrains), a PyTorch U-Net learns to predict them on terrain it has never seen, and a tilt and power search runs on the model. Limitations are stated, including a mesh diffraction gap in the tracer.

  • 1.55 dB mean error against 3.13 and 3.84 dB for two classic propagation models; the search lands within 0.01 of the ray tracer's optimum in 68 to 71 of 72 cases, against 3 for a tilt rule of thumb and 15 for a fixed setting
  • 159 tests, CI in 2.5 minutes; every headline number regenerated from committed records

Scale-to-Zero Inference: the Grafana dashboard of one full cycle

Event-driven, two-layer scale-to-zero serving: zero idle cost at both the pod and the node level

KEDA scales vLLM pods on Redis queue depth, and the GKE Cluster Autoscaler scales the GPU node on pending pods. Cold start, the price of scale-to-zero, was measured and cut from about 11 to about 5.6 minutes by moving weights to a persistent volume and pre-caching the image on a secondary boot disk.

  • Full cycle recorded: 1,762 requests end to end, including a Spot node loss and recovery
  • Observability: 12-panel Grafana over Prometheus and NVIDIA DCGM, Locust load tests; CI lints the manifests; 30 stars, 10 forks

Edge MCP Caller: accuracy of the 270M specialist against three baselines at 3 to 14 tools

A 270M model that carries 14 MCP tool definitions in its weights: a 20-token query returns a JSON tool call

LoRA fine-tuning of Gemma 3 270M moves all 14 tool definitions (filesystem and git) out of the prompt and into the weights, proving the method on general tools.

  • 99.5% accuracy on 420 held-out calls, against 41.7% for GPT-OSS 120B and 13.6% for FunctionGemma with schemas in the prompt; 32x fewer prompt tokens; 153 ms on a laptop
  • Trained on one 8 GB consumer GPU from 14,033 examples; the weights ship as a 291 MB GGUF release, and CI runs all 14 tools against real MCP servers on CPU

 


Code in these repos is written with Claude Code under the author's direction, one gated pull request at a time; the author owns the architecture, the data contracts and the evaluation design.

 

Connect

Pinned Loading

  1. hackathon-telecom-ops hackathon-telecom-ops Public

    Multi-agent telecom ops assistant on Google ADK and Vertex Gemini over bundled SQLite via MCP Toolbox

    HTML 3

  2. ran-lakehouse ran-lakehouse Public

    Mini telecom lakehouse and data generator for a synthetic 4G/2G multi-vendor operator: 3GPP PM files, bronze-silver-gold, planted data-quality cases, API and what-if simulator

    Python

  3. gpu-autoscale-inference gpu-autoscale-inference Public

    Scale-to-zero GPU inference on Kubernetes with KEDA pod autoscaling and Cluster Autoscaler node provisioning

    Shell 33 11

  4. telecom-mlops telecom-mlops Public

    Six telecom ML use cases on one MLOps pipeline with a simulated daily drift loop: validate, detect drift, retrain, promote only when better.

    Python

  5. edge-mcp-caller edge-mcp-caller Public

    270M specialist baking MCP tool knowledge into weights: 99.5% accuracy, 32x fewer prompt tokens

    Python

  6. sionna-twin-ops sionna-twin-ops Public

    A learned surrogate of the Sionna RT ray tracer: predicts one sector's coverage on synthetic hilly terrain and searches tilt, azimuth and power

    HTML