At a Glance
- Tasks: Develop high-quality software solutions and write clean, efficient Haskell code.
- Company: Join IOHK, a leading blockchain technology company focused on innovation and research.
- Benefits: Enjoy remote work, laptop reimbursement, and competitive PTO.
- Why this job: Be part of a cutting-edge team shaping the future of blockchain technology.
- Qualifications: Bachelor’s in Computer Science or equivalent, with Haskell programming experience.
- Other info: This is a part-time role perfect for students looking to make an impact.
The predicted salary is between 30000 - 42000 £ per year.
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.
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.
Requirements
- 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.
Benefits
- 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.
Software Engineer (Haskell) Compiler - Plutus Core - IOE: Cardano - Part Time employer: Io Me
Contact Detail:
Io Me Recruiting Team
StudySmarter Expert Advice 🤫
We think this is how you could land Software Engineer (Haskell) Compiler - Plutus Core - IOE: Cardano - Part Time
✨Tip Number 1
Familiarise yourself with Haskell and functional programming concepts. Since the role specifically requires experience in Haskell, brushing up on your skills and understanding of functional programming paradigms will give you a solid foundation to discuss during interviews.
✨Tip Number 2
Engage with the Cardano community. Being knowledgeable about Cardano and its ecosystem can set you apart. Participate in forums, attend meetups, or contribute to open-source projects related to Cardano to demonstrate your passion and commitment.
✨Tip Number 3
Prepare to discuss your experience with compilers and programming languages. Since the role involves designing and implementing programming languages, be ready to share specific examples from your past work that highlight your expertise in this area.
✨Tip Number 4
Showcase your problem-solving skills. The role requires troubleshooting and debugging existing software, so be prepared to discuss how you've approached complex problems in the past and the methods you used to resolve them.
We think you need these skills to ace Software Engineer (Haskell) Compiler - Plutus Core - IOE: Cardano - Part Time
Some tips for your application 🫡
Tailor Your CV: Make sure your CV highlights your experience with Haskell and any relevant projects you've worked on, especially those related to compilers or blockchain technology. Use keywords from the job description to align your skills with what IOHK is looking for.
Craft a Strong Cover Letter: In your cover letter, express your passion for blockchain technology and your understanding of Cardano. Mention specific projects or experiences that demonstrate your ability to contribute to the Plutus Core team and how you embody the values of innovation and curiosity.
Showcase Relevant Projects: If you have any personal or academic projects that involve Haskell, programming languages, or blockchain, be sure to include them in your application. Provide links to your GitHub or any other platforms where your work can be viewed.
Prepare for Technical Questions: Be ready to discuss your technical skills in detail, particularly around Haskell, compilers, and software development practices. Review common interview questions related to these topics and think about how your past experiences relate to the role.
How to prepare for a job interview at Io Me
✨Showcase Your Haskell Skills
Make sure to highlight your experience with Haskell during the interview. Be prepared to discuss specific projects where you've used Haskell, focusing on the challenges you faced and how you overcame them.
✨Understand Blockchain Fundamentals
Since the role involves working with Cardano and blockchain technology, brush up on your knowledge of blockchain concepts, especially UTXO-based ledgers. Being able to discuss these topics will demonstrate your genuine interest in the field.
✨Prepare for Technical Questions
Expect technical questions related to software development, data structures, and algorithms. Practise coding problems and be ready to explain your thought process clearly, as this will showcase your problem-solving skills.
✨Emphasise Collaboration and Communication
The role requires effective communication with various teams. Prepare examples that illustrate your ability to work collaboratively, especially in a remote setting, and how you’ve successfully communicated complex ideas to non-technical stakeholders.