Writing high-level technical design documents.
Looking for new ways to improve software quality.
Arranging schedules and planning activities.
Detecting performance bottlenecks.
Resolving customer reported problems.
Testing and documenting new software prior to its introduction to customers.
Consulting with the various departments and stakeholders to determine system requirements.
Assessing technologies that will impact product direction.
Multi-tasking across projects.
Mentoring junior developers and making them into more effective, product software engineers.
Handling critical customer problems in real-time.
Providing estimated timelines for fixes.