Let’s get started
By clicking ‘Next’, I agree to the Terms of Service
and Privacy Policy
Jobs / Job page
Software Engineer (Haskell) Compiler - Plutus Core - IOE: Cardano image - Rise Careers
Job details

Software Engineer (Haskell) Compiler - Plutus Core - IOE: Cardano

Who are we?

IOHK, is a technology company focused on Blockchain research and development. We are renowned for our scientific approach to blockchain development, emphasizing peer-reviewed research and formal methods to ensure security, scalability, and sustainability. Our projects include decentralized finance (DeFi), governance, and identity management, aiming to advance the capabilities and adoption of blockchain technology globally.

We invest in the unknown, applying our curiosity and desire for positive change to everything we do. By fueling creativity, innovation, and progress within our teams, our products and services are designed for people to be fearless, to be changemakers.

What the role involves:

The primary purpose of this role is to develop high-quality software solutions that meet customer needs. You will be responsible for writing high-quality code for our products. You will work with cutting-edge research and technology. To support you on this challenge, 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.

The Plutus Core team is building the core of Cardano’s smart contract functionality on the bedrock of functional programming languages. This interdisciplinary team carries out original R&D and turns the results into production systems. This team has designed and implemented four languages for Cardano smart contracts (Plinth, Plutus IR, Typed Plutus Core, and Untyped Plutus Core) and improved the compiler and runtime with more built-in functions and optimizations, expanding the expressiveness, capability and security of smart contracts on Cardano. The team has formalized the semantics of Typed and Untyped Plutus Core using Agda, developed novel compilation techniques for data types, and Implemented a compiler for compiling Plinth into Untyped Plutus Core, which uses Plutus IR and Typed Plutus Core as intermediate representations. They also implemented evaluators for Typed and Untyped Plutus Core, in Haskell and Agda. They also contributed to Cardano ledger updates for smart contracts, and published peer-reviewed research. .

Coding and Development:

  • Write and maintain code in Haskell.
  • Use Git for version control, committing often, and submitting small pull requests.
  • Write clean, efficient code that meets acceptance criteria and specifications.

Testing and Debugging:

  • Write and execute unit, property-based, and integration tests to ensure code quality.
  • Identify and fix bugs, including emergency fixes for severity 1 issues.
  • Troubleshoot, debug, and upgrade existing software.

Code Reviews and CI/CD:

  • Conduct and participate in code reviews to maintain code quality.
  • Implement and manage CI pipelines using GitHub Actions, troubleshooting and improving as needed, optionally using Nix.

Software Architecture and Security:

  • Design and architect software components.
  • Design secure software and perform security analysis.
  • Review specifications from architects and formal methods specialists.
  • Contribute to algorithm design.

Documentation and Research:

  • Write clear software documentation and technical user manuals 
  • Simplify complex blockchain concepts.
  • Read and comprehend research papers on cryptography and blockchain.

Release Management and Agile Practices:

  • Follow release processes, manage cabal project SRPs, and use GitHub Actions.
  • Split work into tickets with acceptance criteria and maintain ticket status using Jira.
  • Adhere to agile software development practices.

Blockchain and Distributed Systems Knowledge:

  • Understand Cardano, Blockchain, and Distributed systems.
  • Be knowledgeable in distributed and concurrent computation.

Collaboration and Independence:

  • Work independently on software tasks, being proactive and requiring minimal supervision.
  • Collaborate with teams across multiple time zones.
  • Integrate software components and third-party libraries.
  • Verify and deploy programs and systems.

Plutus Core 

  • Enhance Plutus Core tooling to create a world-class product that meets diverse user needs within technical constraints of the system.
  • Collaborate with engineers and researchers to design and implement essential features for Cardano smart contract languages, compilers, and runtime systems, along with comprehensive user documentation.
  • Engage in technical discussions with peers and stakeholders to drive informed decision-making.
  • Conduct thorough code and design reviews to ensure high-quality deliverables.
  • Provide expert Plutus guidance to partner teams, ensuring alignment and knowledge sharing across projects.

