IOG is a technology company focused on Blockchain research and development, emphasizing a scientific approach to ensure security, scalability, and sustainability.
The role involves developing prototypes, models, and simulators at the intersection of engineering and research.
The engineer will collaborate with various stakeholders, including architects, cryptographers, researchers, and engineers, to shape innovation projects.
Responsibilities include following Agile software development practices, working independently on tasks, reviewing specifications, contributing to algorithm design, writing clean and efficient code, committing frequently, covering code with tests, reviewing team pull requests, fixing bugs, integrating software components, troubleshooting, and writing documentation.
Requirements:
A degree in Computer Science is desirable but not essential.
A minimum of 3+ years of software development experience is required.
Experience with Git and Git workflow is necessary.
Practical experience with Agile software development methods is expected.
Knowledge of functional and object-oriented programming paradigms is essential.
Proficiency in various programming languages and functional paradigms is required.
Knowledge of system programming languages such as Rust or C++ is necessary.
Familiarity with functional languages like Haskell, OCaml, or F# is preferred.
Optional knowledge of formal specification languages, such as Lean, is a plus.
A deep understanding of computer science fundamentals, including algorithms, data structures, and concurrency, is required.
Knowledge of blockchain technology and its core concepts, including consensus mechanisms, cryptography, and smart contracts, is essential.
Familiarity with distributed and concurrent computation and the basics of cryptography is necessary.
The candidate should be self-motivated, a self-learner, and willing to learn new methodologies.
Ability to write high-level design documents and read scientific papers is required.
The candidate should be capable of writing small prototypes to demonstrate features or protocols and write idiomatic code that meets acceptance criteria.
Writing tests that provide sufficient and efficient code coverage is necessary.
The candidate must document code and APIs concisely and unambiguously.
Ability to break down tasks into manageable sub-tasks and report completion as required is essential.
Pragmatic adherence to software engineering principles is expected.
The position allows for remote work.
Benefits:
The position offers a laptop reimbursement for work-related equipment.
A new starter package is provided to buy hardware essentials such as headphones and monitors.
There are opportunities for learning and development to enhance skills.
Competitive paid time off (PTO) is offered to employees.