Experience build systems and toolchains, including for cross-compilation
Experience with public clouds or OpenStack
Experience with Debian/Ubuntu packaging
Experience with systems programming or scalable web services
Deep quality and test engineering
Web or Flutter front-end experience
REST and gRPC API experience
SQL and NoSQL data store expertise
Desired candidate profile
1. Technical Leadership
Complex Problem Solving: Lead the solution of difficult technical problems by applying in-depth knowledge of the technology stack and domain. Take ownership of critical technical challenges and help the team navigate complex scenarios.
Architecture and Design: Contribute to and sometimes lead the design of software architectures and technical solutions. Ensure that designs are scalable, maintainable, and aligned with the company’s long-term goals.
Code Quality and Best Practices: Set high standards for coding practices and ensure the codebase remains clean, efficient, and well-tested. Advocate for best practices in software engineering, such as design patterns, testing strategies, and performance optimization.
Technical Decision Making: Influence technical decisions across the team and organization. Evaluate different approaches and technologies to select the most suitable ones for the given challenges.
2. Mentorship and Knowledge Sharing
Mentoring Junior Engineers: Provide mentorship to junior and mid-level engineers. Help them develop their skills and grow in their careers. Review their work, provide feedback, and help them learn from mistakes.
Cross-team Collaboration: Work closely with engineers from other teams (e.g., product, QA, DevOps) to ensure alignment and consistency in software development across the organization.
Knowledge Sharing: Act as a technical resource for the team by sharing knowledge through documentation, internal presentations, and code reviews. Promote a culture of continuous learning and improvement.
3. Ownership of Key Systems and Features
End-to-End Ownership: Take ownership of significant parts of the product, from design and development through to deployment and maintenance. This may involve leading large technical initiatives or projects that impact multiple teams.
Collaboration with Product Managers: Work closely with product managers to understand business requirements, ensure technical feasibility, and prioritize work. Translate business needs into technical solutions.
System Reliability and Performance: Monitor and optimize the performance of the systems you own. Focus on scalability, reliability, and efficiency, and ensure that any critical issues are addressed quickly.
4. Innovation and Improvement
Driving Innovation: Stay up-to-date with the latest industry trends and emerging technologies. Propose and implement new tools, technologies, and frameworks that can improve the team’s productivity or product performance.
Process Improvement: Contribute to process improvements, such as refining the development workflow, adopting new tools, or enhancing the CI/CD pipeline to speed up delivery without sacrificing quality.
5. Cross-Functional Communication
Clear Communication: Communicate technical concepts clearly to both technical and non-technical stakeholders. This includes explaining complex technical challenges, offering solutions, and providing updates on progress.
Collaboration with Leadership: Work closely with engineering managers, architects, and other senior engineers to ensure technical direction aligns with business goals and overall company strategy.