Skip to content
TNLTNL293107

Open to backend / data engineering internships

Backend / Data EngineerĐà Nẵng, Việt Nam

I build systems that hold up.

Backend services, data models, AI pipelines, and the infrastructure they run on.

~/ designing data models that survive contact with real data. deploying services and making the logs actually arrive. wiring LLMs into pipelines that can be tested. automating the things that annoyed me first

297

tests written across four projects

82/413

commits authored on the CVerify team repo

9

university portals automated

1

system running in production

01About

I like problems where the hard part is the data model and the flow, not the screen.

Software Engineering student at FPT University Đà Nẵng. Most of what I build started as something that annoyed me.

The half I enjoy is unglamorous — why logs never reached the logging backend, why an OAuth callback dropped a cookie, why one page was issuing twenty-two requests. That is usually where a system is actually broken, and it is rarely in the part anyone demos.

So I work backwards from failure: what happens when the data is wrong, when the provider renames a symbol, when the deploy succeeds but nothing logs. Tests and boring infrastructure are how that question gets answered, which is why there are 297 of them.

What kind of engineer

Backend systems

Services, data models and the business logic between them. The part I care about is the shape of the data, not the shape of the screen.

  • ASP.NET Core
  • FastAPI
  • Servlet/JSP
  • Domain modelling

Data & infrastructure

Where things actually break. Databases, deployment, logging that reaches the logging backend, and pipelines that fail loudly.

  • PostgreSQL
  • Docker
  • GCP
  • GitHub Actions

AI engineering

LLMs as a component inside a system with inputs, failure modes and tests — not as a feature bolted onto a form.

  • Claude API
  • Document extraction
  • Evaluation pipelines

Automation

Most of what I build started as something that annoyed me. Nine portals, one credential store, and arithmetic nobody should do by hand.

  • Manifest V3
  • Service workers
  • Workflow tooling

02Engineering journey

No job titles yet — here is the work instead.

Four builds, one of them running in production. What follows is scoped to what I actually did, and each claim is checkable against the repository it came from.

  1. May – Jul 2026

    CVerify — five-person capstone

    Academic capstone · shipped to production

    AI service, deployment and infrastructure

    • Ported the AI layer from C# stubs to a Python/FastAPI service — agents, orchestrators and prompts across the candidate, JD-matching and repository pipelines, covered by 45 unit tests.
    • Built the C# side behind it: the Profiles, Auth, SourceCode, JD and Intelligence modules, with their EF Core migrations.
    • Moved the deployment from AWS EC2 to GCP — nginx, SSL renewal, database and MinIO backups, health checks and three CI workflows.
    • Chased the unglamorous failures: container logs never reaching Cloud Logging, an OAuth callback dropping a state cookie, a page issuing 22 requests.
  2. Since Aug 2026

    PQT — personal project

    In development

    Designing a system where correctness is the product

    • Modular monolith across a .NET backend, a React terminal and separate Python and C++ toolchains.
    • Point-in-time correctness as the governing constraint: provider symbols are treated as aliases, never as keys.
    • 163 tests across four suites, written to skip loudly rather than pass silently.
  3. Since Mar 2026

    DWatch — personal project

    Java / Servlet / JSP

    Web fundamentals without a framework to hide behind

    • A full commerce flow on plain Servlet and JSP: cart, COD and VietQR checkout, guest order lookup, product comparison and an admin console.
    • Migrated live passwords to BCrypt on first login without locking anyone out, and added CSRF tokens across 17 forms.
    • 56 JUnit 5 tests against mocked DAOs, so the suite runs without a database.
  4. Since Aug 2023

    FU-Autokit — personal project

    Browser extension · v3.4

    Turning a daily annoyance into a tool other people use

    • Auto-login across nine university portals — FAP, CMS, EduNext, FLM, Library, DNG, OCD, OJTMS and FeID — plus Coursera and Studocu.
    • 34 content scripts behind one popup, automating GPA calculation, grade entry and form autocomplete.
    • Credentials never leave the browser: no backend, everything in chrome.storage.
    • Manifest V3 service worker with i18n from the start, and 33 tests running in CI.

03Projects

Four things I built — one of them is live.

Screenshots are real captures, not mockups. Where a project is unfinished it says so, and where the work was shared the split is stated.

01

PQT

Quant research terminal

Since Aug 2026In development

A Bloomberg-inspired research workstation for the Vietnamese market. The point is the closed loop — data, research, backtest, risk, execution — because if the data is wrong, nothing downstream can be trusted.

Shape
Modular monolith — .NET backend, React terminal, separate Python and C++ toolchains
Care
Point-in-time correctness; provider symbols are aliases, never keys
Proof
163 tests across four suites; they skip loudly rather than pass silently
Scope
Phase 1 of 20. Health probes, instrument identity and the terminal shell exist; market data, backtesting and execution are not written — and not stubbed either
  • C#
  • ASP.NET Core
  • PostgreSQL
  • Redis
  • React
  • C++
  • Docker
Placeholder mark: a monitor showing a code folder and a gear, standing in for a screenshot while PQT is still being built.
No capture yet — still being built
02

CVerify

AI candidate evaluation platform

May – Jul 2026In production

Checks what a CV claims against the candidate's actual code. Static analysis for complexity, MinHash LSH for clone detection, and Claude for evaluation.

My contribution
A five-person capstone, so what I owned matters more than that I was there: the Python AI service, the C# modules behind it, and the deployment it all runs on. Third of five contributors by commit count, which corroborates the scope rather than establishing it.