Who you are:

  • Bachelor’s degree in Computer Science, or equivalent practical experience.
  • 1 year of experience with software development, data structures and algorithms.
  • Experience in programming in Haskell or another functional language
  • Experience in designing and implementing programming languages, compilers and runtime systems
  • Exposure to blockchain and UTXO-based ledgers would be a bonus
  • Strong English communication skills, in both speaking and writing
  • Carrying out software development tasks independently
  • Leading by example to build a culture of craftsmanship and innovation
  • Writing documentation for code and technical user manuals

Are you an IOGer?

Do you find yourself questioning the status quo? Do you tinker with ideas and long to turn those ideas into solutions? Are you able to spark thoughtful debates, bringing out the inquisitiveness in others? Does the promise of continuously growing excite you? Then get ready to reimagine everything you thought wasn’t possible because that’s what it means to be an IOGer - we don’t set limits, we break them.

  • Remote work
  • Laptop reimbursement
  • New starter package to buy hardware essentials (headphones, monitor, etc)
  • Learning & Development opportunities
  • Competitive PTO 

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.

Io Global Glassdoor Company Review
4.0 Glassdoor star iconGlassdoor star iconGlassdoor star iconGlassdoor star icon Glassdoor star icon
Io Global DE&I Review
4.0 Glassdoor star iconGlassdoor star iconGlassdoor star iconGlassdoor star icon Glassdoor star icon
CEO of Io Global
Io Global CEO photo
Unknown name
Approve of CEO
What You Should Know About Software Engineer (Haskell) Compiler - Plutus Core - IOE: Cardano, Io Global

At IOHK, we're on a quest to transform the blockchain landscape, and we're looking for a passionate Software Engineer (Haskell) Compiler to join our innovative team working on Plutus Core. If you thrive in a dynamic environment that fosters curiosity and collaboration, this is the role for you. As a Software Engineer at IOHK, you will play a crucial role in developing cutting-edge software solutions tailored to meet our customers’ needs. You'll be immersed in high-quality coding projects that push the envelope of what's possible in blockchain technology. Working alongside top-notch architects, product managers, and formal methods specialists, you'll contribute to the core functionality of Cardano’s smart contracts using Haskell, one of the most respected functional programming languages. You'll have the unique opportunity to engage in research and development, crafting the tooling and features that make Cardano robust and scalable. Moreover, you’ll be part of a supportive interdisciplinary team that encourages you to explore novel ideas and implement them into production systems. Whether it's writing efficient code, debugging existing software, or contributing to our extensive documentation and user manuals, your work will directly impact how users interact with our technology. This is more than just a job; it's an invitation to be part of something revolutionary. Join us in our mission to redefine the possibilities of blockchain!

Frequently Asked Questions (FAQs) for Software Engineer (Haskell) Compiler - Plutus Core - IOE: Cardano Role at Io Global
What are the responsibilities of a Software Engineer (Haskell) Compiler at IOHK?

As a Software Engineer (Haskell) Compiler at IOHK, your responsibilities include writing and maintaining high-quality Haskell code, executing comprehensive unit and integration tests, debugging existing systems, and contributing to the design and architecture of software components. You’ll also collaborate with multidisciplinary teams on the ongoing enhancement of Cardano’s smart contract functionality.

Join Rise to see the full answer
What qualifications do I need to apply for the Software Engineer (Haskell) Compiler role at IOHK?

To be considered for the Software Engineer (Haskell) Compiler position at IOHK, candidates should hold a Bachelor’s degree in Computer Science or equivalent experience. Experience with Haskell or other functional programming languages, as well as background in software development, data structures, and algorithms, is essential. Familiarity with blockchain technologies is a plus.

Join Rise to see the full answer
What type of software development practices does IOHK follow for the Software Engineer (Haskell) Compiler role?

IOHK employs agile software development practices for the Software Engineer (Haskell) Compiler role, which involves managing project tickets using Jira, adhering to release processes, and implementing Continuous Integration pipelines. Collaboration with teammates across various time zones is also a key part of our operational approach.

Join Rise to see the full answer
What tools and languages will I use as a Software Engineer (Haskell) Compiler at IOHK?

In the Software Engineer (Haskell) Compiler role at IOHK, you will primarily use Haskell for coding, Git for version control, and GitHub Actions for Continuous Integration. Familiarity with tools like Nix may also be beneficial for pipeline management and troubleshooting.

