Software Engineer - Haskell (Consensus)
Input Output
Summary
IO Global is searching for a Senior Software Engineer (Haskell Developer) to join its Consensus team. The Consensus layer of Cardano is a large codebase, making nontrivial use of some of the programming language’s more advanced features, and tested using property-based testing. We are looking for someone to join our Consensus team and help us improve and add features to the Cardano blockchain, such as consensus, on-chain governance and support for light clients and sidechains. As a member of the team, you will have the exciting challenge of working on cutting-edge research and technology, translating it into the design and implementation necessary for the Cardano proof-of-stake blockchain to be globally available and reliable.
Your mission
- Following agile software development practices
- Working with teams in multiple time zones
- Carrying out software development tasks independently, with minimal supervision or mentoring
- Design, architect, and build our Haskell backend with well-documented, tested code that can gracefully scale.
- Reviewing specifications produced by architects and formal methods specialists
- Contributing to the design of algorithms
- Writing clean, straightforward, efficient code that satisfies acceptance criteria and specifications
- Committing often and submitting pull requests frequently, and reviewing the pull requests of your teammates
- Covering your code with unit, property, and integration tests when applicable
- Fixing bugs in your own and legacy code
- Being available for emergency fixing of severity 1 issues on deployed products
- Integrating software components and third-party libraries
- Verifying and deploying programs and systems
- Troubleshooting, debugging, and upgrading existing software
- Writing documentation for code and technical user manuals.
- Willing to learn and extend the technical architecture of new protocols.
Your expertise
- A minimum of four years’ development experience (professional or otherwise) in Haskell
- You have owned and maintained a non-trivial codebase with longstanding active development
- Proficient knowledge of functional programming
- Experience with Git
- Good understanding of QuickCheck/Hedgehog and property testing, and of call-by-need, memoization, and lazy evaluation
- Familiarity with frameworks/libraries such as conduit and pipes, cryptonite, lens, optparse-applicative, stm, Template-Haskell, CBOR, GHC Generics, etc
- Strong knowledge of distributed systems and concurrent computation, and the basics of cryptography
- Proficiency with advanced FP techniques such as advanced functional data structures, dependent types, extensible effects, generic programming, streaming, and type-level programming
Bonus points
- Prior experience with blockchain projects is helpful but not required.
- Prior experience in developing high-quality backend system architecture and knowledge of how such architecture principles should apply to blockchains
Location
IOG is a distributed organization and therefore this is a remote position. Due to team distribution, we are ideally searching for someone in Ireland or the UK.
All colleagues
- Flexible schedule
- Remote work – ability to work anywhere
- Laptop reimbursement
- New starter package to buy hardware essentials (headphones, monitor, etc)
- Learning & Development opportunities
- Competitive PTO and Sick Leave plan
UK & Ireland Employees
- Monthly Health Stipend to use towards any wellness or medical coverage/service
- Pension
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, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.