Discussion on Tech Stack

Discussion on Tech Stack

Daily short news for you
  • "MongoDB also applies Eating Our Own Dog Food in their product development process. If you are not yet familiar with what that is, you can read more in the article Eating your own dog food - Using your own product."

    » Read more
  • swapy is a library that helps you create drag-and-drop actions to easily swap the positions of components.

    The library supports a wide range of platforms, making it perfect for building something personalized like a user’s Dashboard.

    » Read more
  • After waking up, I saw the news feed flooded with articles about Microsoft rewriting the TypeScript compiler - tsc in Go, achieving performance that is 10 times faster than the current one. Wow!

    But when I saw this news, the question immediately popped into my head: "Why not Rust?" You know, the trend of rewriting everything in Rust is hotter than ever, and it’s not an exaggeration to say that it's sweeping through the rankings of previous legacy tools.

    What’s even more interesting is the choice of Go - which supposedly provides the best performance to date - as they say. Many people expressed disappointment about why it wasn’t C# instead 😆. When something is too famous, everything is scrutinized down to the smallest detail, and not everyone listens to what is said 🥶

    Why Go? #411

    » 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

Me & the desire to "play with words"

Have you tried writing? And then failed or not satisfied? At 2coffee.dev we have had a hard time with writing. Don't be discouraged, because now we have a way to help you. Click to become a member now!

Have you tried writing? And then failed or not satisfied? At 2coffee.dev we have had a hard time with writing. Don't be discouraged, because now we have a way to help you. Click to become a member 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...