Responsibilities
- Lead the software team in adopting and maintaining best practices across design, development, testing, version control, deployment, and ongoing system maintenance.
- Work closely with project managers, business stakeholders, and product owners to turn user requirements into functional software solutions.
- Define software specifications, create design blueprints, establish architectural guidelines, and choose suitable technologies and patterns to support long-term goals.
- Build, refine, and support high-quality code that is efficient, reusable, and easy to maintain.
- Diagnose and resolve problems in current systems, while proactively reviewing architecture to detect and address potential risks.
- Optimize application performance, reliability, and responsiveness through continuous improvement.
- Locate performance constraints and implement effective resolutions.
- Define and integrate essential monitoring metrics and observability tools across applications.
- Explore emerging technologies and propose strategic upgrades to modernize the current architecture.
- Support the creation of project timelines, task breakdowns, and effort estimates.
- Conduct code and design reviews, verify alignment with architectural standards, mentor junior developers, and promote knowledge sharing.
- Encourage creative thinking and innovation to enhance both product quality and development workflows.
- Assess third-party tools, libraries, and platforms based on cost, performance, and integration needs, then recommend optimal choices.
- Produce and update detailed records of architectural decisions, patterns used, and technical standards for team and stakeholder reference.