Summary
IO Global is seeking a Senior Software Engineer (Haskell Developer) to join its Consensus team. The Consensus layer is an open-source implementation of the Ouroboros family of Consensus protocols written in Haskell. It ties together the Ledger, Network, and Cardano Node components. We work closely with the teams that develop them, asking and answering questions and making and responding to requests. The Consensus layer also handles block forging and storage, so serialization is also an essential part of the codebase.
We favour writing understandable Haskell, emphasising documentation and readability to explain the complex choices behind our code.
Your mission
Our codebase consists of over 160,000 lines of Haskell code distributed across several packages. We maintain a core package that defines abstractions that will later be instantiated with different protocols and ledger implementations, particularly the Cardano implementation.
N-ary products and sums are very present in our code, so a degree of type-level programming is involved when maintaining and extending the Consensus layer. On the testing front, we tend to favour property-based testing (QuickCheck), which is also used in state machine testing (QuickCheck).
Sometimes, we must dive deeper into issues in code that we do not own (such as fixing a bug in an upstream library or investigating something in the GHC). We allocate some time to improving the open-source libraries we use (such as quickcheck-state-machine) as long as it benefits the company's goals in the long run and doesn't become a time sink.
The company is at the vanguard of Haskell+Nix infrastructure (`haskell.nix` was made by IOG). We also have teams dedicated to GHC development (you might see their biweekly updates in Haskell news), benchmarking, system-wide testing, and quality assurance. It also collaborates with some top-notch Haskell (or FP) consultancy companies.
Your expertise
We expect you to be a good engineer and be comfortable with the usual developer workflow, such as reviewing others’ pull requests, being ready to work on a new part of the codebase, debugging bugs here and there, and documenting the decisions and steps taken.
Communication is asynchronous because the team (and the company) are distributed in several time zones. It happens in English, so you must be fluent enough to communicate your ideas and designs and participate in discussions.
A good candidate would also be proactive, passionate, thorough, and have an eye for detail. We would like you to be open to learning new things. Prior experience with blockchain is a nice bonus but otherwise, it is good if you have a strong understanding of distributed systems in general.
We are looking for someone with a strong Haskell background. An ideal candidate is familiar with the wide Haskell ecosystem of libraries and has worked or at least made an effort to understand the concepts behind fundamental libraries and concepts like lenses, Template-Haskell, CBOR, GHC Generics, STM, Effects systems, mtl, pipes, SOP, etc. We use only some of these, but listing them gives a general overview of our expectations.
Bonus points
Prior experience with blockchain projects is helpful but optional.
We use Nix in our infrastructure, but knowing Nix is optional.
Prior experience in developing high-quality backend system architecture and knowledge of how such architecture principles should apply to blockchains
- 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, colour, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.
What We Do
Founded in 2015, IOHK is one of the world’s pre-eminent blockchain research and engineering companies, best known for the Cardano blockchain platform
We are a fully decentralized, remote-working organization committed to the highest principles of academic rigour and evidence-based software development. The company builds high-assurance blockchain products for public and private sector clients.
Our goal is simple – to fuel our drive to be best in class by giving you the opportunity, resources and support to deliver your finest work to date. You’ll work with some exceptionally talented and friendly individuals who are always open to new ideas and ways of working.
IOHK is an advocate of decentralized remote working, with over 300 people working in more than 50 countries. Everyone has a different skill set, a different culture, and is at a different stage in their life. We aim to make collaboration between diverse people fun, exciting, and always rewarding. Many companies say they ‘think outside the box’ – for IOHK it’s more, ‘we think outside the geography’.