IOG is a technology company focused on Blockchain research and development, emphasizing peer-reviewed research and formal methods to ensure security, scalability, and sustainability.
The Software Engineering Lead is responsible for the quality of engineering practices within a product team and the development of those skills within the team.
The role involves identifying cross-team improvements by sharing code, removing complexity, or implementing new practices.
The Lead will coach and develop team members, providing continuous and actionable feedback and opportunities for growth.
Responsibilities include writing high-quality code, following agile software development practices, and working independently on software development tasks.
The Lead will review specifications, contribute to algorithm design, write clean and efficient code, and cover code with tests.
The position requires troubleshooting, debugging, upgrading existing software, and writing documentation and technical user manuals.
Knowledge of distributed and concurrent computation and the basics of cryptography is essential.
Requirements:
A degree in Computer Science is desirable but not essential.
Candidates should have 10+ years of software engineering experience, including 2 years of team management.
Solid system programming experience is required, particularly in Rust, with relevant experience in C++ considered.
Experience in distributed system and network development is necessary.
Candidates must demonstrate high-performance code, CPU, and memory optimization skills.
Familiarity with software development methods such as agile programming and test-driven development is required.
Understanding of HTTP API, accessibility, and security compliance is essential.
Experience in developing cryptography protocols and knowledge of Blockchain is a bonus.
Candidates should have experience with modular and event-driven architecture and an understanding of Cardano principles.
Proficiency in Git and Git workflow is required, along with practical experience in Agile software development methods.
Knowledge of functional and object-oriented programming paradigms is necessary.
Real-world experience in software release and maintenance processes is required.
Candidates must be able to write idiomatic code that meets acceptance criteria and document code and APIs clearly.
Ability to break down tasks into manageable subtasks and report progress is essential.
Pragmatic adherence to software engineering principles is required.
The position allows for remote work.
Benefits:
The company offers a laptop reimbursement program.
New starters receive a package to buy hardware essentials such as headphones and monitors.
There are opportunities for learning and development.