The High-Performance Series

Think Big, Do Small, Learn Fast

Photo by Kirill Sh on Unsplash

It is not easy to design a system that supports hundreds of millions of users. It always is a big challenge for a software architect (but it’ll be easy from today after reading my article 🤣)

Here are some topics covered by me in this article.

  • Start with simplest: .
  • The art of scability: .
  • Scaling a relational database:

Thought Programmer

Explaining common different architecture patterns

Photo by Alexander Andrews on Unsplash

An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context.

A pattern is a solution to a problem in a context.

Many programmers are nowadays still confused about the difference between architecture patterns or don’t even know much about it.

Let me explain to you…!

  • Layered Architecture
  • Pipe and Filter
  • Client Server
  • Model View Controller
  • Event Driven Architecture
  • Microservices Architecture

Layered Architecture

The most common architecture pattern is the layered architecture or known as the n-tier architecture. It is widely known by most software architects, designers, developers. Although, there are no specific…

Can You Solve Them in four hours?

Photo by Christina @ on Unsplash

I looked at over 1000 coding interview questions and found the hardest questions as follows by tech giants.

Question 01

There exists a staircase with N steps, and you can climb up either 1 or 2 steps at a time. Given N, write a function that returns the number of unique ways you can climb the staircase. The order of the steps matters.

For example, if N is 4, then there are 5 unique ways:1, 1, 1, 12, 1, 11, 2, 11, 1, 22, 2

What if, instead of being able to climb 1 or 2 steps…

Data Scientist

An overview of all the command-line tools

That’s an old command-line tool

A command-line interface is a program that processes commands to a computer program in the form of lines of text. In this awesome article, I will introduce 100+ command-line tools used popularly in Data Science.

Alias and unalias

The alias tool is a Z shell built-in.

$ type alias
alias is a shell builtin

For command lines, the syntax is:

$ alias name=’string’

We can create our own commands with it. Here’s the right way to set Python 3 as default.

$ type python
python is /usr/bin/python
$ python --version
Python 2.7.16
$python3 --version
Python 3.9.4
$ alias python=python3
$ python --version
Python 3.9.4…

Thought Programmer

Accelerating Your Path to Become a Programmer

Photo by Severin Höin on Unsplash

GitHub is a great place for sharing resources of all kinds, from free ebooks to APIs, from roadmaps to project ideas, and from projects to the products. I looked at Github and found the following awesome links.

Coding Standards

Arlo’s Commit Notation

A notation for small commits messages that show the risk involved in each step.

  • How risky is it? What has the original author done to mitigate risk?
  • What was the intention? When the original author changed the code, what was s/he attempting to accomplish?

Awesome Guidelines

A set of guidelines for a specific programming language that recommends programming style, practices, and methods for each aspect…

Updated on Aug 8, 2021

Photo by Johanna Buguet on Unsplash

These are a wide variety of questions inspired by real programming interviews with tech giants, with in-depth solutions that clearly take you through each core concept.

Get exceptionally good at coding interviews by solving one problem every day

We will together solve these problems using JavaScript.


Airbnb, Inc. is an online marketplace for arranging or offering lodging, primarily home-stays, or tourism experiences.

Airbnb was not devised by a hotel company.

Amazon, Inc. (/ˈæməzɒn/), is an American multinational technology company based in Seattle, with 750,000 employees. It focuses on e-commerce, cloud computing, digital streaming, and artificial intelligence. …

Data Visualization

The purpose of visualization is insight, not pictures

Photo by Isaac Smith on Unsplash

Hi everyone 😘!

Today, I am happy to introduce more than 50 charts usually used by business professionals. I hope you’re gonna love it. They are divided into the following five categories.

  • : line chart, lollipop chart, sparkline char, bar (and column) chart, area chart, bump chart, waterfall chart, slope chart, and stock chart.
  • : scatter plot, smooth scatter plot, bubble chart, correlogram, slope chart, heat map, chord diagram, radar chart, parallel coordinates plots, mosaic plot, spine plot, and bubble map.
  • : clustered bar (and column) chart, stacked bar (and column) chart, area chart, stacked area chart, cleveland dot chart…

Interesting JavaScript facts that are worth knowing

Photo by Ben White on Unsplash

1. Type of null is the object which is a bug in JavaScript

null is an object.

> typeof(null)

But since null has no value. So, null should not instance of Object.

> null instanceof Object

2. Type of NaN (Not a Number) is actually ‘number’

NaN (Not a number) is being a number.

> typeof(NaN)

3. (NaN === NaN) -> false

NaN is not equal to itself. Actually NaN not equal to anything.

> NaN === NaN

The only way to verify anything is NaN or not by isNaN().

if (isNaN(x)) {
return ‘Not a Number!’

A side effect is that you’ll never use indexOf() if you want to find out the index of a NaN value into an array.

let values =…

The High-Performance Series

More than 25 common bottlenecks and how to resolve them

Photo by Andrew Seaman on Unsplash

A bottleneck is a phenomenon where the performance or capacity of an entire system is limited by a single or limited number of components or resources. In order to improve the performance, we need to remove these.

When you hear the words “”, the typical hot spots that come to your mind are CPU, Memory, Disk, and Network. But in the practice, there are more than 20 common bottlenecks, divided into the following 10 categories: .


Working size exceeds the hardware limits

To somewhat mitigate the issues of database working size exceeding RAM use…

It’s better when it’s free

Photo by KAL VISUALS on Unsplash

It’s only for fun! Linus Torvalds believes that, “”. There are three types of free software such as:

  • is the software that is available to users with source code (e.g., Apache HTTP web server, Thunderbird email, Openoffice).
  • is a software that is available free of cost (Adobe PDF, Google Talk).
  • is a software that are freely distributed to users on trial basis (Winzip, PHP Debugger, Foxit Reader).

Guys, we all know sex is never free and neither is software. …

Anh Dang

I write about things that I like and things that I don’t, mainly in the business, art and tech sphere. Sign up for my newsletter

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