Junior Engineer
|
Can build basic features, requires assistance
|
Works in other codebases using similar technologies
|
Be comfortable with at least one programming language
|
Basic understanding of software practices and design principles
|
Engineer
|
Only the most complex bugs or features require assistance from others
|
Can work in other codebases using different frameworks and styles
|
Occasionally uses multiple programming languages
|
Good understanding of software practices and design principles. Can explain to others
|
Senior Engineer
|
Can handle most complex bugs and features. Understands the impact of their work on teams in other departments. Can quickly debug problems on production systems
|
Has deep knowledge of multiple codebases with a variety frameworks and styles. Strong awareness of available technologies (e.g. AWS)
|
Can work in multiple languages to rarely have dependencies on others when building features that span multiple stacks
|
Has strong understanding of and applies software practices and design principles. System design considers appropriate level of resiliency
|
Staff Engineer
|
Uses abstraction to solve common problems and improve efficiency throughout department
|
Has significant influence on codebases using a variety of frameworks and styles. Able to quickly familiarize themselves with most codebases in the company
|
Works on multiple languages and stacks to achieve results. Ensures language choices consider long-term implications to the company
|
Teaches others in the company of software practices and design principles. Understands and teaches how to build resilient systems
|
Principal Engineer
|
Uses abstraction to solve common problems and improve efficiency throughout the company
|
Able and willing to operate in most codebases within the company to achieve results
|
Ensures consistency that will benefit a the company in the long term
|
Introduces and applies new practices and principles to the company. Creates culture of resiliency
|
Distinguished Engineer
|
|
|
Ensures common standards across Scout
|
Theoretical knowledge used to improve Scout products and people. Improves the resiliency of the company
|