Work
Eight-plus years of backend engineering and DevOps across payments, fintech and real-time data, now reaching POS devices (SoftPOS / contactless) and hands-on AI engineering, from the code to the teams and infrastructure behind it. The short version is on my about page; here's the full track record.
Experience
Solo Engineer, SoftPOS Platform (Backend + POS App) · ITE
Banking partner: VietinBank
2026 - Present
- Built a SoftPOS payment app for Android-based POS devices that accepts contactless (NFC) card payments for banking partner VietinBank, integrating the Napas MPOC SDK and Napas MAP gateway.
- Delivered the system end to end as a solo engineer using an AI-assisted development workflow (Claude Code), accelerating delivery while owning the architecture and all design decisions.
- Architected the backend on Clean / Hexagonal Architecture (Java 21, Spring Boot 3.5) with clear domain, application and infrastructure separation for testability and long-term maintainability.
- Implemented OAuth2 + JWT (RSA-256) with long-lived refresh tokens so POS devices stay active without re-login, plus session tracking for token revocation.
- Integrated the Napas MAP gateway for NFC card and QR payment flows; handled instant payment notifications (IPN), transaction void and reconciliation.
- Built the POS device app (Android, Kotlin, Jetpack Compose) with NFC HCE emulating an NFC Type 4 Tag, transaction history (search / filter / pagination) and thermal HTML receipt printing.
Java 21 · Spring Boot 3.5 · PostgreSQL · OAuth2/JWT · MQTT · Docker · Kotlin · Jetpack Compose · Napas MPOC SDK · NFC HCE
.NET Leader / Technical Lead · ITE
2022 - Present
- Revived and shipped a stalled product (frozen ~2 years) by diagnosing the root issues and restructuring its architecture.
- Led the migration from a monolith to microservices, improving scalability and performance.
- Integrated multiple payment methods and hardened authentication & authorization with IdentityServer.
- Built and maintained a fully automated CI/CD pipeline (GitLab CI + Jenkins + Docker).
- Planned work, allocated tasks and coached an 8-member engineering team.
- Integrated OpenAI into the product to automate reporting, improve content quality and cut manual effort.
- Defined and rolled out an AI-assisted development workflow across the SDLC (planning, coding, review), and trained the team on agentic coding tools (Claude Code, Claude Co-Work), driving adoption and faster delivery.
.NET Core · IdentityServer · PostgreSQL · Ocelot · Redis · Selenium · ELK · Jenkins · Docker · Portainer · MinIO
Senior Backend Developer · FPT Software
2021 - 2022
- Optimized API performance, cutting response times and resource usage.
- Worked directly with clients in Singapore and France to analyze and solve complex technical issues.
- Ran code reviews and mentored the team on backend best practices.
.NET Core · MS SQL
Sub-Team Leader / Backend Developer · ITE
2019 - 2021
- Built and optimized a secure payment gateway & routing platform for major partners (VNPost, ViettelPay, Bamboo).
- Led integration, SIT and release activities; improved internal Git workflows.
- Set up and maintained the company GitLab server and internal infrastructure.
Java · Spring Boot · Tomcat · Oracle · MySQL · MongoDB · Linux · GCP · Jenkins · Docker
Backend Developer · FiinGroup
2019
- Built a real-time processing service for stock-exchange data (HNX & HOSE).
- Sustained high throughput and low latency under peak load.
.NET Core · MS SQL · Redis
Backend Developer · NashTech / Harvey Nash
2018 - 2019
- Delivered performance improvements within a 16-member project team.
- Added robust unit tests and improved backend reliability.
.NET Framework · MS SQL
Backend Developer · VNPAY
2017 - 2018
- Built VNPAY's recruitment website and internal tools.
- Built a mobile web app for TPBank's airline-ticket purchasing flow.
- Integrated the VNPay payment gateway.
.NET Framework · Oracle · JavaScript · Framework7
Selected projects
Agentic Automation & AI Tooling
Self-directed
- Operate a fleet of Claude Code agents orchestrated over Telegram (parallel task delegation, scheduled jobs, owner-only access control), backed by self-built infrastructure: a self-hosted mempalace MCP server for centralized long-term memory shared across agent sessions and machines, plus a self-built voice-mcp service giving the agents speech-to-text and text-to-speech.
- Built agentic automation with Claude (Anthropic) via the Model Context Protocol (MCP), wired to tools like Notion and Jira and driven hands-free through a Telegram bot.
- Designed event-driven automation pipelines (n8n, webhooks) connecting LLMs to messaging and productivity systems.
- Built a chat-with-AI product POC (ChatGPT / Claude-chat style) backed by Retrieval-Augmented Generation (RAG) over a private knowledge base, with OpenTelemetry usage observability tracking token cost and latency.
Claude (Anthropic) · OpenAI API · MCP · mempalace · voice-mcp · n8n · OpenTelemetry · Python · Bash
Claude Code Observability (ccobs)
Open-source
- Built an end-to-end observability stack for AI (Claude Code) usage: OpenTelemetry Collector to Prometheus, Loki and Grafana, packaged as an all-in-one Docker image with per-device token management; automated build and release via GitHub Actions to GHCR.
OpenTelemetry · Prometheus · Loki · Grafana · Docker · GitHub Actions
Claude Telegram Docker
Open-source
- Packaged a self-hosted Claude Code Telegram bot as a portable “one image = one bot” Docker container: bake the Claude CLI, the Telegram channel plugin and MCP tooling into a single multi-arch image, so a new agent is spun up with only a bot token and an owner ID.
- Designed the deployment for headless, long-running operation: OAuth-token auth that survives volume wipes, owner-only allowlist access control, host-side admin via docker exec and a live-attachable tmux session; automated multi-arch build and release via GitHub Actions to GHCR.
Docker · Claude Code · Telegram · MCP · tmux · GitHub Actions · GHCR
voice-mcp: Speech I/O for AI Agents
Open-source
- Built a self-hosted voice endpoint giving AI agents both speech-to-text and text-to-speech through one service, exposed over both an MCP (streamable-HTTP) interface and a plain REST API with bearer-token auth.
- Ran STT on faster-whisper (CPU int8) and TTS via gTTS with an optional Google Cloud TTS fallback; server-side ffmpeg transcodes to Ogg/Opus so clips render as native Telegram voice bubbles, and speak returns a cached-file URL instead of a base64 blob. Packaged as a Docker image, keeping all audio on self-hosted infrastructure.
Python · MCP · faster-whisper · gTTS · ffmpeg · Docker · REST
Toolbox
- Languages
- C#/.NET, Java, Kotlin, SQL, Bash
- Frameworks
- ASP.NET Core, Spring Boot, Jetpack Compose
- Architecture
- Microservices, Clean/Hexagonal, DDD, REST, OAuth2/JWT (IdentityServer)
- Databases
- PostgreSQL, MS SQL, MySQL, Oracle, MongoDB, Redis, Elasticsearch
- DevOps / CI-CD
- Docker, Portainer, Jenkins, GitLab CI, GitLab Runner, GitHub Actions, Git
- Monitoring
- Prometheus, Grafana, ELK (Logstash, Kibana), OpenTelemetry
- Messaging / Gateways
- MQTT, Nginx, Ocelot
- AI / LLM
- Claude (Anthropic), Claude Code, Co-Work, OpenAI API, LLM Agents, MCP, mempalace, voice-mcp, Prompt Engineering, RAG
- Cloud / OS
- GCP, Linux, Windows
Certifications
- Model Context Protocol: Advanced TopicsJun 2026
Anthropic Education · verify.skilljar.com/c/37hnk57es25n
- Claude Code in ActionJun 2026
Anthropic Education · verify.skilljar.com/c/6h3erba8a6mg
- Claude with Amazon BedrockJul 2026
Anthropic Education · verify.skilljar.com/c/rydnqmqzqvgp
Education
Want the details or a fit for your team? Get in touch or connect on LinkedIn.