Input Output Logo

Input Output

Senior Software Engineer (Haskell) - Consensus

Sorry, this job was removed at 06:06 p.m. (GMT) on Friday, Oct 04, 2024
Be an Early Applicant
In-Office
United Kingdom
In-Office
United Kingdom

Similar Jobs

2 Hours Ago
Hybrid
Peterborough, Cambridgeshire, England, GBR
Mid level
Mid level
Artificial Intelligence • Cloud • Internet of Things • Software • Cybersecurity • Industrial
The Software Test Engineer will develop and execute test plans for battery management systems, analyzing results and collaborating with teams to resolve software defects.
Top Skills: Software Development Life CycleSoftware-In-Loop TestingSystem Testing
3 Hours Ago
Easy Apply
In-Office
London, England, GBR
Easy Apply
Senior level
Senior level
AdTech • Big Data • Machine Learning • Marketing Tech • Mobile • Software
As a Senior Software Engineer, you will maintain ad serving systems, ensure reliability, collaborate across teams, and drive code quality while contributing to architecture planning.
Top Skills: ClojureGoJavaScriptMraidTypescriptVastVpaid
3 Hours Ago
Remote or Hybrid
Belfast, County Antrim, Northern Ireland, GBR
Senior level
Senior level
Artificial Intelligence • Cloud • Information Technology • Sales • Security • Software • Cybersecurity
Manage teams of software engineers for the InsightIDR product, coach team members, oversee project management, and collaborate with cross-functional teams to deliver solutions.
Top Skills: GitJenkinsMaterialuiReactTypescript

Description

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.

What you need to know about the Edinburgh Tech Scene

From traditional pubs and centuries-old universities to sleek shopping malls and glass-paneled office buildings, Edinburgh's architecture reflects its unique blend of history and modernity. But the fusion of past and future isn't just visible in its buildings; it's also shaping the city's economy. Named the United Kingdom's leading technology ecosystem outside of London, Edinburgh plays host to major global companies like Apple and Adobe, as well as a growing number of innovative startups in fields like cybersecurity, finance and healthcare.

Sign up now Access later

Create Free Account

Please log in or sign up to report this job.

Create Free Account