This is Thang!
BACKEND & INFRASTRUCTURE ENGINEERSINGAPORE / NTU ’27

HI, I’M

THANG
NGUYEN.

I build the systems
behind the experience.

A smiling Monkey D. Luffy wearing his straw hat

PROJECTS

EXPERIENCE

EXPERIENCE / 01 — SOFTWARE ENGINEER INTERN

SAP.

Keeping key state in sync.

Jan — Aug 2026 · Singapore
THE PROBLEM
Synchronize cryptographic key-state changes across distributed microservices.
MY ROLE
Software Engineer Intern; built KMS workflows and test mocks, improved CI/CD, and executed container releases.
THE TOOLS
PythonKubernetesFastAPIFlaskIstioGitHub Actions
THE OUTCOME
Implemented state propagation and reduced PR pipeline runtime by over 30%.

State changes need to travel.

I designed and built a recurring KMS event-pull workflow in Python, using SAP KMS REST APIs and Kubernetes CronJobs. Key-state changes were propagated by updating database key metadata and Kubernetes namespace annotations.

ENGINEERING DECISION

Test the integration at its boundaries

I built a FastAPI mock with self-signed TLS for the HTTPS-only KMS client, plus a Flask mock routed through an Istio VirtualService for local key-operation testing.

Parallel work, shorter feedback.

Alongside the KMS work, I parallelized independent build, test, and scan jobs and used a GitHub Actions matrix-based build strategy. I also updated Dockerfiles and CI/CD for new registries, resolved build failures, and promoted validated container images to SAP Artifactory.

WORKFLOW COMPARISON / SIMPLIFIED

Make independent work independent.

BEFOREPR build, test & scan pipeline

Original job scheduling not documented

MY CONTRIBUTIONParallel independent jobs

GitHub Actions matrix-based builds

Thang parallelized independent build, test, and scan jobs and used a matrix-based build strategy in SAP’s team-owned pipeline. The resume reports over 30% lower runtime. This diagram does not assume that every earlier job ran sequentially.
>30%

lower PR pipeline runtime

MEASUREMENT CONTEXT

Resume-reported improvement after pipeline parallelization and matrix builds. Absolute runtimes, run count, runner configuration, and measurement window were not supplied.

CONSTRAINT / BOUNDARY

A contribution within a larger system

SAP owns the surrounding services, KMS infrastructure, and release platform. This section describes my internship contributions. Any future screenshots or diagrams should use material suitable for public sharing, rather than private implementation details.

REFLECTION / NEXT STEPS

A useful next step

Document the workflow boundaries and test cases in a public-safe example, and attach comparable pipeline timings if suitable evidence is available. These are proposed additions to this story.

EXPERIENCE / 02 — SOFTWARE ENGINEER INTERN

KubeStellar.

Making room for more possibilities.

Jun — Sep 2025 · RemoteCNCF / THE LINUX FOUNDATION
THE PROBLEM
Enable dynamic plugin installation and management in the open-source KubeStellar project.
MY ROLE
Software Engineer Intern with CNCF / The Linux Foundation; contributed plugin APIs, storage, and tests.
THE TOOLS
GoGinWASMPostgreSQLCloudflare R2REST APIs
THE OUTCOME
Implemented plugin upload, download, installation, and lifecycle validation across storage backends.

A system that can grow.

I contributed to KubeStellar’s WebAssembly-based plugin system using Go, Gin, and REST APIs. The work enabled dynamic plugin installation and management within the open-source project.

ENGINEERING DECISION

Support more than one storage backend

I integrated PostgreSQL and a modular storage layer supporting Cloudflare R2 and GitHub repositories. My contribution included plugin upload, download, and installation across those backends.

Installation is only the beginning.

I developed automated tests for installation, uninstallation, and lifecycle management, checking REST API responses and storage operations.

CONSTRAINT / BOUNDARY

Extending a team-owned project

These contributions sit within the wider KubeStellar project. The resume does not establish ownership of the entire plugin architecture, specify WASM isolation guarantees, or provide production adoption measurements.

REFLECTION / NEXT STEPS

A useful next step

Link representative public pull requests and lifecycle tests, then explain one storage-interface tradeoff using the actual implementation. No unverified pull-request links or design rationale are implied here.

KubeStellar on GitHub (opens in a new tab)

ABOUT

I’m Thang, a Computer Science undergraduate at Nanyang Technological University.

My work spans backend services, cloud infrastructure, and systems programming—from a database built in Go to contributions at SAP and KubeStellar.

EDUCATION / AUG 2023 — MAY 2027Nanyang Technological University

Bachelor of Computing (Computer Science)
ASEAN Undergraduate Scholarship

THE TOOLBOX

Languages

Go, Python, C++, SQL

Backend & data

Gin, FastAPI, Flask, Django, PostgreSQL, MySQL, Redis, REST APIs

Infrastructure

Kubernetes, Docker, GitHub Actions, ArgoCD, Istio

ALGORITHMIC ROOTS

3rd PrizeVietnam National Olympiad in Informatics2021

2nd PrizeContest in Informatics of Vietnam National University2020