Principal Software Engineer (Haskell) - Consensus - IOE: Cardano

Remote: 
Full Remote
Contract: 
Work from: 

Offer summary

Qualifications:

Bachelor's or Master's degree in Computer Science or a related field., 15+ years of professional software development experience, particularly in Haskell., Strong understanding of software architecture, design patterns, and best practices., Excellent problem-solving, debugging, and leadership skills..

Key responsibilities:

  • Lead and mentor software development teams, providing technical guidance and expertise.
  • Architect and design complex software systems with a focus on scalability and performance.
  • Collaborate with cross-functional teams to define technical requirements and project goals.
  • Create technical documentation and establish knowledge-sharing practices within the team.

Input Output (IOHK) logo
Input Output (IOHK) Information Technology & Services Scaleup https://iohk.io/
201 - 500 Employees
See all jobs

Job description

Who are we?

IOG, 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 the Cardano blockchain, as well as other products in the areas of decentralized finance (DeFi), governance, and identity management, aiming to advance the capabilities and adoption of blockchain and Web3 technology globally.

What the role involves:

As a Principal Software Engineer, you will lead and support the direction of complex software initiatives, driving high-level technical decisions and providing guidance across the software development lifecycle. Leveraging deep technical expertise, you will shape the architectural design of systems, support the evolution of engineering practices, and mentor other engineers to foster technical excellence across the team.

This role is not limited to hands-on development - it involves improving development processes, influencing strategic technology decisions, and collaborating closely with cross-functional stakeholders. You will work with product managers, delivery managers, and architects to define goals, plan milestones, and navigate evolving priorities with clarity and leadership.

You are a senior specialist that requires not only technical expertise but also the ability to lead and inspire teams, make critical architectural decisions, and drive the successful delivery of complex software projects.

Strategic Technical Leadership:

  • Lead and mentor software development teams, providing technical guidance and expertise.
  • Advocate for coding best practices, design patterns, and architectural excellence.
  • Collaborate with cross-functional teams, including product managers, designers, and QA engineers, to define technical requirements and project goals, ensuring that technical direction complements overarching business goals.
  • Collaborate with research teams and academic partners to translate cutting-edge theory into practical engineering solutions.
  • Evaluate experimental technologies and guide strategic investments in technical capabilities that give the organization a competitive edge.

Software Architecture and Design:

  • Architect and design complex software systems, considering scalability, performance, and maintainability.
  • Evaluate and recommend technologies, tools, and frameworks for development.
  • Create and maintain architectural documentation.

Coding and Development:

  • Write high-quality, clean, and efficient code.
  • Participate actively in coding and development tasks.
  • Set benchmarks for code quality, championing clean and efficient code.

Technical Problem Solving:

  • Tackle complex technical challenges and provide innovative solutions.
  • Troubleshoot and debug software issues in production environments.

Project Management:

  • Collaborate with project/delivery  managers to define project timelines, deliverables, and resource requirements.
  • Offer insights on tech feasibility during project planning and execution stages.

Continuous Improvement:

  • Stay up-to-date with industry trends and emerging technologies.
  • Identify areas for process improvement and lead initiatives to enhance development processes and methodologies.
  • Encourage feedback-driven improvements to drive a continual learning culture in both tech tools and processes.

Documentation and Knowledge Sharing:

  • Create technical documentation, including design documents and API documentation.
  • Establish avenues for smooth knowledge exchange within the team 

Mentorship & Team Growth

  • Nurture the professional growth of software engineers, offering guidance and technical mentorship.
  • Lead regular tech sessions and workshops, fostering a culture of continuous learning.
  • Identify and nurture potential leads or senior developers within the team.
  • Champion diversity and inclusion within the technical team, promoting a wide range of perspectives and approaches.

Requirements

Who you are:

Strategic Execution 

  • Ability to align technical initiatives with business objectives.
  • Capable of managing timelines, resources, and deliverables to ensure project success.

Leadership & Collaboration Skills

  • Strong leadership and mentorship abilities.
  • Excellent communication and collaboration skills.
  • Promotes diversity and inclusion in technical decision-making and team dynamics.

Process Definition and Oversight

  • Establish and oversee coding and deployment processes that maximize efficiency, consistency, and quality across the development lifecycle.
  • Define, implement, and continually refine CI/CD and all development workflows, ensuring alignment with team and organizational goals.
  • Monitor adherence to processes and make adjustments to improve productivity and team alignment.

Standardization of Coding and Deployment Practices

  • Develop and enforce coding and deployment standards to ensure consistency, maintainability, and scalability across projects.
  • Lead the adoption of industry best practices for version control, code reviews, CI/CD, and automation, driving improvements in software quality and delivery speed.
  • Collaborate with teams to ensure that processes and standards are well-documented, widely understood, and consistently applied.

Cross-Organizational Awareness and Influence

  • Serve as a technical liaison between development teams and other departments, ensuring that technical decisions complement business needs and product strategy.
  • Influence company-wide technical direction by actively contributing to cross-functional leadership discussions and decision-making processes.

  • Bachelor's or Master's degree in Computer Science or a related field.
  • Several years (typically 15 years) of professional software development experience.
  • Proficiency in multiple programming languages and technologies.
  • Strong understanding of software architecture, design patterns, and best practices.
  • Excellent problem-solving and debugging skills.
  • Leadership and mentoring skills with the ability to lead and inspire a team.
  • Experience with Agile and other software development methodologies.
  • Strong communication and collaboration skills.
  • Experience with version control systems, continuous integration, and DevOps practices.

Specialist Skills (Consensus)

  • Experience maintaining large codebases  (open-source contributions to large projects are preferred, but not required) 
  • Experience translating scientific research into software products.
  • Deep understanding of distributed systems.
  • Experience debugging Haskell performance issues (CPU, memory). 
  • Proven ability to follow developer workflows (code review, debugging, documentation). 
  • Strong Haskell background, familiarity with its ecosystem (lenses, Template-Haskell, CBOR, GHC Generics, STM, mtl, SOP, etc.).
  • Software Architecture & Design: Expertise in architecting, designing, and maintaining complex, scalable, and maintainable software systems with a focus on performance and security.
  • 15+ years of Haskell experience.
  • In-depth understanding of blockchain technology, and experience with maintaining large complex distributed systems
  • Security Best Practices: Expertise in secure coding practices, cryptographic methods, and implementation of security measures to safeguard sensitive data and systems.
  • Testing & Quality Assurance: Familiarity with automated testing tools and frameworks (e.g., QuickCheck, Hedgehog, QuickCheck State Machine), along with implementing test-driven or model driven development and continuous integration for code reliability.

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. 

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.

Required profile

Experience

Industry :
Information Technology & Services
Spoken language(s):
English
Check out the description to know which languages are mandatory.

Other Skills

  • Problem Solving
  • Mentorship
  • Collaboration
  • Communication

Software Engineer Related jobs