Software Engineer | AI Product Lead
Singapore
Hey there, my name is Satrio, nice to e-meet you.
I'm a Software Engineer with 6+ years of experience, delivering enterprise-grade solutions and architecting scalable platforms across industries and countries.
Over the years, I've enjoyed navigating the messy middle between what stakeholders want and what's technically possible. Took me from writing robust code to owning architectural design, cross-functional delivery, and digital strategy.
Right now, I'm diving deeper into AI and LLMs, both through my work and my Master's in Computer Science at the University of Texas at Austin, while keeping one foot in the tech and the other in the business.
Rio Tinto - Singapore | Mar 2024 - Present
Building production System and Azure systems for Legal, Ethics & Compliance, Risk and Company Secretariat teams, plus business-safe AI workflows.
Embedded with LGCA stakeholders to turn ambiguous Legal, Ethics & Compliance, Risk and Company Secretariat workflows into production systems, owning discovery, architecture, delivery, testing and iteration across C#/.NET, Dataverse, React, Python and Azure. Architected the Company Secretarial platform: a layered Dataverse solution with 56 entities, 72 workflow definitions, 10 custom APIs, authored web resources, PCF controls, Word templates, and DocuSign/Diligent integrations with role-based security. Built ChatGPT Enterprise MCP integrations for all LGCA systems and iManage on Azure Functions (OAuth 2.0/PKCE, Dynamic Client Registration, Key Vault-backed sessions, Dataverse custom APIs) exposing safe search, read, create and update without raw Dataverse writes. Created internal delivery accelerators, admin tooling and BI dashboards to scale digital transformation and surface business insight.
sa.global - Singapore | Mar 2021 - Feb 2024
Delivered Dynamics 365, Azure and Power Platform implementations for customers across many industries as a trusted technical advisor.
PT Sanggar Sarana Baja (Trakindo Group) - South Jakarta, Indonesia | Dec 2019 - Dec 2020
Executed Dynamics 365, Power Platform and Azure implementations into production with C#/.NET and SQL.
PT Len Industri (Persero) - Bandung, West Java, Indonesia | Jul 2018 - Aug 2018
Software engineering internship while studying at Institut Teknologi Sepuluh Nopember.
L'Oréal - Cikarang, West Java, Indonesia | Mar 2016 - Dec 2016
Software engineering internship while studying at Politeknik Manufaktur Bandung.
The University of Texas at Austin - Austin, Texas, United States | 2025 - Present
Institut Teknologi Sepuluh Nopember - Surabaya, East Java, Indonesia | 2017 - 2019
Politeknik Manufaktur Bandung - Bandung, West Java, Indonesia | 2014 - 2017
Microsoft | Mar 2022 - Mar 2027
Architecting end-to-end Power Platform solutions across functional and technical disciplines.
Solution architecture, Power Platform, Dynamics 365
Credential ID: 6CA84BD381B68D0A
Microsoft | Feb 2022 - Feb 2027
Designing, developing and troubleshooting Power Platform solutions with code.
Power Fx, C#, TypeScript, Azure, ALM
Credential ID: A4D5F03539254AA4
Microsoft | Feb 2022 - Feb 2027
Configuring Power Platform business solutions from discovery through delivery.
Dataverse, Power Apps, Power Automate, Requirements
Credential ID: 424C922D4F46C548
Microsoft | Oct 2022 - Oct 2027
Delivering actionable insights and self-service analytics with Power BI.
Power BI, DAX, Power Query
Credential ID: 7B6394322FA7EF80
Microsoft | Oct 2023 - No expiry
Demonstrated ability to create and manage automated processes with Power Automate.
Power Automate
Credential ID: 23C53D7264183D34
Microsoft | Mar 2022 - Retired
Building low-code business solutions to simplify and automate tasks with Power Platform.
Power Apps, Microsoft 365
Credential ID: 9BEE55F8A1374F92
Microsoft | Jun 2021 - Retired
Foundational understanding of Dynamics 365 customer-engagement apps.
Dynamics 365, CRM
Credential ID: DEBE7F5C3AD7C602
The University of Texas at Austin | May 2026 - No expiry
Building significant Android apps with strong software-engineering practice.
Android, UI, Networking, Data storage
The University of Texas at Austin | May 2026 - No expiry
Computational logic and its applications in software verification.
SAT solvers, Model checking, First-order logic
The University of Texas at Austin | Jan 2026 - No expiry
A broad tour of machine-learning principles applied to real-world data.
Machine learning, Model evaluation
The University of Texas at Austin | Jan 2026 - No expiry
Parallel system architectures, programming models and performance analysis.
Multicore, Distributed systems, Compiler optimization
The University of Texas at Austin | Aug 2025 - No expiry
Advanced deep learning: diffusion models, transformers, LLMs and vision transformers.
Diffusion models, Transformers, LLMs, Computer vision
The University of Texas at Austin | May 2025 - No expiry
Designing, training and monitoring deep-learning models in PyTorch.
PyTorch, NLP, Generative modeling
satrio.io is a portfolio that doubles as a product. Instead of a static template, the site is a faithful macOS Golden Gate desktop on wide screens, translucent Liquid Glass chrome, a dock, floating panels, detail sheets, a lightbox, and reflows into an iOS-style home screen on phones. It's built with React 19, Vite, and TypeScript, and leans on a hand-built design-token system (an Apple-style type scale, concentric radii, and a theme-adaptive glass material) to keep the whole surface cohesive across light and dark.
React 19, TypeScript, Vite, Design Systems, Database Structure, CMS, Cloudflare
A code-first, repo-agnostic coding-agent plugin that makes Power Platform / Dataverse work safe for AI agents, includes: An orchestrator plus 11 domain skills (schema, data, flows, plug-ins, PCF & web resources, code apps, administration, solution ALM, security roles, document generation, custom connectors) Discover repo context and route every task to the lightest safe surface. Mandatory live-mutation preflight gate with target environment, auth profile, components, blast radius, and rollback plan before any deploy or write, blocking stale artifacts and silent whole-solution imports. Work with Claude Code, OpenAI Codex, and other hosts from one source and supports thin house-style overlays without forking.
AI tooling, Coding Agents, Power Platform, Dataverse, Dynamics 365, Python, ALM, Multi-agent, Plugin Architecture, .NET
A production Azure MCP that lets ChatGPT Enterprise search, read, analyze, and file documents in an iManage Work document management system. The hardest piece is a bespoke three-legged OAuth 2.0 + PKCE broker chaining Azure AD SSO with a second iManage authorization before minting its own MCP tokens — a full standards-compliant authorization server (RFC 6749/7636/7591/8414/9728) so every user only touches documents they're personally entitled to. Roughly two dozen tools span search, fetch with in-server text extraction, matter browsing, version history, email-thread analysis, and write-back (save conversations as PDFs, copy/move/refile documents). A real deployment, not a prototype: three VNet-isolated environments, Key Vault token storage, managed identity, and ~200 test functions. <confidential source code>
MCP, Model Context Protocol, ChatGPT, Azure, OAuth 2.0, PKCE, iManage, Python, Document Management
An end-to-end legal and IP matter-management platform on Dynamics 365 with deep two-way iManage integration: Plugins select workspace templates by matter type and confidentiality, rebuild folder structures recursively (including a parent-child IP portfolio model) Mirror Legal system access changes to workspace permissions bidirectionally. Confidential matters automatically get administrative-team ownership, record-level Access Teams, and private workspace ACLs. A hardened AI-intake layer exposes Dataverse Custom APIs to an LLM/MCP surface with strict field allowlists, forced confidentiality, protected-field blocking, and immutable audit provenance. <confidential source code>
Dynamics 365, C#, Plugins, iManage, Custom API, AI/LLM Integration, Document Management, Power BI
A self-contained Windows desktop app that replaces slow, manual report exports from iManage Threat Manager with one-click automation. Authentication, user discovery, asynchronous report generation, polling, download, and normalization into Excel-ready CSV, with credentials entered at runtime and never stored. It's a clean three-project.NET 8 solution. A testable core library (API clients, date-range math, a hand-written RFC-4180 CSV engine with column remapping), a WPF host, and a React + Fluent UI 2 front-end rendered in WebView2 over a typed JSON message bridge. <confidential source code>
.NET, WPF, WebView2, React, Fluent UI, OAuth, PKCE, Desktop Automation
A production system that runs a global enterprise's company-secretariat lifecycle end to end, director appointments, resignations, document generation, e-signature, and board-management sync. Cleanly layered (.NET business services, thin plugins/Custom APIs, early-bound data, React PCF + JavaScript clients), it includes an OpenXML Word document-generation engine, a full e-signature pipeline with callback processing and signed-file save-back, and incremental sync from a third-party governance API. Spans an Azure Functions app for Outlook Actionable Message approvals and a React "process explorer" Code App, and real dev/test/prod release maturity. <confidential source code>
Dynamics 365, Dataverse, C#, .NET, TypeScript, PowerApps Component Framework, Azure Functions, Docusign, Document Automation, Integration
A production system managing the full lifecycle of ethics & compliance advisory matters. Structured intake with a risk taxonomy, stakeholder and operator assignment, and confidentiality classification. Its centerpiece is a confidentiality-driven access model: flagging a matter "Highly Confidential" triggers a plugin chain that re-owns the record to a restricted team, provisions a per-record access team, and flips the linked iManage workspace private, keeping teams and document permissions in lockstep in both directions, with a self-lockout guard. Cleanly layered (early-bound data / business logic / nine plugins, ILRepack-merged into one signed DLL), a nightly Entra group-team sync flow, and targeted SDK-based deployments with drift exports for rollback. <confidential source code>
Dynamics 365, Dataverse, C#, Plugins, iManage, Access Control, PCF, Power BI
WanderWiz is a production-scale collaborative travel-journaling and trip-planning app representing roughly a hundred hours of work. Users create trips, add ordered real-place stops with geotagged photos and live weather, view them on Google Maps, and share a social feed with comments and likes, with trips shareable across multiple members. It is built with clean MVVM and a repository layer, real-time Cloud Firestore listeners bridged into Kotlin Flows, an offline Room cache, CameraX capture, a full Firebase Storage media pipeline, and modern Credential Manager Google Sign In, essentially every major Android subsystem integrated into one production-style app. <confidential source code>
Kotlin, Android, Jetpack, MVVM, Firebase, Cloud Firestore, Google Maps, Coroutines
A project that decides the satisfiability of boolean formulas by extending an existing parsing framework with the decision procedure itself. Rather than textbook DPLL, it is a complete modern Conflict-Driven Clause Learning solver, a two-watched-literal unit-propagation scheme, conflict analysis that resolves through antecedent clauses to a single unique implication point and derives an asserting learned clause, non-chronological backjumping to the second-highest decision level, a VSIDS activity heuristic with bumping and decay for branching, and phase saving. The trail's per-variable decision-level and antecedent bookkeeping effectively encodes the implication graph in compact arrays. <confidential source code>
Java, SAT solving, CDCL, Clause Learning, VSIDS
A project on learning to drive a simulated racing kart by predicting future trajectory waypoints and following them with a controller. Three planners are built — an MLP over ground-truth lane boundaries, a Perceiver/DETR-style Transformer where learned waypoint queries cross-attend over encoded boundary tokens (with learned positional and left/right track-type embeddings and split longitudinal/lateral heads), and an end-to-end CNN that regresses waypoints directly from pixels. The hardest parts are a geometry-heavy data pipeline (world→ego pose matrices, camera projection, bird's-eye-view transforms of future positions) and custom loss engineering — task-aware losses that up-weight lateral steering error, mix L1 and L2, respect a validity mask over padded waypoints, and are annealed through a multi-phase curriculum. Models are evaluated in the loop inside the simulator. <confidential source code>
Python, PyTorch, Transformers, Autonomous Driving
A project that takes a ~ 19 million parameter network and reimplements it under four memory-saving regimes plus a fifth. It builds a half-precision linear layer, a LoRA layer (frozen base plus trainable low-rank fp32 adapters), a from-scratch 4-bit block quantizer (per-group absmax normalization, two values packed per byte, quantize-on-load via custom state_dict hooks, dequantize-before-matmul), and QLoRA combining the quantized frozen base with LoRA adapters. The most advanced piece is a genuinely hard custom 3-bit quantizer with manual cross-byte bit-packing and percentile-based clipping, targeting under 9 MB while preserving accuracy, quantization implemented by hand rather than by calling a library. <confidential source code>
Python, PyTorch, LoRA, QLoRA, Memory Optimization, Quantization
A GPU-programming project. It builds four interchangeable k-means implementations behind one driver: a sequential CPU baseline, a basic CUDA kernel (one thread per point, atomic centroid accumulation, double-buffered centroids, CUDA-event timing), a shared-memory variant that cooperatively stages centroids with a runtime-queried fallback when they exceed shared memory, and a Thrust version using a nearest-centroid functor over thrust::transform. It reaches ~40× on the largest inputs, identifies the GPU crossover point below which launch overhead dominates, and backs a roofline-style argument that k-means is memory-bandwidth bound and that host-device transfer is a negligible fraction of runtime. <confidential source code>
CUDA, GPU, C++, K-Means, Thrust, Shared Memory