The future role of the software engineer is using AI to translate informal requirements into high level formal specs, and reviewing those.Ā The AI implements the specs, and verifies against the formal spec using a theorem prover. The human is there so we can blame them when things go wrong; the human's job is to ensure the formal spec is correct; that is the code they review. If it seems wrong, they tell the AI and discuss. The human writes nothing but natural language.