Senior Software Engineer - Haskell (Ledger)
IO Global is searching for a Software Engineer (Haskell Developer) to join its Node 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 Ledger team and help us improve and add features to the Cardano blockchain, such as on-chain governance, fast on-chain transaction settlement, support for layer 2 blockchain solutions, and more. 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.
- 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.
- A minimum of two 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, cryptonite, lens, optparse-applicative, stm, Template-Haskell, aeson, CBOR, GHC Generics, etc
- Proficiency with advanced FP techniques such as advanced functional data structures, dependent types, extensible effects, generic programming, streaming, and type-level programming
- Solid understanding of type families and GADTs
- 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 but due to team distribution, we require someone to be based either in Ireland the UK or Poland.
- Flexible schedule
- Remote work
- 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
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.