Skip to main content

About me

I moved to write on my own hosted blog at nguyenvanhuong.vn. Visit the website for new posts.

I am a software developer living in Vietnam. I started my career at Axon Active Vietnam, where I learned the fundamentals of building web enterprise systems with Java. After nearly five years of working with the low-code platform Axon.ivy, I decided to change my path and joined ubitec. There, I began working with Python to build an AI chatbot using Rasa. However, my company then rotated me to another team to build a chat platform using the open-source project Rocket.Chat, turning me into a full-time JavaScript developer for nearly another five years.

After spending several years in software development, I had the opportunity to gain valuable experience in various aspects of the field. It became clear to me that engineering management tasks often presented challenges that needed to be overcome. With this in mind, I aspired to become an active participant and concentrate on resolving any issues within my company's software development processes, particularly those related to engineering management.

The name of my blog, "vhandit", is short for "Van Huong and IT". 

Follow me on

Comments

  1. Bạn có thể add subscribe option trong website này để mình nhận được tin nhắn, email khi bạn post bài viết mới được không.

    Cám ơn bạn nhiều.

    Tuyền

    ReplyDelete
    Replies
    1. Cảm ơn ý kiến của @Tuyen Nguyen nhé. Tôi đã thêm gadget "Follow by Email" vào site. Ngoài ra bạn cũng có thể dùng http://feedly.com/. ;)

      Delete
  2. A cài plug in hiển thị code cho dễ đọc vs a

    ReplyDelete
    Replies
    1. Thank bạn nhé! Hazz...blog đang sử dụng Syntaxhighlighter, có thể bị vấn đề ở một số browser rồi, tôi kiểm tra lại xem sao. :(

      Delete
    2. xem được rồi, mới xem profile linkedin thì ra là bằng tuổi -.-

      Delete
  3. em cũng mới tập viết blog: thachleblog.com. Nếu được a ghé đọc góp ý với :D

    ReplyDelete
  4. bạn có thể viết thêm các bài review về các framework hay công nghệ mới của java không , JSF mình thấy ít cty dùng lằm mặc dù nó là con đẻ của JAVA

    ReplyDelete

Post a Comment

Popular posts from this blog

Set up a web server for learning HTTP headers

Motivation We all follow the client-server model using the HTTP protocol for most of our web apps today. In development, we simply may have a backend API server and a frontend (web pages or mobile apps) only. However, it seemed that a proxy server is always required for production. In fact, most of the hardest issues in production come from integration. The requests and responses might be modified by the proxy server. Therefore, the understanding of HTTP protocol is one of the key skills to resolve those issues. I wanted to dive deep into HTTP with some core concepts such as caching, cookies, and CORS. I didn't intend to go quickly rather than moved slowly to have a well understanding of what I do. Prepare a server The easiest way is to use my laptop as a server then I can just use "localhost". I can also use ngrok to make my web server online. Finally, I use an online tool such as RedBot to check the HTTP headers. To make it more excited though, I deployed the app on A...

What the heck is Meteor DDP?

I was using Meteor for my messenger project. I was so curious about the real time connection. I wanted to know how exactly this mechanism works. In this post, I will go through the DDP Specification, an overview of WebSocket, and a simple demo about how to subscribe a publication of Rocket.Chat (containing a DDP server) from an external webpage. At a glance, I knew that Meteor invented a protocol called DDP which uses for handling real time connection. So then, what is DDP? "DDP (Distributed Data Protocol) is the stateful WebSocket protocol that Meteor uses to communicate between the client and the server." [1] All right! Why does DDP matter? "DDP is a standard way to solve the biggest problem facing client-side JavaScript developers: querying a server-side database, sending the results down to the client, and then pushing changes to the client whenever anything changes in the database" . [2] In order to understand deeply the protocol, I decided ...

Awareness of Product Development

Software development can be understood simply as a program to receive inputs (i.e customer needs) and then produce outputs (i.e working software). It is worth it to know how many steps are in that program. When something gets stuck in a step, everyone is aware of that. The first painting of my son The General Process Big Picture There are two main factors in this picture including the people with roles and their interactions. All people involved in developing the product know their responsibilities clearly and how to make things done right. Therefore, a good collaboration can be reached. Product Roadmap Contribution It would be great for developers to know what the next features to work on are as well as when those features will be delivered. Therefore, the product roadmap is very important. The items in the roadmap should be contributed by ALL people involved in the product. Because software engineers directly develop, test, delivery, and monitor the software, they should also contrib...

Merging source in SVN

My team has used Primefaces for our projects. We sometimes have several branches of the projects with a new Primefaces's release. For example, we currently have a project with two branches, a branch for using Primeface 4.0, a trunk for using Primeface 5.0, and we are working these parallel branches. Our project looks like the following: - myProject - branches + primefaces4 + tag + trunk (primefaces5) My problem is how to copy the same source from the trunk to the branch "primefaces4". That is where SVN Merging can help! Here is the steps those I have conducted in my project. Step 1 : open the project with the branch "primefaces4" Step 2 : Team > Merge... Chose the trunk's URL. For example: http://192.168.9.10/svn/myProject/trunk Step 3 : Select the revision from "trunk" to merge. For example: +--revision--+--date--------+--author----+--comment---+ +  10        + 03.10.2014 + vanhuong   + f1: part 3 + +  9     ...

Make simple music program with beep(freq, duration) with Pascal

Pascal is my first programing language when I have studied in high school. It was really exciting for me. :) The Pascal programming language was created by Niklaus Wirth in 1970. It was named after Blaise Pascal, a famous French Mathematician. It was made as a language to teach programming and to be reliable and efficient. Pascal has since become more than just an academic language and is now used commercially . I tried to make a simple music program by using Lazarus IDE on MS Window 7, 64-bit. It frustrated me a few times how difficulty to use Sound command to make a sound. Sound did not work on my compiler and my platform anymore. So far, I just could use beep(freq, duration) from window unit to implement my work. Here is my code. ;) program mysong; uses Windows, crt; const C: Integer = 512; { x = A * EXP(LN(2)/12)} C_: Integer = 542; D: Integer = 574; D_: Integer = 608; E: Integer = 644; F: Integer = 682; F_: Integer = 723; G: Integer = ...