Writing and reviewing code in one or more languages, designing software components, participating in code reviews, debugging and fixing defects, contributing to technical documentation, collaborating in agile or scrum teams, and working with product and design to ship features.