Software Engineer - Plutus (Haskell)
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.
- 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
- 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.