AI pipeline
Agents, orchestrators and prompts across the candidate, JD-matching and repository pipelines, ported from C# stubs to Python/FastAPI
Backend
C# modules — Profiles, Auth, SourceCode, JD and Intelligence — with the EF Core migrations behind them
Extraction
PDF/DOCX/OCR to Markdown, with tolerant JSON parsing so a malformed model response degrades instead of throwing
Infrastructure
AWS EC2 to GCP: nginx, SSL renewal, database and MinIO backups, health checks, three CI workflows
Fixes
Made container logs reach Cloud Logging; fixed OAuth dropping a state cookie; cut one page from 22 requests
Proof
45 unit tests on the AI components I wrote
  • Python
  • FastAPI
  • Claude API
  • C#
  • .NET 10
  • PostgreSQL
  • Redis
  • GCP
  • nginx
  • Docker
CVerify landing page: 'Hiring based on proof, not claims' over a dark hero, with buttons to generate a verified profile or view the verification demo.
Landing
CVerify sign-in section: 'Verify Developers. No Backdoor Claims.' beside an Engineer/Business tabbed card offering Google or email sign-in.
Sign-in
DWatch storefront: search bar, sign-in and cart in the header, a nav of watch categories plus order lookup, comparison and admin, and a hero reading 'Đồng Hồ Chính Hãng — Đỉnh Cao Thanh Lịch' above category filter chips.
03

DWatch

Independent build

Java commerce platform · Since Mar 2026

A watch store on plain Servlet/JSP — no framework to hide behind. Cart, COD and VietQR checkout, guest order lookup, product comparison and an admin console.

Security
Migrated live passwords to BCrypt on first login with no lockouts; CSRF tokens across 17 forms
Orders
Dynamic VietQR codes for the exact amount, and confirmation email carrying the payment state
Proof
56 JUnit 5 tests against mocked DAOs — the suite needs no database
  • Java 17
  • Servlet/JSP
  • Maven
  • SQL Server
  • JUnit 5
  • Mockito
FU-Autokit popup over a browser tab: shortcut buttons for FAP, EduNext, Coursera, Thư viện, CMS, FLM, DNG, OCD and OJT, a K18/K19 account-type toggle, and fields for campus, student ID and email.
04

FU-Autokit

v3.4

Browser extension — 9 university portals · Since Aug 2023

Started as something that annoyed me daily. One credential store, nine university portals, and the arithmetic students were otherwise doing by hand.

Reach
Auto-login across FAP, CMS, EduNext, FLM, Library, DNG, OCD, OJTMS and FeID, plus Coursera and Studocu
Automation
34 site-specific content scripts — GPA calculation, grade entry, form autocomplete — behind one popup
Privacy
Credentials stay in chrome.storage. No backend, nothing leaves the browser
Proof
33 tests in CI, covering the manifest, service worker, storage and GPA maths
  • JavaScript
  • Manifest V3
  • Service worker
  • i18n

More on github.com/TNL293107

04Technical stack

What I actually work in — and where I used it.

Every entry is carried by one of the four projects above, and each card says which. No proficiency percentages: a self-assigned score is not a fact about anything.

31 skills shown.

  • C#PQT, CVerify
  • JavaDWatch
  • PythonCVerify
  • TypeScriptPQT
  • JavaScriptFU-Autokit
  • C++PQT
  • SQLPQT, DWatch
  • ASP.NET CorePQT, CVerify
  • EF CorePQT, CVerify
  • FastAPICVerify
  • Servlet/JSPDWatch
  • OAuth 2.0CVerify
  • ReactPQT
  • PostgreSQLPQT, CVerify
  • SQL ServerDWatch
  • RedisPQT, CVerify
  • xUnitPQT
  • JUnit 5DWatch
  • pytestCVerify
  • MockitoDWatch
  • VitestPQT
  • TestcontainersPQT
  • DockerPQT, CVerify
  • nginxCVerify
  • Google CloudCVerify
  • GitHub ActionsCVerify
  • MavenDWatch
  • GitAll four
  • Claude APICVerify
  • Document extractionCVerify
  • Static analysisCVerify

05Learning & milestones

The certificates are further down — these are the things that actually taught me most.

Each one is a point where the work got harder in a specific way, and each is checkable against the project it came from.

01CVerify

First system running in production

Reachable at cverify.io.vn. Getting something deployed, logging correctly and auto-deploying taught more than the feature work did.

See it running
02Across four projects

Testing as a default, not a phase

297 tests total — 163 on PQT, 56 on DWatch, 45 on the CVerify AI service, 33 on FU-Autokit. Suites that need no database and skip loudly when a dependency is missing.

03DWatch

Security fundamentals under real constraints

Migrating live credentials to BCrypt without locking existing users out, and retro-fitting CSRF protection across 17 existing forms.

04CVerify

LLM integration as systems work

Orchestrating evaluation and JD-matching pipelines with document extraction, and treating model output as something to be tested rather than trusted.

Education

FPT University Đà Nẵng

Bachelor of Software Engineering

Since 2024100% full scholarship

Certifications

07Contact

Let's build something worth shipping.

Open to backend, data engineering, and interesting systems problems. Internships included — I would rather work on something hard than something safe.

Resume

On paper

The same story as this page, condensed to two printable pages — with dates, and a couple of projects that are not shown here.

Based in
Đà Nẵng, Việt Nam
Status
Open to internships