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.
In this blog post, I am going to introduce a new approach: Directed Acyclic Graph, also known as DAG. For a formal definition, better to take it from Wikipedia:
A directed acyclic graph (DAG) is a directed…
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,… If your application is small, a few environment variables on your local machine would suffice. At enterprisey level, you probably want a highly-available Vault cluster backed by a highly-available Consul cluster. However, what if your scope is somewhere in between? You have too many secrets to manage by hand but not that many to justify a Vault installation. …
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.
It all began with my participation in Google Summer of Code 2019. For those who didn’t know, Google Summer of Code is an annual program for undergrad and grad students. Students will work remotely, receive mentorship and get paid to complete a certain open-source project. I worked with Jenkins and my project was Remoting over Apache Kafka with Kubernetes features.
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.
In a software development lifecycle, there may be as little deployment environments as just development and production. However, there may also be as many as development, integration, testing, staging and production. These environments are different by nature and thus require some slight (or considerable) change of factors.
Hiện nay có khá nhiều lộ trình tự học tiếng Nhật. Bản thân mình có cách học hơi khác người (kanji first) nhưng lại tỏ ra khá hiệu quả trong việc thi N và cải thiện khả năng reading. Thông thường thì các bạn sẽ học theo giáo trình Minna/Genki, với mỗi bài sẽ học một lượng từ vựng và ngữ pháp cố định đồng thời tập đọc và nghe. Còn cách học của mình là cram thật nhiều kanji với từ vựng trước, rồi học ngữ pháp, rồi mới luyện các kỹ năng đọc và nghe.
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.
Lightweight, customizable, big userbase, open-source and has an awesome community.
I still haven’t been able to figure out how to debug, even after reading VSCode’s official guide. …
Software Engineer in Vietnam