Summary
The Software Engineer Lead role is responsible for the quality of engineering practices within a product team, and the development of those skills within the team. Software Engineer Lead works to identify cross-team improvements for IOE by sharing code, removing complexity or implementing new practices.
As a Lead you are there to coach and develop your team members and lead team achievements by providing continuous and actionable feedback and opportunities to learn and grow within IOG.
As a member of the Software Engineering team at IOE you are responsible for writing high-quality code for our products. You have the exciting challenge of working with cutting-edge research and technology with a focus on the market's needs. To support you on this challenge, our products have software architects, product managers, project managers, formal methods specialists and software engineers, with whom you must communicate professionally, effectively and efficiently.
Duties
- Follow agile software development practices
- Work with teams across multiple time zones
- Work independently on software development tasks
- Be proactive and require minimal supervision or mentoring to complete tasks
- Review specifications produced by architects and formal methods specialists
- Contribute to the design of algorithms
- Write clean, straightforward, efficient code that satisfies previously agreed acceptance criteria and specifications
- Commit often and submit small pull requests frequently
- Cover your code with unit, property and integration tests when applicable
- Review the pull requests of your team mates
- Fix bugs in your own code and in legacy code from others
- Be available for emergency fixing of severity 1 issues on deployed products
- Integrate software components and third-party libraries
- Verify and deploy programs and systems
- Troubleshoot, debug and upgrade existing software
- Write documentation for the code
- Write technical user manuals
- Be knowledgeable of distributed and concurrent computation
- Be knowledgeable of the basics of cryptography
Leadership
As Leaders it is our responsibility to motivate, develop and progress our fellow team members. As a Leader there is a need to communicate openly with all members of your team, address any issues head on and not shy away from difficult conversations.
Empowering your team to provide the best results by organizing clear processes and coordinating team efforts should be your top priority.
Please read our Leadership at IO Global document for more information on your duties and responsibilities as a leader at IOG
Education / Experience
- Degree in Computer Science is desirable but not essential
- 10+ years of software engineering experience in the required language (Haskell) including 2 years of team management
- Experience working with Git and Git workflow
- Practical experience with Agile software development methods
- Knowledge of functional and object-oriented programming paradigms
Skills relevant for Consensus
- Demonstrated ability to effectively navigate the typical developer workflow, including code review, debugging, and thorough documentation of decisions and processes.
- Comfortable working with new or unfamiliar parts of the codebase, showing adaptability and problem-solving skills.
- Strong background in Haskell, with familiarity in the Haskell ecosystem, including key libraries and concepts such as lenses, Template-Haskell, CBOR, GHC Generics, STM, Effects systems, mtl, pipes, SOP, etc.
- Practical experience or solid understanding of these libraries and concepts, demonstrating the ability to apply them effectively in real-world scenarios.
- Prior experience with blockchain technology is advantageous but not required.
- A deep understanding of distributed systems, ensuring a strong foundation for contributing to relevant projects.
- Remote work
- Laptop reimbursement
- New starter package to buy hardware essentials (headphones, monitor, etc)
- Learning & Development opportunities
- Competitive PTO
At IOG, we value diversity and always treat all employees and job applicants based on merit, qualifications, competence, and talent. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.