In general, job mobility is determined by the software engineer. While some software engineers change jobs to avoid becoming software managers or team leaders, others change roles for the same reason. Software engineers are used to having a lot of freedom, and most people would like to keep their autonomy and career flexibility for as long as possible.