Sign in

Software Engineer (C#/.NET, JavaScript, Microservices, K8s, Azure)

Photo by Yancy Min on Unsplash


Git-Flow provides a way of addressing the need for parallel development between different features. When you start developing a feature, create a feature branch from the master branch. Then, all the development work on the feature is done on this feature branch. After you complete the work on the feature, merge the feature branch back to the main code path for release.

Git-Flow has the following branches:

  • Feature branch: is a branch for developers to develop features.
  • Develop branch: is a branch that collects the developed features.
  • Release branch: is a branch that is responsible for version release.
  • Hotfix branch

Photo by Caspar Camille Rubin on Unsplash

There are two ways to get a SonarQube server instance up and running on your local machine — via a zip file and use Docker. I’ll go with the second option in this post — Build a SonarQube server with Docker and Docker Compose.


  • Docker & Docker Compose are installed and running. I highly recommend you go with the Docker Desktop if you are a beginner or not familiar with Docker & Docker Compose.
  • SonarQube server docker image.
  • Postgres docker file image.
  • Some basics knowledge with the Docker Compose tool to understand and modify the Compose file if necessary.
  • The…

Photo by Karl Pawlowicz on Unsplash

An old-fashioned solution to avoid page rendering performance is to put your script element right at the bottom of the body (e.g., just before the </body> tag) to load after all the HTML has been parsed. The problem with this solution is that loading/parsing of the script is completely blocked until the HTML DOM has been loaded. On larger sites with lots of JavaScript, this can cause a major performance issue, slowing down your site.

There are two modern features we can use to bypass the problem of the blocking script — async and defer (which we saw above). …

Photo by Nick Karvounis on Unsplash

Are you run into a situation that you have no idea why your CSS selectors are not working? Or you don’t know which is the best practice to override the existing style on an element with your custom style. This post is for you.

CSS stands for Cascading Style Sheets, and that first word cascading is incredibly important to understand — the way that the cascade behaves is key to understanding CSS.

To understand what I am trying to explain here, let’s assume that you already know about CSS basics and CSS selectors.

There are three factors to consider regarding…

Image from

Today I’m not going to talk about how to develop a Blazor application. Instead, I’m trying to explain to you guys How a Blazor application is written in .NET/C# can run and render the UI in the browser? What are the differences between Blazor WebAssembly and Blazor Server?

As far as I knew since 1995, JavaScript is the only language that works directly with the DOM (Document Object Model). So, Can C# now do it as an alternative to JavaScript? How can .NET code run directly in the browser?

Note: To understand what I trying to explain here, I’m assume…

Quang Nguyen

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