When can I use Index as Key, and when should I generate another value for it?

Rendering a list of items is a common scenario for most UI these days. In its official document, React states key as an essential property for your list. …


The reason why I ask to remove most of the comments during code review

When I was a student in University, I learned from many people that I should make a fair amount of comments in my code to make sure other people can understand it. In an onboarding course…


A few days ago, one of my colleagues asked me to review his Pull Request (PR). The PR is about implementing a dynamic list of text inputs. The program will let users add as many fields as they want via an “Add” button.

This guy ran into one problem: the…


A simple way to record your video and audio on browser and download it using Javascript

Videos have become very popular in our daily activities on the internet. Do you wonder how difficult a website needs to do to support video? It was tough for companies to bring Media technologies to their tech product since it required knowledge from both Media and Software development. …


And could cause frustrations sometime if you don’t acknowledge it

It was an afternoon break. I met Justin, a colleague of mine, appearing a bit thoughtful in the pantry. He is a smart junior developer who did amazingly in our project.

“Hey Justin, how are you doing?”

“Not so good. Well, I can’t remember what I did besides meetings today.”


We can apply them in other areas as well

Bao Khoi, my 3-year-old son, is a chatty kid. He loves to play and talks with others all the time. A year ago, he saw my wife and me as the whole world. He followed and obeyed us a hundred percent. As he grew up, he figured out many other…


Instead of generating zip file and transfer it from your server, why not download data and zip them in your browsers?

I recently worked on a side project, which generates reports per user’s request. For each request, our backend will generate a report, upload it to Amazon S3 storage, and return its URL to the client. Since generating a report takes a while, the output files are stored and the server…


Attached the TTY for a command that required input, then detach it to run in the background

A few days ago, I created my own remote signer for the Tezos blockchain. For those who are not familiar with Tezos, a signer is a process that holds users’ credentials and signs all transactions on behalf of them. Thanks to Tezos’s docker repository, the setup has gone smoothly. …


Note: I’ve published an open-source library go-cloudfunction-auth for this purpose. If you run into the same need, you can just go ahead with the library (see the sample here). In the scope of this post, I will talk more about how I investigate and resolve the problem.

A few weeks…


Sometimes, you may find currying hard to understand and wonder about its application. In this post, I will list some tips which may helpful for you

In this post, I assume that you already know Currying in Javascript. …

Ngô Việt Khánh Huy

Technical Leader, Mentor

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store