Personal developer archive

Tôi làMineHighVNDeveloper

Mình rất muốn hiểu sâu dưới những đoạn code được gõ hàng ngày đang ẩn chứa điều gì. Mình thích xây dựng phần mềm, tìm hiểu cách mọi thứ hoạt động bên dưới lớp abstraction và tự làm lại những thứ khiến mình tò mò.

Đối với mình một dự án không nhất thiết phải thành công, mà qua dự án đó ta đã học được những gì.

Mình đã đi qua

Rust / WGPUC++ / Native UIOpen SourceAndroidWeb
xây dựng hệ thống thay vì chỉ sử dụng chúng

Selected work

Những thứ mình build

Project đang phát triển, sản phẩm từng đưa tới người dùng, prototype và cả những thử nghiệm đã bỏ dở.

Lithic Engine

RustWGPURuntimeHiện tại

Một runtime/browser engine thử nghiệm được xây dựng từ đầu. Mục tiêu là thu hẹp khoảng cách giữa web và ứng dụng desktop, cho phép xây dựng ứng dụng bằng HTML, JavaScript và một lớp runtime riêng.

Hiện tập trung vào renderer, display list, text rendering, DOM, parser, styling và các lớp nền tảng GPU bằng Rust, wgpu, winit, glyphon và html5ever.

Đây vẫn là project ở giai đoạn sớm. Ưu tiên hiện tại là làm cho các thành phần nền tảng hoạt động trước khi tối ưu kích thước và mức sử dụng tài nguyên.

Overlix

ProductMinecraft2024–2026

Dự án mình bắt đầu phát triển một mình từ khoảng tháng 06/2024, hướng tới việc giúp người chơi Minecraft dễ dàng quản lý và sử dụng server hơn.

Trong quá trình làm, mình thử nhiều hướng phát triển ứng dụng: React Native, Kotlin, Flutter, rồi Slint UI kết hợp Rust. Mỗi lần thay đổi đều xuất phát từ việc đánh giá lại trải nghiệm phát triển, mức sử dụng tài nguyên và kiến trúc.

Ban đầu hệ thống bị over-engineer với microservices. Sau đó mình chuyển sang modular monolith và lựa chọn database phù hợp hơn với nhu cầu thực tế.

Đến 08/2026, mình chuyển giao dự án để tập trung cho năm học lớp 12 và các project khác.

Holo Project

C++Node.jsNative UIExperiment

Một thử nghiệm về framework UI desktop nhẹ. Ý tưởng là dùng C++ cho rendering và windowing, còn JavaScript/Node.js xử lý application logic với mô hình component gợi nhớ tới React.

Holo không sử dụng WebView theo ý tưởng ban đầu. Project chưa hoàn thiện và còn nhiều lỗi, nhưng giúp mình bắt đầu quan tâm sâu hơn tới rendering, UI architecture và runtime.

Những câu hỏi từ Holo sau này tiếp tục xuất hiện trong Lithic Engine.

VineMC

JavaScriptMinecraft2023–2024Archived

Một trong những lần đầu mình thử tự xây dựng Minecraft server software. Vì đã quen với Node.js, mình chọn nó để biến ý tưởng thành một hệ thống có thể chạy được.

Sau này, khi hiểu rõ hơn về runtime overhead và memory usage, mình nhận ra lựa chọn công nghệ chưa thực sự phù hợp với mục tiêu tạo ra một server nhẹ.

Project không tiếp tục phát triển, nhưng để lại một bài học quan trọng về việc chọn công nghệ theo constraint.

minecraftWebServer

LaravelEarly Web

Một thử nghiệm web liên quan đến Minecraft trong giai đoạn đầu mình học cách xây dựng ứng dụng web có backend và frontend.

Before the bigger projects

Những thử nghiệm đầu tiên

Trước những project có kiến trúc rõ ràng, đã có rất nhiều lần thử nghiệm chỉ để tìm hiểu một điều gì đó.

Reverse engineering Minecraft LAN

MinecraftNetworking

Khi Minecraft Bedrock thay đổi cách hoạt động của LAN, mình tò mò về cơ chế kết nối giữa các thiết bị và bắt đầu tìm hiểu, thử phân tích hành vi networking của trò chơi.

Đây là một thử nghiệm tự học và sau này đã được phát triển thành Overlix. Đây cũng là lần đầu tiên mình Reverse Engineering thứ gì đó và biến nó thành một sản phẩm thực tế.

Operating system experiment

OSLow-levelLearning Project

Mình từng thử tự làm một hệ điều hành để học hỏi. Bản thử nghiệm chỉ chạy được trên một số máy đời cũ và chưa hoàn thiện.

Project không có repository được lưu lại. Đây là một trải nghiệm học tập cá nhân, không phải một hệ điều hành có thể sử dụng rộng rãi.

First C++ experiments

C++Lớp 5

