Software Engineer - Plutus (Haskell)
Description
Summary
The Sidechains team builds a solution to enable Sidechains to the Cardano ecosystem … Our published work includes the Cardano sidechains tooling and the proof of concept EVM sidechain . We also support both internal and external projects through our open-source workflows. One of the internal partners includes Midnight, a recently announced Data protection-based chain.
The Sidechains team are working together to build the core of Cardano’s functionality on the bedrock of functional programming languages. This interdisciplinary team carries out original R&D and turns the results into production systems.
As a Haskell Engineer/Plutus you are responsible for writing high-quality code. To support you, our products have software architects, product managers, project managers, formal methods specialists, and QA test engineers, with whom you must communicate professionally, effectively, and efficiently.
Duties
- Following the agile software development practices used by the team
- Working with teams across time zones
- Carrying out software development tasks independently
- Covering your code with unit, property, and integration tests when applicable
- Creating high quality pull requests with clear communication of design intent
- Reviewing the pull requests of others in the team
- Fixing bugs in your own and legacy code
- Integrating software components and third-party libraries
- Troubleshooting, debugging, and upgrading software
- Writing documentation for code and technical user manuals
- Developing your knowledge of distributed and concurrent computation, and of cryptography.
- Developing your knowledge of blockchain and related financial technologies
- Implementing and maintaining functionality within the smart contract runtime codebase
- Following the technical guidance of senior engineers
Requirements
Key Competencies
- Empathetic
- Highly organized
- Excellent communication skills
- Thoughtful, and able to provide critical feedback to design decisions
- Collaborative and inquisitive
Education / Experience
- Good exposure to programming languages/functional programming theory
- A minimum of five years development experience (professional or otherwise) in functional programming with Haskell
- A minimum of one year of development experience with Plutus is desirable
- Some exposure to blockchain and UTXO-based ledgers would be a bonus
- Experience with git/github/open-source workflows
- The most important skill is the ability to set a good example of working in an encouraging and collaborative manner.
- Advanced knowledge of the Haskell type system.
- Good working knowledge of Plutus tools for development of Plutus Apps.
- Experience working on a large Haskell codebase.
- The ability to write performant (both in terms of speed and memory) Haskell programs.
- Haskell specific packaging tools and concepts, such as Cabal and PVP.
- Excellent documentation skills.
- The ability to write code to a formal specification.
- Experience working with cryptography engineers to ensure the proper use of our most critical components.
- Knowledge of property based testing.
Benefits
Location
IOG is a fully distributed organization but due to team distribution, we require someone to be based either in Ireland the UK or Poland.
All colleagues
- 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
- 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.