Skip to content
View gcjk768's full-sized avatar

Block or report gcjk768

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. Markdown is supported. 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
gcjk768/README.md

Hi, I'm James Koh 👋

DevSecOps & MLOps engineer in Singapore. I build the platforms that ship software and models safely: GitLab CI/CD, AWS and Kubernetes, with security and model-quality gates that run in the pipeline instead of in review.

AWS Certified Solutions Architect – Associate · CKA in progress · MTech Software Engineering, NUS-ISS

LinkedIn Open to MLOps, Platform and DevSecOps roles

Start here

Repo What it shows
⭐ careroute-mlops The MLOps pipeline I built for a clinical triage model: data validation, a release gate (red-flag recall ≥ 0.95) shared by training and CI, MLflow registry, DVC lineage, Fairlearn and Evidently drift monitoring, canary promotion and drift-triggered retraining
⭐ careroute-iac The infrastructure I built for the same system: Terraform and Terragrunt on AWS ECS Fargate, and a GitLab pipeline with tflint, Checkov, gitleaks and OPA policy gates, a push-only OIDC CI role, manual apply and a scheduled auto-destroy
careroute-ai The full system (NUS-ISS team project): multi-agent triage on AWS ECS Fargate, 16 Terraform modules with Terragrunt, and a GitLab DevSecOps/MLSecOps pipeline with 85 jobs
job-hunter A self-hosted agent on my home NAS that scans 40+ job boards, has an LLM score each posting and drafts applications. A human always decides; it never applies
python-garminconnect A family heart-rate monitor with LLM explanations and a rules fallback, 244 tests and nightly backups

Every repo has an architecture diagram and a README that explains the design trade-offs.

What I do at work (NCS, regulated enterprise)

  • 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.
  • Enforce SonarQube, Fortify, OWASP dependency-check, Nexus IQ and Trivy as pipeline gates rather than review steps.
  • Instrumented all four DORA metrics; the data behind it drove a ~35% cut in mean time to deploy.
  • Built an air-gapped, human-approved self-healing CI agent: an LLM diagnoses a failed job and opens a draft fix MR, which a person must approve.

Stack

AWS · Kubernetes (EKS) · Terraform / Terragrunt · GitLab CI · Docker · MLflow · DVC · Evidently · Fairlearn · scikit-learn · Prometheus / Grafana · Elasticsearch · Python · Node.js

More projects

Pinned Loading

  1. careroute-mlops careroute-mlops Public

    MLOps pipeline for CareRoute AI's clinical triage model: data validation, release gates (red-flag recall >= 0.95), MLflow registry, DVC lineage, fairness + drift monitoring, canary promotion and dr…

    Python

  2. careroute-ai careroute-ai Public

    Multi-agent AI triage (FastAPI + Next.js) on AWS ECS Fargate via Terraform/Terragrunt, shipped through a GitLab DevSecOps/MLSecOps pipeline with LLM red-teaming. NUS-ISS team project.

    Python

  3. python-garminconnect python-garminconnect Public

    Self-hosted Garmin -> Telegram family health monitor: at-rest heart-rate episode alerts, safety checks, LLM coaching and doctor reports on a home NAS (Docker).

    Python