Especially in a technical role, you have to prove that you are capable of designing and building critical code for software solutions, and can lead a team of software engineers to build better end-products. Where I work at the moment, you start as a Software Engineer Associate (essentially a graduate), then after a year you become a Software Engineer, followed by Software Engineer Senior once your manager believes you've gained the appropriate levels of knowledge to maintain the responsibilities of the role. Once you have reached this stage, you can either move further into the Managerial space, or continue on and attempt to become a Lockheed Martin fellow