← Back

On Software Engineering

Pablo Bermejo
Updated January 11, 2026View on GitHub

Software engineering is not about writing code itself and it has never been. It is about removing ambiguity, encoding intent, and shaping conditions so that high-quality outcomes emerge with minimal friction. Over time, machines and abstractions have steadily elevated the dominant constraint in software delivery: first infrastructure, then deployment, then implementation, and now intent formation itself. Development tools (whether low-code/codeless environments, AI-assisted development, or higher-order programming paradigms) reflect this shift. They abstract away mechanics but do not eliminate the need for human judgment; they make the craft of software less about executing instructions and more about defining clear goals, context, and constraints that machines can faithfully act upon. This is not a loss of engineering relevance, but instead it’s a movement with the constraint, where engineers’ leverage comes from defining what is to be built, not how it is mechanically produced.

Explore this line of thought