Responsibilities
- Provides input to the definition of organizational coding standards
- Produces estimates for their assigned tasks and participates in estimation for larger initiatives including up front project planning
- Produces performent code with a special emphasis on stability and long-term supportability
- Promotes reusability of code with an eye for opportunities of reuse across teams/systems
- Produces code that is adequately unit tested and meets requirements for system/integration testing
- Responsible for documentation of their code and external documentation of a system or project
- Participates in designing entire components and interaction between components
- Supports project management team in decomposing business requirements into individual tasks
- Deep understanding of libraries and common components (frameworks)
- A key reviewer of PRs for their project team
- Participates in the initial implementation of new patterns
- First line developer support for production systems - troubleshooting/triage
- May participate in interviews
Requirements
- Proficient in the programming language and core library, including its more complex parts, numerous 3rd party libraries, and the tooling around development, building, debugging, testing, and deploying applications
- Understands, at a moderate level, all components that make up the system and their inter-relationships and communication patterns
- Can use knowledge to develop complex subsystems using the principals they've learned and with an eye towards an approach with the idioms and patterns already present in the code and team
- Has a deep understanding of the subset of components on which they are working
- Expected to consistently write high quality code, of a medium to high complexity, in a timely manner
- Accounts for performance, maintainability, and security in code
- Proficient in all the standards, practices, guidelines, and idioms of the team and applies them while coding