The most important things to remember about job titles is that there are no industry-wide standards, and they are often meaningless.
Over my career, I’ve had almost every title a developer can have – including Mainframe Developer Level 3 (even though I never touched a mainframe at that job).
So, don’t worry too much about job titles.
As far as most people are concerned, there’s no difference between a title of Developer, Programmer, and Engineer. Although, I avoid the use of Engineer, since there are potential legal issues with that – even though I’ve never heard of any programmer getting in trouble for it.
Outside of programming, an Engineer means you’ve passed the licensing procedure of your industry’s professional association. You can’t call yourself an Electric Engineer without being licensed by your state’s Society of Professional Engineers (or whatever name it goes by). Just like you can’t call yourself an M.D. or Attorney with being licensed by your state’s medical board or Bar Association.
But, if a programmer calls themselves a Software Engineer, it’s not something I consider worth arguing about. I just make sure I never use that term for myself – especially when I’m talking to people who are licensed engineers in their profession.
When you get your first job, you’ll likely have a title of Junior Developer or Junior Programmer. After a while, your company will probably promote you to Senior Developer (I don’t see too many companies that have a level between Junior and Senior).
What’s beyond Senior Programmer?
At many companies, nothing. I’ve seen many programmers who have been at a company for 20+ years and still have the title of Senior Developer. This often happens if the company doesn’t have a large IT team. There isn’t a need for a Team Lead or Architect role.
If you plan to grow in your career, gaining more skills and responsibilities, it’s much easier at companies that have a place for you to grow in to. If a company already has Application Architects (for example), it’s much easier for you to become one than if you’re at a company that doesn’t have anything beyond Senior Developer.
Beyond Senior Developer, you may see job titles like Team Lead, Application Architect, or Enterprise Architect.
These are all positions for experienced developers who have shown skills in thinking strategically about developing software and making sure the software fits into the company’s current, and future, needs.
Like all IT job titles, there aren’t standards between these titles. But a Team Lead usually spends more of their time mentoring other developers and writing libraries or tools that can be used by many other developers.
Architects will probably spend less time coding than Team Leads. Application Architects often work on the libraries and tools like a Team Lead, but often spend more time on researching new tools and technologies or writing proof-of-concept applications.
Enterprise Architects generally spend more time with the rest of the business, helping them make strategic decisions about their software needs – like, should we move to the cloud, how to implement Single Sign On, etc.
Be aware that some companies use titles to avoid giving developers raises.
From personal experience, I was once a senior developer at a company and applied for a first-level management position they had open. They rejected me for the management role but told they would make me an “Architect” and give me a 2% pay increase (or some other small percentage). I asked what my new responsibilities would be, and they didn’t have an answer other than, “Just keep doing what you’re doing.”
The managers at the company apparently thought I’d be so impressed with a fancy new title that I wouldn’t notice the fact the “promotion” was meaningless.
This is common in IT, so watch out for it.
About the only value a meaningless title has is to put it on your resume when you search for your next job – which you should consider after receiving a meaningless promotion.