James Koh Open to new rolesResumeLinkedIn
James Koh standing by a mountain lake, holding a camera

DevSecOps and platform engineer, Singapore

I build the road to production.Gates in the pipeline, not in review.

I run the CI/CD platform behind 300 repositories and 50+ production pipelines on AWS and Kubernetes, and I build the AI agents that work inside it.

Message me on LinkedInResume (PDF)GitHub

~35%faster mean time to deploy
300repositories on the platform
50+pipelines on shared CI templates
85jobs in the CareRoute pipeline

Since April 2024 at NCS I've owned the path to production for a regulated enterprise estate: the CI templates, the security gates and the releases that more than 50 pipelines depend on.

I'm also studying for a Master of Technology in Software Engineering at NUS-ISS. At home I run more than 30 self-hosted agents on a NAS, because the fastest way I learn a tool is to run it in production for myself.

What I do

  1. Platform

    I own the path to production for a 300-repository, 50+ pipeline estate: reusable GitLab CI templates, Terraform-managed AWS and zero-downtime EKS/ECS releases.

  2. Security

    SonarQube, Fortify, OWASP Dependency-Check, Nexus IQ and Trivy run as pipeline gates, not review steps.

  3. Metrics

    I instrumented all four DORA metrics. The data behind them drove a ~35% cut in mean time to deploy.

  4. AI in CI

    I built an air-gapped self-healing CI agent: an LLM diagnoses a failed job and opens a draft fix MR, which a person must approve.

Experience

Platform and DevOps Engineer, NCS GroupApr 2024 to now

Platform engineering for regulated enterprise accounts.

Days to hours
Built the reusable GitLab CI template library behind 50+ production pipelines. Teams take a golden path and no longer hand-write YAML, so authoring a pipeline went from days to hours.
~35% faster
Led DORA instrumentation across 300 repositories, then used the data to cut mean time to deploy by about 35%.
Zero downtime
EKS cluster upgrades and ECS rolling deployments run through the pipeline, with CloudFormation change sets and SSM deployment paths in every environment.
9 apps moved
Migrated nine applications from on-premises to cloud-hosted GitLab under one governance model, with reference pipelines for Java, Node.js and React.
No repeats
Every production build or deployment incident I triage ends with a runbook or a pipeline control, so the same failure cannot come back.
In production

Self-healing CI agent

An LLM diagnoses a failed GitLab job behind an 80% confidence gate, then opens a draft merge request with the fix. It never merges by itself. It runs air-gapped on CPU-only runners with no external API calls.

Read the case study
In progress

AI-automated AMI refresh

I am using AI to automate recurring platform operations, starting with AMI refreshes, so patched machine images roll out without manual steps.

In production

Pipeline health and DORA dashboard

A Node.js and React dashboard that shows live DORA metrics for 50+ pipelines to the teams that own them, with AI-assisted failure analysis and a dependency risk radar.

Proposal

Self-service infrastructure portal

A Backstage front door over Terraform and Terragrunt modules, run by GitLab CI. Claude picks templates only from the approved module library. Presented to NCS leadership.

Featured projects

Five public projects, each with the code on GitHub. Select a diagram to open it full size.

More public projects (19)

Self-hosted agents

Scheduled pipelines and Telegram bots that run in Docker on my home NAS.

Architecture diagram of Garmin family health monitor

Garmin family health monitor ↗

Watches Garmin data for at-rest heart-rate episodes, runs safety checks and sends alerts, LLM coaching and doctor reports to the family on Telegram.

Python · Garmin Connect · Telegram · Docker
Architecture diagram of Photography Sensei

Photography Sensei ↗

An agentic photography coach. Claude Code subagents critique each photo, cite master photographers, suggest Fujifilm recipes and track progress in an Obsidian vault.

Claude Code subagents · Telegram · Obsidian
Architecture diagram of SG Property Hunter

SG Property Hunter ↗