Khoảng năm 2020 (Những năm mình lớp 5), mình bắt đầu học lập trình với C++. Khi đó, kiến thức chủ yếu mới dừng ở cú pháp cơ bản và những chương trình nhỏ.

Chưa có project lớn, nhưng đây là điểm bắt đầu của hành trình lập trình.

First steps into web

HTMLCSSLớp 6

Sang lớp 6, mình bắt đầu tìm hiểu HTML và cách tạo website. Thời điểm đó mình chưa biết React hay các framework frontend.

Việc học web sau này dẫn tới StudyWM và những trải nghiệm đầu tiên với backend, frontend và kiến trúc ứng dụng.

Cuộc thi Sáng tạo dành cho Thanh thiếu niên

Lớp 7 · 2021–2022 · Giải Ba cấp huyện

  • Project đầu tiên đi thi
  • Cấp huyện
  • Early milestone

Project đầu tiên mình mang đi thi. Ý tưởng khi đó chưa quá mới và project còn thiếu tính sáng tạo, nhưng trải nghiệm này khiến mình bắt đầu quan tâm nhiều hơn tới việc tự tìm hiểu công nghệ và cách tạo ra một sản phẩm.

Đây là một dấu mốc đáng nhớ không phải vì project đã hoàn hảo, mà vì nó mở đầu cho quá trình khám phá sâu hơn.

A project that grew with me

StudyWM

Từ website PHP đầu tiên đến phiên bản được cải tiến bằng một stack web hoàn toàn khác.

StudyWM - First version

PHPWeb2022–2023

Ở lớp 8, mình xây dựng StudyWM bằng PHP. Website chưa có tên miền riêng, nhưng mình đã mang project tham gia cuộc thi nghiên cứu khoa học.

Project đạt Giải Ba cấp huyện. Đây là một trong những lần đầu mình biến kiến thức lập trình thành một sản phẩm có mục tiêu cụ thể.

StudyWM - Improved version

Express.jsReact.jsBasic MVC2023–2024

Sang lớp 9, mình quay lại cải tiến StudyWM bằng Express.js, React.js và những kiến thức MVC cơ bản.

Phiên bản cải tiến đạt Giải Nhất cấp huyện và Giải Ba cấp tỉnh.

Quan trọng hơn giải thưởng, đây là trải nghiệm giúp mình thấy rõ việc học thêm công nghệ và quay lại cải tiến một sản phẩm có thể thay đổi kết quả như thế nào.

Lessons from building

Những thứ mình học được

Không phải bài học nào cũng đến từ một project thành công.

01 / VineMC

Công nghệ phải phục vụ constraint

Node.js giúp mình phát triển nhanh vì đó là thứ mình biết. Nhưng mục tiêu của VineMC lại là lightweight server software. Hai thứ đó không thể đi cùng nhau được.

Từ đó mình bắt đầu quan tâm nhiều hơn tới runtime overhead, memory usage và việc lựa chọn công nghệ dựa trên yêu cầu thực tế.

02 / Overlix

Over-engineering cũng là một dạng thiếu kinh nghiệm

Khi mới làm Overlix, mình nghĩ là ứng dụng của mình sẽ có rất nhiều người dùng, mình nghĩ một hệ thống nhiều microservices sẽ tự nhiên trở nên chuyên nghiệp hơn.

Nhưng sau đó, khi mọi thứ đang dần trở nên quá sức với mình. Mình mới thực sự hiểu rõ về quy mô, deployment và communication overhead, mình nhận ra kiến trúc đơn giản hơn phù hợp hơn. Từ đó chuyển sang modular monolith và chọn database dựa trên nhu cầu.

03 / Overlix

Không có một stack phù hợp cho mọi giai đoạn

Quá trình phát triển ứng dụng Overlix đi qua React Native, Kotlin, Flutter và cuối cùng là Slint UI kết hợp Rust.

Những lần thay đổi này giúp mình hiểu rõ hơn về trade-off giữa tốc độ phát triển, tài nguyên, khả năng kiểm soát và mục tiêu sản phẩm.

04 / Holo -> Lithic

Project bỏ dở không nhất thiết biến mất

Holo không trở thành một framework hoàn chỉnh. Nhưng những câu hỏi về native UI, rendering và runtime vẫn còn đó.

Những năm sau, các câu hỏi tương tự quay trở lại trong Lithic, lần này với Rust, wgpu và kiến thức hệ thống tốt hơn.

05 / General

Build something to understand it

Có những thứ đọc documentation vẫn chưa đủ. Đôi khi cách tốt để hiểu một hệ thống là thử tự xây dựng một phiên bản nhỏ của nó.

Beyond my own codebase

Open source

Một phần developer history không chỉ nằm trong những project mình sở hữu.

Slint - Android IME / key-repeat fix

Pull Request #12635 · slint-ui/slint · Merged 07/2026

  • Open Source
  • Android
  • Rust / Java

