Discussion on Tech Stack

Discussion on Tech Stack

Daily short news for you
  • Everyone using Cloudflare Worker to call OpenAI's API should be careful, I've encountered the error unsupported_country_region_territory these past few days. It's likely that the Worker server is calling from a region that OpenAI does not support.

    It's strange because this error has only occurred recently 🤔

    » Read more
  • A few days ago, Apple introduced a container tool developed by themselves and open-sourced as apple/container. It is used to create and run Linux containers as lightweight virtual machines on Mac, optimized for the Silicon chip line. Does that sound familiar? Kind of like Docker, right? 😄

    Docker on Mac needs to run a Linux virtual machine to use containers, and now with Apple introducing this, maybe Docker will see an update soon. We don’t know how the performance will be yet; we’ll have to wait for evaluations from experts. It’s neither Go, nor Rust, nor C... apple/container is written in... Swift. Wow, that’s quite astonishing. 😳

    » Read more
  • Before, I mentioned that github/gh-copilot is a command-line tool that suggests commands or explains them. While browsing through some "comments," I discovered a rather interesting way of using it that I hadn't expected. That is to set an alias for the command gh copilot suggest as "??" and "???" and then, after getting used to it, it becomes extremely convenient. For example, if you want to compress a directory into a tar.gz format but forget the syntax, you can simply do: bash $ ?? "compress the pages directory into .tar.gz" Or if you encounter a command that is hard to understand, you can use: bash $ ??? "tar -xzvf pages.tar.gz pages"

    » Read more

The Problem

MEAN stands for the first four letters in a set that includes MongoDB, Express, Angular, and Node.js. Similarly, LAMP consists of Linux, Apache, MySQL, and PHP. Additionally, there are many other acronyms with similar meanings, such as JAM Stack, T3 Stack... By now, you surely know that this is a set of technologies that help create a complete website or web application, right?

Back in school, I was very fond of PHP and worked on many projects based on PHP. At that time, I used a Windows computer, so the toolkit I used was WAMP, which means replacing Windows with Linux. Back then, just knowing WAMP was enough to do quite a lot, from landing page websites to e-commerce sites. I thought there was nothing I couldn't do. When it was time to graduate, the name Node.js suddenly became a hot topic online. I curiously read about it but didn't understand anything at all. Probably because it was different from PHP, which I had been using; from coding to deployment processes, everything was different. Yet, during my internship, I ended up working in a JavaScript/Node.js position. Honestly, I can't remember how I managed it!

For those who are new to JavaScript or Node.js, the name MEAN is hard to forget. It's like an unwritten rule that people won't ask why it's MEAN and not something else. Many people strive to master MEAN because it’s said that this toolkit has received a lot of attention and makes it easier to find a job. I am no exception; this name followed me for quite a long time, sleeping and waking up with MEAN.

MEAN, LAMP, WAMP... or many similar names act as the backbone of applications. That is, with just these minimum components, the system can operate. However, in reality, this is not enough. There are still many other components involved in the software system, all of which play a role in ensuring it operates stably and efficiently. Together, they form a Tech Stack.

So what is Tech Stack? Is it important? What benefits does understanding it bring us? Hopefully, readers will find the answers in today's article.

What is Tech Stack?

Tech Stack (also known as "technology stack") is a collection of technologies, programming languages, frameworks, libraries, and tools used to build and deploy an application or software system. Specifically, a Tech Stack typically includes Front-end, Back-end, Database, and supporting tools.

Front-end (FE) and Back-end (BE) need no further explanation. FE is responsible for everything the user sees and interacts with. Meanwhile, BE handles the core logic of the application. The Database (DB) is an essential part of modern applications; anything that needs to be stored almost always requires a database.

It is easy to see that MEAN, LAMP, WAMP... meet 3 out of 4 criteria, meaning they include FE, BE, and DB. So what are the supporting tools? They include all the remaining components such as Windows, Linux (environment), source code management tools (Git), testing, deployment (CI/CD), and other DevOps tools. In short, any component that participates in the software system.

So how do we define supporting tools? Well, it is closely related to system architecture.

Relationship with System Architecture

System architecture refers to the way components are organized, structured, and divided within the system to ensure performance, scalability, security, and maintainability. System architecture determines how components communicate and work together (e.g., Monolithic architecture, Microservices, Serverless, etc.).

For example, previously, Monolithic architecture was very popular; all components were in one block, which eliminated communication costs. You only needed FE, BE, DB programming languages, and a server to deploy the system. Nowadays, many people are more interested in Microservices, separating the logic processing parts for increased transparency and scalability. However, this incurs additional communication costs, meaning using communication support tools between systems like Pub/Sub, Message Queue...

If a system needs to handle a large volume of data and requires scalability, we tend to choose additional databases like SQL, NoSQL, or combine them. Additionally, caching techniques to optimize query performance also require suitable tools. Every tool participating in the system becomes a part of the Tech Stack.

That's about the logic and data processing. Another equally important component is the DevOps processes, CI/CD, and automation. This is where many software tools are used by professionals. They lay the foundation for building stability through testing or automatic deployment processes, avoiding human error.

Not only are these tools oriented toward code and programming, but there are also many tools dedicated to analyzing and processing business operations that fall under the Tech Stack as Business Tools.

To better visualize what a Tech Stack includes in practice, readers can refer to the website stackshare.io. This acts as a comprehensive picture of the tools that an operating system uses. The example below shows the Tech Stack of Facebook. How many of those can you name?

Facebook Tech Stack

Importance and Benefits

Tech Stack plays a crucial role in building and operating an application. It determines how different components of the system are organized, from user interface (front-end), business logic processing (back-end), to databases and other supporting tools.

A carefully chosen Tech Stack not only helps determine the architecture of the application but also ensures optimal performance, scalability, and high security. It also contributes to optimizing the development process, reducing time to market, and facilitating maintenance and upgrades over time.

Understanding and mastering multiple Tech Stacks brings many benefits. When you have knowledge of various technologies, you become more flexible in selecting and combining the most suitable technologies for each specific project. This not only helps solve problems effectively but also broadens your understanding of new technology trends.

Diversity in knowledge also makes it easier for you to switch between different projects, facilitating career development. Imagine, when you know a lot, you can handle many different types of projects and make informed decisions about technology, contributing to optimizing workflows as well as reducing maintenance and operational costs for the system.

What Tech Stack are you using at work or for personal projects? Please share it in the comments below. Thank you!

Premium
Hello

5 profound lessons

Every product comes with stories. The success of others is an inspiration for many to follow. 5 lessons learned have changed me forever. How about you? Click now!

Every product comes with stories. The success of others is an inspiration for many to follow. 5 lessons learned have changed me forever. How about you? Click now!

View all

Subscribe to receive new article notifications

or
* The summary newsletter is sent every 1-2 weeks, cancel anytime.

Comments (0)

Leave a comment...