You can expect your days to be pretty varied. Multitasking is normal, and sometimes, your skills or natural talents will be leveraged to support other business priorities. That said, the bulk of your working hours should involve you having to:
- Building and maintaining distributed teams.
- Coaching, managing, and growing team members.
- Advocating for engineering best practices and an iterative agile approach.
- Ensuring quality in processes and products.
- Designing, implementing, and managing software development processes and tools.
- Collaborating with the Product team to define software solutions.
- Defining operational metrics and working with the Operations team to ensure smooth software performance in production.
- Promoting and maintaining CI/CD practices.
- Engaging with third-party vendors for development resources.
- Evolving the tech stack with modern technologies (e.g., microservices, serverless, node.js, python, angular, containers, NoSQL, dynamic caching).
- Recommending commercial off-the-shelf (COTS) solutions when appropriate.
- Identifying opportunities and risks related to innovation, competitive services, and technical challenges.
- Collaborating with business and technology leaders to align software engineering with business strategy.