Engineering roles should have a well understood definition of what should be known, tasks to be accomplished, and expections of how you show up day to day for your team.
This following is a high level list of things that every Entry Level Engineer should strive for.
Knowledge
- Aware of branching and merging concepts
- Knows basic Object-Oriented concepts such as polymorphism, inheritance, etc. but has taken this further into SOLID principles
- Knows where to find out more about new technology Standard Reading: Code Complete Clean Code The Clean Coder Working Effectively with Legacy Code Headfirst Design Patterns
Skill
- Can check code in and out and manage their source control repository
- Can merge code conflicts
- Can add code to an existing project structure
- Can fire up the debugging tool, setup thru and work with breakpoints
- Can write “Test First”
- Can contribute tests and code to a build
- Database backup and restore
- Can implement error handling effectively according to departmental best practice
- Can implement error logging effectively according to departmental best practice
Behavior
- Daily check-ins (at least)
- Preparing their code for review (Keeping it clean and analyzing it)
- Keeps the build on their project healthy
- Follows their personal development plan
- Contributes to the development of applications that are robust, handle errors gracefully and communicate their state effectively to those that need to maintain them.