All the data and conclusions are my personal opinion - it might be wrong, incorrect
***Software engineering(SE)*** is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining software applications. It involves applying engineering principles and computer programming expertise to develop software systems that meet user needs.
Software exists because there are users. If no one wants to use a product, then it will disappear. That’s why we are - software engineers must take care of our users 😊. Let’s be honest, everyone is a user of a certain product, but not everyone is the creator of the product.
Right now, companies want software engineers to be more aware of products and clients. Smart developers are always useful. You might argue that if I write good code, that’s enough. Yeah, that’s true, but if you don’t have a client or, more directly, if no one pays for your “code”, then how do you earn your money - that’s a harsh truth. That’s why you have to think as a client and build a better product
Let’s see the Software Engineering world as a normal person (aka: client, user).
Let’s begin from scratch: I heard people are using AIs and it’s great, I wanna give it a try, I just got a phone and realized I don’t have any idea what the hell AI is, how to use it, but I know how to Google, so I entered a google and searched for “top 10 AI for android” result:

As you can see, the first result is ChatGPT And as humans, we always want the best; we’re greedy 😊. So I installed it and use it
Summary: From that real-life example, we can see I got two brand names in my brain forever
Google - long-running tech giant.ChatGPT (OpenAI) - One of the most used AI companies or AISo, as a software engineer, I try to build a product like theirs or be part of a giant company, because a strong brand gives you a strong career boost, and you can show off to your friends or colleagues. Or at least your product must have a good impression and reputation amoung clients.
Availability - Is the system up and reachable?
Reliability - does the system work correctly every time?
I am using ChatGPT Suddenly it stopped working: “internal server error”, “limit exceeded”, “503 error.” …
Let’s be honest, who is gonna wait until they fix their bug and release it - no one. As a user i instantly look for an alternative solution. Right now, the marketplace is filled with strong competitors: Gemini, Grok, Claude and so on. I instantly switch one of them. And the worst case is, if a user sees such unavailability 2 or 3 times, I guarantee that the repeated failures will significantly decrease our clients, and that product will leave a bad reputation. We lost one customer and potential customers (because if our product is good, one client can tell his or her friends and do free advertising).
Even when systems fail, partial functionality should still work. That’s the strong argument for microservice architecture
That’s why 3 nines - 99.9%, 4 nines - 99.99%, 5 nines 99.999% are important. Even in the CAP theorem, there is a special place for “availability.”
As a developer, make sure you’re building a highly available product. It’s a huge topic, I will probably write seperated post about it. But make sure you’re ready when the API fails, or the whole system is down, or a network issue happend or the DB is down, or AWS is down 😄. Instead of asking if this feature works as it is, ask yourself: