Software Engineering Lead

Input Output Logo

Input Output

πŸ“Remote - United Kingdom

Summary

Join IOHK's Catalyst Tribe as a Software Engineer Lead and contribute to the development of cutting-edge blockchain technology. You will lead a team of engineers, implementing agile practices, and delivering high-quality Rust code for our products. This role requires extensive experience in software engineering, technical leadership, and expertise in Rust programming. You will mentor team members, oversee software development processes, and collaborate with cross-functional teams. The position offers remote work, a laptop reimbursement, a new starter package, learning and development opportunities, and competitive PTO.

Requirements

  • Minimum of 7 years of professional software engineering experience, with at least 3 years specifically in technical leadership roles
  • Extensive experience managing source code with Git and other version control systems
  • Proven expertise in implementing agile methodologies within development teams
  • Demonstrable history of successfully delivering large-scale, complex software projects from conception to production
  • Advanced proficiency in functional and object-oriented programming paradigms
  • Deep familiarity with software engineering best practices, including design patterns, thorough testing strategies, and debugging methodologies
  • Expert-level proficiency with Rust in complex production environments
  • Comprehensive understanding of Rust’s ownership model, borrowing mechanisms, lifetimes, concurrency, and async paradigms
  • Extensive experience architecting and developing scalable web services and RESTful APIs
  • In-depth knowledge of HTTP protocols, security best practices, accessibility standards, and compliance requirements
  • Proven expertise in distributed systems design and networking
  • Expert-level proficiency in writing robust, idiomatic Rust code aligned with high-level architectural guidelines
  • Strong leadership and mentorship abilities, capable of guiding and enhancing team performance
  • Proven capability to design efficient testing strategies that ensure high code coverage and reliability
  • Deep understanding of distributed and concurrent computing principles
  • Solid grasp of fundamental cryptographic concepts and their practical application
  • Exceptional analytical and problem-solving skills for tackling complex engineering challenges
  • Proactive identification of risks and implementation of strategic technical solutions
  • Strong communication skills, clearly articulating technical concepts to stakeholders and team members
  • Excellent documentation and API design skills to facilitate clarity and maintainability
  • Demonstrated independence and initiative in leading complex projects with minimal oversight
  • Strong organizational and time management skills, ensuring timely delivery of milestones
  • Commitment to software engineering best practices to avoid unnecessary complexity and feature creep

Responsibilities

  • Write high-quality code for our products
  • Be responsible for the quality of engineering practices within a product team, and the development of those skills within the team
  • Identify cross-team improvements for IOG by (for example) sharing code, removing complexity or implementing new practices
  • Coach and develop your team members and lead team achievements by providing continuous and actionable feedback and opportunities to learn and grow within IOG
  • Lead the implementation of agile software development practices within your team
  • Coordinate and collaborate with cross-functional teams across multiple time zones
  • Provide technical leadership and mentorship to Rust engineers, guiding architectural decisions and coding practices
  • Independently manage complex software development tasks, proactively identifying and solving technical challenges
  • Review and refine specifications in collaboration with architects and formal methods specialists
  • Oversee the design of critical algorithms and system architectures
  • Ensure the delivery of clean, efficient, maintainable, and scalable Rust code
  • Foster a culture of frequent commits, code reviews, and incremental pull requests
  • Promote and ensure comprehensive coverage with unit, property-based, and integration tests
  • Lead code reviews and guide teammates to produce high-quality code consistently
  • Oversee bug resolution processes and proactively address technical debt in legacy code
  • Act as the escalation point for critical severity issues and coordinate emergency response efforts
  • Integrate and maintain third-party software components and libraries
  • Manage software verification and deployment processes, ensuring reliability and stability
  • Lead troubleshooting, debugging, and upgrading initiatives for existing software solutions
  • Oversee the creation and maintenance of comprehensive technical documentation
  • Demonstrate expertise in distributed systems, concurrent computation, and foundational cryptographic principles

Preferred Qualifications

A bachelor's degree or higher in Computer Science, Software Engineering, or a related discipline

Benefits

  • Remote work
  • Laptop reimbursement
  • New starter package to buy hardware essentials (headphones, monitor, etc)
  • Learning & Development opportunities
  • Competitive PTO

Share this job:

Disclaimer: Please check that the job is real before you apply. Applying might take you to another website that we don't own. Please be aware that any actions taken during the application process are solely your responsibility, and we bear no responsibility for any outcomes.