My career has been dynamic over the first few years. I have moved from project to project, within a company and across, up in hierarchy and sideways, creating a matrix of career options for myself. Sometimes the change was fast, at times slow and on some instances even in the wrong direction, but I have now built up a portfolio of experiences.
These are the various roles I see and a 5 years old-like explanation of what each title entitles you to do typically.
These people make sure the code matches the ideas and designs
These are the programmers who now also have a bunch of programmers to guide
These people make the job of developers easier and systematic by introducing software to automate the various programming, release and deployment related processes
These people handle the production environment and manage all day to day activities involved in running the software in live.
These people understand the scope of the product and shape it to meet the client needs. This person is required to interface a lot with other teams and the clients
These people are there to measure the effectiveness of the product and give inputs to finetune the solution
These people figure out the overall technical design that matches the business needs. Here practicality takes precedence over technicality
These people review designs and products and make sure they are a good long term choice and fit it with what the rest of the company is doing. Work with people in similar roles throughout the company and makes sure everyone is headed in the same direction