Formal Methods Engineer - Djed
Company
Input Output
Location
Other US Location
Type
Full Time
Job Description
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:
As a Formal Methods Engineer in Djed, you act as a bridge between product, research, architecture, and development. You will develop formal artifacts as early as possible in the development process that grow with the project and continue to provide impact throughout into the late stages. You will develop and iteratively refine specifications, working towards high quality designs, prototypes and practical implementations. Your work will form part of the day-to-day quality assurance of production system development. In some projects, critical steps will be tested, or proven using appropriate formal frameworks and tools. In other projects, the expected performance of the resulting system will be modeled, so that the impact of design decisions on performance and stability can be assessed early on. Based on this process, you will provide feedback to the researchers. Finally, based on their specifications, designs, simulations and/or prototypes, you will advise and assist other development teams to implement and integrate their work into production systems.
As a member of the Formal Methods Chapter you will participate in knowledge sharing and continuous learning through interactions with Formal Methods Engineers across the company and more broadly with researchers and engineers as well.
- Build formal artifacts from research and architectural guidance, and business and engineering requirements.
- Model the performance of formally specified systems
- Produce prototypes and simulations
- Refine specifications, using the performance models and simulations to gauge the impact of design decisions during refinements
- Discover new properties about the specifications and their implications
- Prove properties of the specifications and of the correctness of refinement steps
- Communicate with both researchers and developers, and act as a bridge between the two: you will provide feedback to researchers about issues that come up when their work is incorporated into real world systems. You will assist developers in understanding your specifications and in turning them into production code
- Report on your work, in the form of blog posts, technical report documents, presentations at internal seminars, as well as at workshops and conferences, and/or by contributing to academic papers
- Participate in code reviews
- Contribute property-based tests, both for testing properties of the executable specifications/prototypes, and for verifying production code against the executable specifications
- Contribute to the implementation, extension, and maintenance of custom static analysis tooling
- Work in an international team across multiple time zones
- Break down large and complex tasks assigned to you into workable items, and work on them independently
- Share specialized knowledge with other team members
- You are able to complete challenging tasks with little help. You are able to collaborate effectively on joint tasks as needed, providing technical leadership as needed.Â
- You are able to work together with internal and external groups on strategic problems.
Who you are:
- A higher degree in Computer Science or a related field
- A minimum of 3-5 years of experience in a functional language, preferably Haskell
- Experience working and collaborating with Git
- Experience with one or more formal methodsÂ
- Experience in one or more of the domains we are working in -- networking, distributed systems, programming language design, blockchain applications -- would be a bonus.
- Deep thinking, problem solvingÂ
- Ability to understand and translate complex ideas and break them down simply for yourself and othersÂ
- Solid software engineering skills
- Bridge between research and engineersÂ
- Translate and reshape information for the software engineers to understand properlyÂ
- Telling researchers when there is a discrepancy - feedback to research
- Broad understanding of FM multiple techniques
- Broad understanding of wider context of current project, IOG, industry.
- Be able to receive input from researchers, thoroughly understand and translate information into final codeÂ
- Continuously brings fresh ideas to the mix and driving their adoption
- Be versatile and enjoy a fast-paced, ever-changing environment
- Be a savvy problem solver
- Ability to explain complex concepts in documents and presentations
- Can spot opportunities to strengthen requirements/guarantees.
- Seeks out feedback from team members and shares knowledge across projects.
- Values diverse thoughts, encourages participation.
- Builds credibility and trust with internal and external stakeholders.
- Demonstrated ability to work on difficult problems in a self-driven way
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.
Date Posted
09/22/2024
Views
6
Similar Jobs
Senior Engineering Manager, Micros Foundations - Atlassian
Views in the last 30 days - 0
Atlassian is seeking a Senior Engineering Manager to lead a team of Backend Software Engineers The role involves guiding technical decisions prioritiz...
View DetailsSenior Frontend Engineer - Simply Business
Views in the last 30 days - 0
Simply Business is seeking a Senior Frontend Engineer to join their Front End Tooling team The role involves developing products using best practices ...
View DetailsSenior Professional Services Consultant - Cloudflare
Views in the last 30 days - 0
The role of a Professional Services Consultant for Application Security and Performance at Cloudflare involves providing advisory and handson keyboard...
View DetailsSenior Software Engineer (Scala/Java) - HERE Technologies
Views in the last 30 days - 0
HERE Technologies is seeking an experienced backend engineer with strong Java or Scala skills to join the Map Processing Pipelines team The role invol...
View DetailsSoftware Architecture Engineering and Cloud Computing Engineer - The Aerospace Corporation
Views in the last 30 days - 0
The Aerospace Corporation is seeking a Senior Project Engineer with expertise in software architecture engineering and cloud computing The role involv...
View DetailsPrincipal / Lead Software Engineer- RUST (Algorithmic and Mathematics) - m/w/d - HERE Technologies
Views in the last 30 days - 0
HERE Technologies is seeking a Principal Software Engineer to lead the development of extended services for their VRP solver Tour Planning The role in...
View Details