Identify and prioritise problems, gaps and technical debt in the product.
Research and evaluate new technologies and methodologies to enhance the product and improve development efficiency.
Define the optimal target architecture of the product, prepare a roadmap to implementing it, and support the team in actually implementing it.
Continuously ensure the product is technically prepared for the next challenges, especially considering security, maintainability and scalability.
Hands-on work:
Support the engineers in hands-on work if needed.
Co-own the product development:
Work with Product Managers to understand product requirements and translate them into scalable and robust technical solutions.
Advice the product manager on hard tradeoffs between scope, engineering capacity, and time constraints
Lead the team through critical projects
Raise the quality bar for the team:
Define best practices and guide the team in maintaining them by participating in code and design document reviews.
Coach, develop, and grow your engineering team.
Set the bar high during engineering talent recruitment.
Cross-team collaboration
Maintain communication channels with other technical teams to avoid duplicate effort, incompatible solutions and solving problems other teams have already resolved.
Who You Are
Experienced software developer: possessing 7+ years of professional software development experience of building and maintaining complex, large-codebase enterprise web applications. Experience with PHP and / or GO is a big plus.
SDLC aware: possessing at least a high level understanding of the entire software development lifecycle: from requirement gathering down to deployment pipelines and infrastructure.
Quality focused: able to go beyond the basic metrics and focus on the big / deep issues, which are not always measurable. Willing to dig deeper in search of root causes.
Analytical software architect / designer: able to design, maintain and evolve complex software design and architecture, apply best practices and design patterns and understand crucial trade-offs in software development.
API design expert: possessing understanding of / experience in designing clear, elegant, backward-compatible and future-proof APIs.
Technical Leader: able to make technical decisions, resolve conflicts, mentor other engineers, and own the technical roadmap.
Clear, concise communicator: possessing a high signal-to-noise ratio. Be able to communicate and collaborate with the engineers and non-technical audiences.
Problem solver and avoider: able to identify, troubleshoot and resolve technical challenges, and even better - be two steps ahead and avoid them.
Bonus Points
Experience with working with strongly structured languages (Java, Kotlin, C#) is a plus.