Haskell Software Engineer (Consensus team)

  • IOHK
  • Feb 23, 2021

Job Description


We are searching for an outstanding Software Engineer to join our Consensus team at IOG. The Consensus team is working to maintain the momentum of our transition to the Shelley era on Cardano mainnet. In the following Cardano eras we will be adding features such as Plutus smart contracts and scripting as we switch to the Ouroboros Genesis protocol, the successor to Ouroboros Praos. As the Cardano community continues to grow, we also need to circle back to the technology debt we have designed around, re-optimizing resource use such as memory load. We have a mixed workload of maintenance and feature growth ahead of us.

We leverage semi-formal methods for this work. Our primary tools are a culture of deliberateness, domain-driven design, the expressiveness sweet-spot in the Haskell type system, and property-based testing. Your days will be full of coding, collaborative design, and explaining - both verbally in calls and presentations, and by writing archival-quality documents.

Your role

  • To design in functional programming/Haskell and deliver in Haskell
  • To explain technical designs, at various levels of detail through small group chats, large group presentations, and documentation
  • Assess technical designs (code base and/or documents), at various levels of detail as needed for each task
  • Negotiate requirements with domain experts (eg, blockchain researchers).

In your day-to-day duties you will:
  • Follow agile software development practices
  • Work with teams across time zones
  • Work independently on software development tasks
  • Be proactive and require minimal supervision or mentoring to complete tasks
  • Review specifications produced by architects and formal methods specialists
  • Contribute to the design of algorithms
  • Write clean, straightforward, efficient code that satisfies acceptance criteria and specifications
  • Commit often and submit small pull requests frequently
  • Cover your code with unit, property and integration tests when applicable
  • Review the pull requests of your colleagues
  • Fix bugs in your own code and in legacy code from others
  • Be available for emergency fixing of severe issues on deployed products
  • Integrate software components and third-party libraries
  • Verify and deploy programs and systems
  • Troubleshoot, debug and upgrade existing software
  • Write documentation for the code
  • Write technical user manuals
  • Expand your knowledge of distributed and concurrent computation
  • Expand your knowledge of the basics of cryptography.


Your expertise

  • Solid experience of programming in Haskell
  • Good understanding of QuickCheck or Hedgehog and property testing
  • Good understanding of concurrent programming and concurrency
  • Good understanding of call-by-need, memoization and lazy evaluation
  • Experience of languages similar to Haskell: PureScript, Elm, Idris, Agda, OCaml, F#
  • Experience with or a contributor to GHC (Glasgow Haskell Compiler)
  • Familiar with frameworks and libraries such as: conduit, cryptonite, distributed-process, lens, optparse-applicative, persistent, pipes, servant, stm, and template-haskell
  • Proficiency with advanced functional programming techniques such as:
    advanced functional data structures, dependent types, extensible effects, generic programming, streaming, and type-level programming
  • Experienced remote worker who is used to managing their own time
  • Professional, polite and customer-facing.



IOG is a fully distributed organization and therefore this is a remote position. Due to team distribution we are ideally looking for someone based in Central Europe for this role.

All Colleagues

  • Flexible schedule
  • Remote work - ability to work anywhere
  • Laptop reimbursement
  • New starter package to buy hardware essentials (headphones, monitor, etc)
  • Udemy for Business
  • Competitive PTO and Sick Leave plan

US Employees

  • Medical, Dental, and Vision benefits coverage through Anthem with 100% premium cost covered by IO Global for the employee and dependents
  • Health Savings Account
  • Life Insurance

UK Employees

  • Monthly Health Stipend to use towards any wellness or medical coverage/service
  • Pension