At IMG.LY, we have simple criteria for our internal titles for a certain job. For each job, we define different stages from beginner to lead roles.
We are aware that not everyone will fit each and every requirement for a stage, however, this guide should help in understanding our work. Our mentality is hands-on and we believe that theory without building something only gets you so far. We iterate, refactor, and rebuild whenever necessary without losing focus of our bigger goal: “Building great products for us and our customers”.
Junior Software Engineer
- Needs supervision and back and forth review before finishing a feature/task.
- Works on tightly scoped and straight forward features.
- Has a basic understanding of architectural patterns.
- Uses basic features of programming languages but advanced features have still to be mastered.
- Has usually less than two years of experience in professional software development.
Software Engineer
- Can work alone on a feature but needs occasional review loopback cycles from a senior.
- Can apply common architectural patterns in new environments.
- Works mostly on clearly defined features.
- Feels responsible for software quality and helps maintain high standards.
- Has usually between 2 to 4 years of experience in professional software development.
Senior Software Engineer
- Can provide helpful and informative feedback to other Team members.
- Can work on vaguely defined features and helps to refine those features with fellow designers and engineers.
- Can work in complete autonomy as a sole engineer if necessary on a feature from ideation, over definition to full implementation with the help of a designer, and no further input.
- Has a deep expertise in at least a minimum of one programming environment.
- Has an understanding of architectural patterns and can apply them on a per need basis.
- Feels responsible for software, design, and product quality alike and enforces high standards.
- Has usually between 4 to 8 years of experience in professional software development.
Lead Software Engineer
- Can work completely independently and autonomously with no need of any kind of supervision.
- Helps and supports fellow software engineers to get to work.
- Can work on a large chunk of features or complete software application without any kind of supervision.
- Is capable of executing projects across multiple domains.
- Can manage a team of engineers.
- Helps set new standards and introduce new technologies at img.ly.
- Has deep knowledge and experience in multiple programming environments.
- Has usually between 8 to 12 years of experience in professional software development.
- Is an evangelist of his and IMG.LY’s work.
Chief Software Engineer
- Is able to set the direction of the entire department, software and product-wise.
- Has always a good oversight of cutting-edge technologies and knows when to introduce them beneficially.
- Can manage multiple teams of engineers.
- Can design, concept, build, and maintain novel software while maintaining and enforcing our standards.
- Has usually plus 8 years of experience in professional software development.
- Is an evangelist of his and img.ly’s work and shares knowledge at conferences, meetups, social media, and so forth.