That's research. Engineering would be programming, but well. Taking into account future maintenance concerns and so on. Seems like the software world doesn't do a lot of it.
Capacity planning, growth rates, algorithmic complexity (typically not to the point of designing new fundamental algorithms), durability, DR, eventual consistency, race conditions, schema design, systems architecture, instrumentation, statistics, sampling, more measurement, tech debt maintenance and pragmatism, online migrations, designing for five nines uptime ...
Programming is turning requirements into code with or without respect to these higher level criteria. The implementation detail.
"Engineering would be programming, but well" fits :)