ABOUT

Helo

I'm Nhan Nguyen

Pronunciation: [Nyan N-wen]

  • Senior at Gettysburg College
  • Prev. SWE Intern @KBSecuritiesVietnam
  • Prev. SWE Intern @FinbudAI
  • Prev. SWE Intern @eSmartSolutionsAgency
  • Prev. FE Intern @FPTIS

Hi! I'm Blob. Poke me.

JOURNEY

High school years

HCMC HIGHSCHOOL FOR THE GIFTED · 2019–2022

The specialised high school in Ho Chi Minh City, and the last three years at home before the move to the US.

CLASSROOM PHOTO

University years

GETTYSBURG COLLEGE · 2022–2027

B.S. Computer Science with a Business minor. A liberal arts foundation that keeps the writing and the modeling in the same head.

CAMPUS PHOTO

MILESTONES

2022

Arrived from Ho Chi Minh City. First CS course, first snow.

2024

First engineering internship. Learned pipelines break at 3am.

2025

Covered warrants SWE Intern at KB Securities.

2026 →

Open to summer 2027 roles.

EXPERIENCE

KB Securities

Nov 2025 – Aug 2026

Software Engineer Intern

Two products off one market-data spine: a live terminal for the covered-warrant desk, and KBSV's public CW portal. The hard part was never the pricing maths — it was keeping the quote firehose correct enough that a trader trusts the screen.

  • Sends differential patches over the socket rather than whole snapshots. The client has to reconcile state, which is the price paid for a fraction of the bandwidth.
  • Desk terminal and public portal sit on separate VMs, so a spike in public traffic and the traders' live feed never contend for the same box.
  • The data layer is its own pipeline instead of app code, so deduplication, normalisation and adjusted prices are solved once and both products read one history.
TYPESCRIPTNEXT.JSFASTAPIWEBSOCKETSKAFKAREDISPOSTGRESDOCKER

PROJECTS

CW Research Terminal
PROJECT 01

CW Research Terminal

A research terminal for 100+ Vietnamese covered warrants, streaming FiinQuant market data over FastAPI and WebSockets.

  • Black-Scholes-Merton pricing, implied and historical volatility, Greeks
  • Tool-calling LLM assistant grounded in live quotes and price history
  • Visible tool traces and non-advisory guardrails
REACTTYPESCRIPTFASTAPIPOSTGRESREDISOPENROUTER
KB Securities CW Portal
PROJECT 02

KB Securities CW Portal

The covered warrants portal I built and launched at KB Securities, live for traders and retail investors.

  • Two-VM architecture splitting Next.js/Nginx from containerised services
  • 16 REST endpoints covered by pytest unit and integration tests
  • Kafka and PostgreSQL behind a Redis-cached market data layer
NEXT.JSNGINXFASTAPIKAFKAPOSTGRESPYTEST
ITCH Feed Handler
PROJECT 03

ITCH Feed Handler

A C++20 Nasdaq TotalView-ITCH 5.0 feed handler that rebuilds aggregated L2 order books straight from the raw event stream, measured against a full 11.25 GB exchange session.

  • 368M messages replayed into 8,695 per-symbol books, checked by 24 correctness scenarios and UBSan
  • Profiling drove a symbol-interning layout change: 12.3% on the synthetic replay, with no real-session gain claimed
  • The engineering log keeps the optimisations that did not work, with their numbers
C++20ITCH 5.0CMAKECTESTUBSANMMAP

STACK

LANGUAGES

PYTHONTYPESCRIPTJAVASQLC

DATA & INFRA

KAFKAREDISPOSTGRESDOCKERFASTAPI

QUANT

BLACK-SCHOLESGREEKSHEDGINGTIME SERIES

SETUP

MacBook Pro 14 2021 (M1 Pro), Thirdwave F-13KR, Neovim and a lot of tmux.

Send me an email

I read everything that arrives.

Or write to me directly: xuannhan.nguyen2001@gmail.com

MINI CHALLENGE

Feed the hungry blob

Snacks rain down the arena. Drag Blob left and right along the floor and catch the ones worth points.

Bitter coffee falls as often as the treats and costs you a point, so catching everything loses. Pick your targets.

  • BOBA+2 PTS
  • DONUT+1 PTS
  • BITTER COFFEE-1 PTS
SCORE00TARGET ≥ 100TIME60s

FEED THE HUNGRY BLOB

Drag Blob under the falling snacks. Boba is worth two, a donut one, and bitter coffee takes one away.