Within the software industry there is a wide disparity in the titles given to developers, and there is no correlation between the experience and responsibility of a 'Senior Software Engineer' at one organisation and another.
We don't go in for fancy or confusing job titles as Source Shaper so you don't kneed to wonder what a 'Senior Enterprise Solutions Architect' does, or explain to your accounts team why they are paying an invoice from for a 'Blackbelt ninja code assassin'.
Everyone here is a developer, and everyone works on everything. Some are more experienced than others so we have 4 distinct levels, with clearly defined ability and experience. Our definitions are outlined here:
Trainee developers are new to the industry, and we do not charge customers for their time. They will usually have been programming for several years; either at school or for fun, but have limited or no commercial exposure. They will likely be completing some external training or program of self study. We expect them to make a practical contribution to our projects and communicate with customers. Needless to say their work is very closely monitored.
A junior developer has experience working on commercial projects, they can efficiently produce well written, maintainable code to meet most of the mundane requirements on the majority of projects. They should be able to complete basic projects with little supervision. All the code they write will be reviewed by a senior or lead before being presented to a customer.
Senior developers have been programming a long time and have several years of commercial experience writing quality code. They will be well respected by their peers and should be considered an expert in at least 1 language. They are able to understand the most complex customer requirement and accurately translate them into working software. Senior developers will actively mentor our Juniors and Trainees.
The lead developers have many years of professional programming behind them. They have been exposed to a wide variety and depth of programming languages and technologies, they are able to learn and adopt new technologies quickly and effectively. They understand the commercial requirements and constraints implicit in any project and are able to work effectively with customers to define requirements. They are able to design complex software and hardware architectures.
These developers are ultimately responsible for ensuring the success of everything delivered by Source Shaper and oversee all other levels of developer.