Low-code is the right answer for many problems, and we use it often. It stops being the right answer when the logic is too involved to test inside a flow, when two systems need to stay in step through failures and restarts, or when an application has outgrown the platform it started on.
In those cases we write code. Business rules go into tested libraries, not formulas buried in a spreadsheet or a canvas app. Integrations retry, match records and reconcile, and they log what happened. Users get a simple screen to review the result and override it when they disagree.
We also take over software that another developer built and no longer supports, and we run three products of our own on the same stack we build for clients: DevFlow for consultancies, StadiumCue for school sports broadcasts and Meal Planner for groups. That stack is .NET and C#, Python, TypeScript and React, and Azure, with custom connectors that bring the result into Power Platform when that is where your team works.