IOG is a technology company focused on blockchain research and development, known for its scientific approach to blockchain development.
The company emphasizes peer-reviewed research and formal methods to ensure security, scalability, and sustainability.
The role involves writing high-quality code for products, specifically for the development of the Cardano blockchain.
Responsibilities include implementing features like protocol rules and transaction validation, working with teams across multiple time zones, and collaborating on integration issues.
The engineer must be proactive, work independently, and require minimal supervision.
Tasks include reviewing specifications, committing often with small pull requests, covering code with tests, fixing bugs, integrating software components, and writing clear documentation.
Effective communication with others is essential.
Requirements:
A degree in Computer Science is desirable but not essential.
A minimum of 5 years of development experience in Haskell is required.
Strong experience in writing code in the declarative programming paradigm is necessary.
Experience with Git and GitHub is required.
Experience with nix is preferred but not mandatory.
Proficiency with advanced functional programming techniques such as type families, higher-kinded data, and dependent types is essential.
A good understanding of evaluation strategies and related concepts is required.
Experience with serialization techniques in Haskell using common libraries is necessary.
An advanced understanding of pure functional data structures and relevant Haskell libraries is required.
Familiarity with common Haskell libraries such as crypton, random, and lens is necessary.
Skills in writing QuickCheck/Hedgehog generators and property tests are required.
Familiarity with common testing frameworks like HSpec or Tasty is necessary.
Capability to analyze performance using common tooling is required.
Experience with low-level programming and foreign function interfaces is a plus but not required.
Ability to write idiomatic Haskell code and tests that provide sufficient code coverage is essential.
Documentation of code and APIs must be concise and unambiguous.
Tasks should be broken down into manageable subtasks with timely reporting to managers.
Pragmatic adherence to software engineering principles is required.
The position allows for remote work.
Benefits:
The position offers remote work flexibility.
There is a laptop reimbursement program.
A new starter package is provided to buy hardware essentials such as headphones and monitors.
Learning and development opportunities are available.