Work with product manager to collect requirement from customers/vendors.
Provide high level design, decide the type of language, framework, Database to use.
Design/code review, provide best practise to improve software code quality.
Coding for critical functions, seek solutions for complicate problems.
Performance/Security check. Provide guidance to team.
Production trouble shooting.