Understand requirements and design and develop software components. Research software concepts, develop, and demo proof-of-concepts. Collaborate with team members to understand current product features. Develop automated unit and integration tests. Participate in code reviews and engage in the project's agile development process. Effectively communicate with fellow developers and occasionally with end-users.