IO Global is searching for a Senior Software Engineer (Haskell Developer) to join its Consensus team. The Cardano node is a large Haskell 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.
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.
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.
Nice to haves
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
IOG is a fully distributed organization and therefore this is a remote position. Due to team distribution we are ideally searching for someone in a European timezone.
Remote work - ability to work anywhere
New starter package to buy hardware essentials (headphones, monitor, etc)
Learning & Development opportunities
Competitive PTO and Sick Leave plan
Medical, Dental, and Vision benefits coverage through Anthem with 100% premium cost covered by IO Global for the employee and dependents
Health Savings Account
Monthly Health Stipend to use towards any wellness or medical coverage/service