Join Rise to see the full answer
What benefits can I expect when working as a Software Engineer (Haskell) Compiler at IOHK?

As a Software Engineer (Haskell) Compiler at IOHK, you can expect a competitive benefits package including remote work flexibility, a laptop reimbursement program, starter packages for essential hardware, learning and development opportunities, and a generous paid time off policy.

Join Rise to see the full answer
Common Interview Questions for Software Engineer (Haskell) Compiler - Plutus Core - IOE: Cardano
Can you explain your experience with Haskell and why it's suitable for this role at IOHK?

When answering this question, discuss your previous projects utilizing Haskell, emphasizing functional programming features, and how they align with the requirements of the Software Engineer role. Illustrate your problem-solving skills and adaptability using Haskell in past experiences.

Join Rise to see the full answer
How do you approach debugging a piece of complex code?

Describe your systematic process for debugging, including steps like reproducing the issue, using debugging tools, and isolating the problem segments. Highlight your logical reasoning and persistence in finding solutions as well as your collaborative nature when reaching out to team members if needed.

Join Rise to see the full answer
What is your understanding of Cardano and how it differs from other blockchains?

Provide insights into Cardano's unique features, such as its proof-of-stake consensus mechanism, focus on academic research, and commitment to scalability and sustainability. Make comparisons to other blockchains to demonstrate your understanding and interest in the industry.

Join Rise to see the full answer
Describe a project where you implemented a compiler or programming language technology.

When sharing about a project, focus on your role, the technologies used, and the challenges faced during implementation. Explain your contributions to design decisions and how your work impacted the project's outcomes, particularly in relation to performance or user experience.

Join Rise to see the full answer
What strategies do you use to ensure code quality during development?

Discuss your approaches, such as writing unit tests, conducting code reviews, and adhering to best practices for clean code. Emphasize the importance of collaboration in maintaining high standards and how you incorporate feedback into your development process.

Join Rise to see the full answer
How do you keep yourself updated with the latest advancements in blockchain technology?

Share your methods for staying informed about blockchain trends, such as following influential thought leaders, participating in relevant online forums, attending webinars, or enrolling in courses. Highlight your proactive nature in learning continuously.

Join Rise to see the full answer
Can you give an example of a time you had to collaborate with a remote team?

Use this question to describe a specific scenario demonstrating your communication skills, how you adjusted to different time zones, and tools you used for collaboration. Illustrate the successful outcome and what you learned from the experience.

Join Rise to see the full answer
What role does formal methods play in software development for blockchain?

Explain the significance of formal methods in ensuring the correctness and security of smart contracts and blockchain systems. Discuss how your knowledge can aid in the development processes at IOHK and lend credibility to your proposed solutions.

Join Rise to see the full answer
How do you prioritize tasks when managing multiple projects?

Share your strategies for prioritizing tasks, such as using agile methodologies, assessing project deadlines, and the importance of stakeholder communication. Emphasize your ability to adapt and re-adjust priorities as new information surfaces.

Join Rise to see the full answer
What excites you most about advancing blockchain technology at IOHK?

Express your genuine passion for blockchain and how the mission of IOHK resonates with you. Discuss specific aspects of their projects that ignite your curiosity and how you envision contributing to their groundbreaking work.

Join Rise to see the full answer
Similar Jobs
Posted 10 days ago
Photo of the Rise User
Posted 12 days ago
Photo of the Rise User
Dealpath Hybrid New York City, New York
Posted 8 days ago
Aurora Remote No location specified
Posted 11 days ago
Photo of the Rise User
VRP Consulting Remote Jana Dekerta 24, 30-703 Kraków, Poland
Posted 2 days ago
MATCH
Calculating your matching score...
FUNDING
SENIORITY LEVEL REQUIREMENT
TEAM SIZE
EMPLOYMENT TYPE
Full-time, remote
DATE POSTED
January 5, 2025

Subscribe to Rise newsletter

Risa star 🔮 Hi, I'm Risa! Your AI
Career Copilot
Want to see a list of jobs tailored to
you, just ask me below!