Being a software(full-stack) engineer, I have worked on frontend, backend & mobile app development. Of all these three, mobile app development is slightly more complex when compared to developing a web application. This doesn’t mean that developing a web application is easy. Complexities increase as products mature.
Nothing is easy. Developing software requires time, effort & patience. Frontend development has its own complexities. Today’s web applications have a lot of front-end engineering work, which many people don’t recognize. Because it looks simple & easy. And many backend engineers (people in college or mostly people who are just starting out) think that it’s just HTML, CSS & JS and it’s easy. But, believe me, it’s not easy. It requires a great amount of time & effort to make wonderful, smooth UIs & remember users will interact with UI & don’t care about your backend apps or database.
Now, let me tell you why backend engineering is interesting!!
Most of the business logic is present in the backend code. It’s not only about creating APIs & services. But, also about databases, deployment, load balancers, reverse proxies, API gateways, & many more such interesting concepts.
If you just take the concept of deployment, it involves a variety of ways to take your application online. For example, you can have complex CI/CD pipelines or use Nginx, and ec2 to take your application online. Companies have a separate team just to handle infrastructure.
The backend is interesting because you will get a lot of problems/challenges on a daily basis. I am sure, that we will be learning new things frequently. And see how a small feature can solve a big problem.
A minor mistake can be costlier & bring the complete business to a halt. A small fix can save a hell amount of time & resources. There is a possibility of both events. This can happen in the UI as well. Let me give you an example of an extreme case: what if the add to cart button itself is missing because a person mistakenly commented it out. Of course, this is an extreme case. But, in the backend, detecting a small logical error can be tough. If microservices are involved then debugging may take you hours/days. A simple mistake in an ID can make a false transaction, and a customer may lose complete trust in your application.
Designing tables to store your data is another interesting field. You should do it in such a way that it should be scalable. Because going back in code is far easier than fixing database columns/tables. Database plays a significant role.
Today, most of us need to know many things, but why? Because we code on abstraction. We don’t understand machine code, we write in high-level languages which again have a lot of libraries/frameworks that we make use of. Basically, there are huge layers of abstraction. Compared to mobile app & frontend technologies, backend feels more calm, & interesting as it directly impacts the business