Skip to content
View TNL293107's full-sized avatar
🎯
Feel free to contact me via Gmail or the social media links below.
🎯
Feel free to contact me via Gmail or the social media links below.

Block or report TNL293107

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.

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
TNL293107/README.md

About

I'm a Software Engineering student at FPT University Đà Nẵng, working mainly on the backend — C#/.NET and Java — with the database layer that sits behind it.

  • 🧩 I like problems where the hard part is the data model and the flow, not the screen.
  • 🛠️ Most of what I build starts as a real annoyance: a checkout that loses orders, ten school portals that each want the same login, a CV you have no way to verify.
  • 🤖 On my team's SWP391 project I owned the Python/FastAPI AI service and took it all the way to production on GCP — pipelines, deployment, SSL, backups.
  • 📚 Currently going deeper on .NET, clean layering, and writing services that are actually testable.
  • 🎯 Looking for a backend / fullstack internship where I can ship real features and get reviewed hard.

Tech Stack

Backend

C# .NET Java Python FastAPI Servlet / JSP C++

Data

PostgreSQL SQL Server MySQL Redis EF Core

AI & Infrastructure

Claude API Docker GCP Nginx GitHub Actions

Frontend & Testing

TypeScript React JavaScript xUnit Vitest pytest Testcontainers


Selected Work

📈 PQT — quant trading terminal

C# ASP.NET Core PostgreSQL Redis React Python C++ Docker

Personal · in development

A Bloomberg-inspired research and trading workstation for the Vietnam market (HOSE/HNX/UPCOM) — the loop from market data through research and risk to execution.

  • Modular monolith, not microservices — .NET, React, Python and C++ layers, every significant decision written down as an ADR
  • Readiness that means something — a real PostgreSQL round-trip and a Redis PING, reported per dependency, disclosing no host or driver
  • Four test suites in CI — .NET, Vitest, pytest, CTest — with integration tests on real containers via Testcontainers
  • Phase 0 done; building the instrument master, so one security has one identity no matter how a provider spells it

🔍 CVerify — AI candidate verification

Python FastAPI Claude API ASP.NET Core PostgreSQL Docker GCP

Team · 82 commits · shipped to production

Screens a candidate by cross-checking their CV against their real GitHub work and a job description, instead of trusting what the CV claims.

  • Ported the AI layer from C# stubs to a Python / FastAPI service — Claude-API agents across three pipelines: repository intelligence, candidate evaluation, JD matching
  • Code intelligence — cyclomatic and cognitive complexity, near-duplicate clone detection via MinHash LSH, and PDF/DOCX/OCR → Markdown extraction
  • C# backend — the JD module end to end: controllers, DTOs, entities, services, EF Core migrations
  • Production — moved deployment AWS EC2 → GCP: reverse proxy, self-hosted MinIO, SSL renewal, daily backups, CI deploy

🛒 DWatch — watch e-commerce

Java Servlet / JSP JSTL SQL Server Maven JUnit 5 BCrypt

Personal · full stack on plain Servlet/JSP

A full watch e-commerce platform, not a demo shop — and lately, the project I went back and secured properly.

  • Cart, checkout with COD + VietQR, guest order tracking, wishlist, admin CRUD
  • BCrypt migration with nobody locked out — verification still accepts the old plaintext rows and rehashes each one on its next correct login
  • CSRF tokens across 17 forms — which closed a real hole: /admin/products?action=delete was a GET link any site could fire from an <img> tag
  • Session fixation, open redirect and account enumeration fixed in the same auth pass
  • Service layer pulled out of the servlets, covered by 54 JUnit 5 + Mockito tests that run without a database

🧰 FU-Autokit — student browser toolkit

JavaScript Chrome MV3 jQuery Bootstrap Service Worker node:test

Personal · 260+ commits · used by real students

Browser extension that removes the daily friction of being an FPTU student.

  • Auto-login across 9 school portals (FAP, CMS, EduNext, FLM, Library…)
  • GPA calculator + the FE score you need to pass
  • VI/EN i18n, themeable UI, MV3 service worker
  • 33 tests on node --test + jsdom, added years after the code — and they immediately caught a stray quote that had been 404-ing the default locale file for every fresh install
all repos

GitHub Activity

629 contributions 489 commits 40 pull requests contributed to 9 repositories

Since my first commit in August 2023, updated daily.

top languages by repository top languages by commit

activity graph

Counts start from my first commit in August 2023 and include private repositories. CVerify is a fork of my team's repository, so GitHub does not count its commits here — the upstream it was forked from is linked at the top of that page.


Contact

github repositories

Da Nang, Vietnam · Open to backend / fullstack internships
Reach me through my GitHub profile.

footer

Pinned Loading

  1. FU-Autokit FU-Autokit Public

    A Chromium extension to streamline web portals and save time for FPT students.

    JavaScript

  2. PQT PQT Public

    Personal quant research & trading terminal for the Vietnam market (HOSE/HNX/UPCOM). WIP — Phase 1 of 20.

    C#

  3. CVerify-Forked CVerify-Forked Public

    Forked from fptu-se-su26/swp391-su26-ai-audit-project-swp391_se20a02_group-05

    An enterprise platform that uses LLMs and static analysis to verify developer code, detect plagiarism/AI content, and build trusted CV profiles.

    C#

  4. DWatch DWatch Public

    Full-stack Java e-commerce watch store (Servlet/JSP, Maven, SQL Server) with cart, checkout, VietQR payment, and an admin panel.

    Java