Being a software engineer is awesome until you get promoted to management, then it sucks. If your passion is coding, then your goal should not be to get promoted. If you have leadership skills like I do, then you become a team lead, still doing a lot of the coding but also supporting the junior team members. I find this very fulfilling, because it lets me do what I love and takes advantage of my natural abilities. I have formal training in management, but that's part of the reason I know I don't like it.. See here the advantages and disadvantages of this career.