How does the DNS really work

A long time ago, researchers from the United States have invented a way to send messages across the world without using papers or pigeons. Nowadays, people know about it as the Internet. With the advent of TCP/IP protocol and submarine cable, a person from Vietnam can effectively visit a website hosted in the US, If only that person can remember the website IP address.
Read more →

Introducing DAG: A simple way to design backend application

At some point in writing API application or microservice, we have probably struggled with code architecture and organization. Modern technologies for building backend applications like Node.js or Go don’t even have any idiomatic way for project structure. That gives us the freedom of designing the most suitable architecture for our use case but also makes it easy to shoot ourselves in the foot.

Read more →

How to safely store secrets in Git

Storing and securing secrets has always been a headache of software engineering. Secrets are private information that you don’t want the world to know like SSH keys, API tokens, passwords,…
Read more →

I was invited to DevOps World — Jenkins World 2019

And it was one of the best trips in my life. It was the first time I went to a conference, and even more so, I went there as a speaker.

Read more →

Configure Docker project for different environments using Docker Compose 3

docker compose

We all know that Docker is awesome, but when it comes to separating deployment configs, there is little to no strict guideline. In this article, I will try to explain one of the most popular techniques which is using docker-compose with environment variables. There is also an example with Node.js at the end.

Read more →

Configure VSCode for competitive programming

What is competitive programming?

Sites like CodeForces, TopCoder, HackerRank, CodeChef,… ACM-ICPC, Olympiad in Informatics (for high school students), Google Code Jam, Facebook Hacker Cup,… Anything involves solving short problems in 2–5 hours by code using algorithms and data structures.

Read more →