
Nam Vo Website
I developed this website to
share my knowledge and satisfy my coding passion
LATEST BLOG

Jekyll Asset Caching Strategy for AWS S3 + CloudFront Deployment
Deploying a static Jekyll site to AWS can be fast, but without the right caching strategy, users might see stale content or you might waste bandwidth re-downloading unchanged assets.This blog explains a dual-cache policy that combines long-term cachi...

Software Engineer
Software Engineer
Frontend
Frontend

Safe Concurrent Updates in Rails with Locks and Atomic SQL
Some applications require handling concurrent updates, like buying concert tickets or transferring money. In these cases, data consistency and atomicity are critical. Any mistake can lead to overbooking, double-spending, or even lost money. This post...

Software Engineer
Software Engineer
Ruby on Rails
Ruby on Rails
Top blogs
Explore the most popular blog posts. View all

How to restore scroll position in React Router 6
When developing a Single Page Application (SPA) with React and React Router V6, I encountered a scroll restoration issue. When I go to the new page, the scroll position persists instead of being on the topReact Router V6 offers a ScrollRestoration co...
Frontend
Frontend

How to Manage and Renew SSL Certificates Using Docker Compose
Securing your website with SSL certificates is essential to protect data transmitted between the server and client. Managing and renewing SSL certificates can be a cumbersome task, but Docker simplifies this process. In this blog post, we will demons...
Docker
Docker
Software Engineer
Software Engineer

How to get table index size in PostgreSQL
Indexes play a crucial role in enhancing the performance of database queries. They allow for faster data retrieval by creating a separate data structure pointing to the data stored in a table. However, indexes come with a cost in terms of disk space ...
Software Engineer
Software Engineer

Custom Fullscreen Button: A Cross-Browser Solution
Fullscreen functionality is a common requirement in web development, especially with media elements like custom video player. In this blog post, I'll share my experience working with fullscreen APITL;DRNote: On iOS browsers, the element must be a vid...
Frontend
Frontend

