Senior Software Engineer

 
RemoteSenior
🇬🇧 United Kingdom
Software Developer
Software development

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.

Requirements

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

Benefits

  • 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.

 

IO Global

IO Global

Founded in 2015, IO Global is one of the world’s pre-eminent blockchain research and engineering companies

Blockchain
Cryptocurrencies
Research and Development (R&D)
Software
Technology

LinkedIn

🏭software development
🎂2014

Other jobs at IO Global

 

 

 

 

 

 

 

 

View all IO Global jobs

Why OmniJobs?

  • Rare & hidden jobs
  • New jobs every day
  • No expired job posts
  • All jobs in English

Receive emails about similar jobs

Get alerts to your inbox about new open jobs that are similar to this one.

🇬🇧 United Kingdom
Software Developer
Remote

No spam. No ads. Unsubscribe anytime.

Similar jobs