Latest

DinhDev is a blog about web development and software engineering.

  • Published on

    How to design a Rate Limiter

    rate-limitingSystem-Designscalability
    Have you ever kept hitting F5 on a website and suddenly got a message like “Too many requests, please try again later”? Or maybe when you were frantically hunting for deals on black friday sale, the site suddenly “lagged” and showed a notice asking y...
  • Published on
    What would happen if the iPhone 17 just launched, and Apple decided to auction off the first one? In the final 30 seconds, 100,000 people simultaneously spam the "Place Bid" button with prices jumping from $1,000 to $10,000. How would the system hand...
  • Published on
    Many developers are familiar with statements like "Node.js is single-threaded" and "it handles concurrent tasks through the event loop." However, the detailed workings of the event loop and why Node only needs a single thread to execute JavaScript mi...
  • Published on
    Realtime applications are everywhere nowaday, it plays such a crucial job where we want to interact with people directly: chat app, online meeting, and gaming. Building a reliable real-time application is hard, but scaling it is even harder. A real-t...
  • Published on
    Years ago I had a chance to work on a logistics project for a famous company. The business logic was super complicated, but the main logic for the end customer, the one that generates revenue, is simple: booking a parcel and tracking its status. Ther...
  • Published on
    Transforming a monolithic architecture to a microservices architecture is a significant task many organizations face as they scale and modernize their applications. In this post, I will walk you through the key considerations and steps involved in th...
  • Published on
    NestJS is a powerful framework for building server-side applications with Node.js, designed with a clean architecture inspired by Angular. It helps developers create organized and efficient code. In this post, we'll explore the fundamental components...
  • Published on

    How to choose the right stack for you next project

    StartupsTechStackSaaSWeb-Developmentsaas-development-
    Saas starter package has been rising in popularity recently, it helps developers make their startup quicker, ship product faster than ever before. One of the most successful starter packages I can name is ShipFast. The downside is when you use someon...
  • Published on

    Optimize your react component with useMemo, useCallback, useTransition

    Reactreact-hooksreact-optimizationweb-performance
    Hook provides convenient ways to build your react application with functional components. When your React application grows, unnecessary re-renders can hurt the app's performance. Luckily there are some builtin hooks to solve only that problem for us...
  • Published on

    4 Levels of Data Replication in Azure Storage

    azure-storageAzurereplicationBackup
    Imagine working on a critical application where losing data equals losing business. Outages, hardware failure, natural disasters could happen anytime, and that means you could be out of business by bad luck. Implementing replication and backup proces...
  • Published on

    The Evolution of Web Rendering: SSG, SSR, CSR...

    Server-side-renderingClient-side-renderingstatic-site-generationrendering-enginewebdev
    The web evolving, we aren’t living in a world of simple static website anymore. There are a lot of options for developers nowaday: SSG, SSR, CSR,… Each of the rendering technique has unique set of pros and cons, so choosing the right one for your pro...
  • Published on

    Simple way to Automate Deployments with VPS using Ansible

    Devopsansiblevirtual-machinedeploymentenglish
    Nowadays managing your development workflow is such a crucial part of your working process. An efficient workflow helps you iterate faster, shortens your feedback loop, and gets your product to market quickly. While many cloud providers provide integ...