Watches the Singapore property market. Official data and listings feed a code-only finance engine (upfront and monthly cost, 10-year bear, base and bull cases). The LLM only writes the words.

Python · official data · Telegram
Architecture diagram of SG car market tracker

SG car market tracker ↗

Scrapes COE, used-car and EV prices every day, runs a cost-of-ownership engine and posts a report to Telegram.

Python · Playwright · Telegram
Architecture diagram of SG Food Hunt

SG Food Hunt ↗

A weekly pipeline that scrapes, de-duplicates and ranks Singapore dining venues for each occasion, then publishes to Obsidian and Telegram.

Python · Docker · Obsidian · Telegram
Architecture diagram of Supermarket Hunter

Supermarket Hunter ↗

A family grocery price bot for Singapore: a daily best-value report on Telegram and a web page with product photos.

Python · Telegram · web page
Architecture diagram of SG Recipe Bot

SG Recipe Bot ↗

Finds one recipe a day by web search. Each recipe must pass a strict gate (time, cost, live source link, no repeats) before it is posted to Telegram.

Claude CLI · validation gate · Telegram
Architecture diagram of Workout Rotation

Workout Rotation ↗

A private Telegram gym coach. Claude Code writes the weekly plans, every plan passes a shoulder-injury check, and Garmin recovery data shapes the day.

Claude Code · Garmin · Telegram
Architecture diagram of Huat Bot

Huat Bot ↗

A Singapore Pools TOTO bot: the latest result, what the next draws will do and where the next big prize is, sent to Telegram and an Obsidian vault.

Python · Docker · Telegram · Obsidian
Architecture diagram of World Cup 2026 predictor

World Cup 2026 predictor ↗

A local-first World Cup assistant: match predictions anchored on a Poisson model and explained by an LLM, with live scores, standings and news through a bilingual Telegram bot.

Poisson model · Claude CLI / Ollama · Telegram
Architecture diagram of Watchbot Hunter

Watchbot Hunter ↗

A Singapore luxury watch market bot: reference market values, deals after every cost, paper trading and a daily lesson. It fails safe when a source's terms are unconfirmed.

Python · Telegram
Architecture diagram of X100 Bot

X100 Bot ↗

An hourly Telegram bot that teaches the Fujifilm X100VI: film recipes, composition, and Singapore light and weather.

Python · Telegram

Certification study bots

Self-hosted quiz bots I built to study for my own exams. Each runs in one container.

Architecture diagram of Terraform Associate

Terraform Associate ↗

Practice questions, flashcard study cards, Claude tutor diagrams and a weekly readiness report for the HashiCorp Terraform Associate (004) exam.

Telegram · Claude tutor · Docker
Architecture diagram of GitLab CI/CD Associate

GitLab CI/CD Associate ↗

Practice questions, pipeline diagrams drawn by the Claude tutor and a weekly readiness report for the GitLab Certified CI/CD Associate exam.

Telegram · Claude tutor · Docker

Skills and credentials

The tools I use most, and the certifications and study behind them. The full list is in my resume.

Cloud and Kubernetes
AWSEKSECSKubernetesHelm
CI/CD and platform
GitLab CI/CDTerraformTerragruntDockerCloudFormation
Reliability
DORA metricsPrometheusGrafanaElasticsearch / ELK
DevSecOps
SonarQubeFortify SASTNexus IQTrivyOWASP ZAP
AI engineering
Agentic systemsLLM pipelines in CIMCPClaude APIOllama
Languages
PythonNode.jsBashJava
AWS Certified Solutions Architect, Associate2026
Claude Certified Architect, Professional (CCAR-P)in progress
Master of Technology in Software Engineering, NUS-ISSin progress
Graduate Certificate: Designing Modern Software Systems2025
Graduate Certificate: Architecting Scalable Systems2026
Graduate Certificate: Architecting AI Systemsin progress
Bachelor of Computer Science, University of Wollongong (SIM)completed