Contribution liên quan tới input method trên Android, tập trung vào việc duy trì IME session ổn định và phân biệt những thay đổi cần restart input với những thay đổi chỉ cần cập nhật text hoặc selection.

Đây là một lần mình làm việc trực tiếp với codebase của một project open-source lớn hơn, thay vì chỉ phát triển trong những repository của riêng mình.

How it all started

Developer timeline

Một dòng thời gian không chỉ ghi lại sản phẩm, mà còn ghi lại những chuyển biến về tư duy và sự tò mò ở từng giai đoạn.

  1. First C++ code

    Bắt đầu những bước chân đầu tiên vào thế giới lập trình với C++, cày cuốc cú pháp cơ bản và tự làm mấy chương trình console nhỏ.

  2. Discovering the web

    Tò mò tìm hiểu HTML và cách dựng một trang web thuần từ con số 0, chưa phụ thuộc vào React hay bất kỳ frontend framework nào.

  3. First competition & networking experiments

    Mang project đầu tiên đi thi Cuộc thi Sáng tạo dành cho Thanh thiếu niên và đạt Giải Ba cấp huyện. Đồng thời bắt đầu tự vọc vạch, phân tích cơ chế networking của Minecraft LAN.

  4. StudyWM - PHP

    Tự tay dựng hệ thống StudyWM bằng PHP, mang đi tham dự cuộc thi Nghiên cứu Khoa học Kỹ thuật và mang về Giải Ba cấp huyện.

  5. StudyWM Improved

    Đập đi xây lại StudyWM với Express.js, React.js và mô hình MVC. Phiên bản cải tiến thắng lớn với Giải Nhất cấp huyện và Giải Ba cấp tỉnh.

  6. VineMC

    Thử sức viết phần mềm Minecraft server software bằng Node.js. Đây là cú hích khiến mình bắt đầu chú ý sâu tới runtime overhead, RAM usage và bài toán hiệu năng.

  7. Holo Project

    Thử nghiệm làm framework native UI với C++ gánh render và JavaScript/Node.js xử lý logic. Dự án mở ra hàng loạt câu hỏi nhức nhối về kiến trúc application runtime.

  8. Overlix

    Phát triển ứng dụng quản lý Minecraft server trong 2 năm, cán mốc 50.000+ lượt tải trên Google Play. Trải qua nhiều lần đổi stack và tái cấu trúc từ microservices sang modular monolith.

  9. National Informatics Olympiad Team

    Thành công ghi tên vào Đội tuyển Học sinh giỏi Quốc gia môn Tin học, tập trung rèn luyện tư duy thuật toán và competitive programming.

  10. Slint Open Source Contribution

    Có Pull Request (#12635) được chính thức merged vào repo slint-ui/slint, giải quyết bài toán xử lý IME và text editing.

  11. Overlix Handoff

    Chuyển giao giai đoạn phát triển trực tiếp dự án Overlix để tập trung tối đa cho năm học cuối cấp và các nghiên cứu cá nhân chuyên sâu hơn.

  12. Lithic Engine

    Sử dụng Rust và xây dựng GPU rendering (wgpu), browser engine runtime và xây dựng developer tooling ở các tầng nền tảng thấp.

How I think

Cách mình build

Có một vài thứ đã thay đổi rất nhiều từ lớp 7 đến lớp 12.

Mình không chỉ muốn biết cách sử dụng nó

Mình thích hiểu abstraction đang che giấu điều gì. Nếu một framework, runtime hoặc công cụ khiến mình tò mò, mình thường có xu hướng đi xuống một tầng thấp hơn để xem nó thực sự hoạt động như thế nào.

Đó là lý do những project hiện tại ngày càng đi gần hơn tới rendering, GPU, runtime, compiler, simulation và systems architecture.

Xây dựng từ các nguyên lý cơ bản

Khi abstraction không đủ để mình hiểu vấn đề, mình thử tự xây một phiên bản nhỏ hơn từ đầu.

Học bằng cách xây dựng lại

Một số ý tưởng đã xuất hiện từ những project rất cũ. Khi kiến thức tăng lên, mình quay lại giải quyết chúng bằng kiến trúc và công nghệ mới.

Giữ lại những trải nghiệm

VineMC, Holo và những prototype chưa hoàn thiện vẫn là một phần của lịch sử. Chúng cho thấy những gì mình từng nghĩ và những gì mình đã thay đổi.

Chọn công cụ phù hợp với yêu cầu

Công nghệ mới không tự động là công nghệ phù hợp. Mình muốn hiểu trade-off và lựa chọn công cụ theo yêu cầu thực tế của project.

Find me online

Xem thêm

Những nơi mình để lại dấu vết công khai.

© 2026 MineHighVN.

Developer history - projects, experiments, achievements and contributions.

Lên đầu trang ↑