Job Mist is also available in your country: USA. Starting good opportunities here now!

Software Engineer - Formal Methods - REMOTE Full-time Job

4 months ago London   46 views
Job Details

IO Global is searching for a Software Engineer - Formal Methods to join their Ledger team. As a Software Engineer specializing in Formal Methods, you are the interface between research and development. You will interact with researchers and produce formal specifications from the researchers’ work, iteratively refining specifications and working towards high-quality designs, prototypes, and practical implementations. In some projects, critical steps will be 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.Come help design, specify, and verify new features for the Cardano ledger. You will work closely with the Haskell developers to bring to life these new features and ensure that they are implemented correctly.Your missionProduce semi-formal, formal, and executable specifications and prototypes based on research papers and communication with researchersModel the performance of formally specified systemsProduce prototypes and simulationsRefine specifications using the performance models and simulations to gauge the impact of design decisions during refinementsProve properties of the specifications and correctness of refinement stepsCommunicate with both researchers and developers, and act as a bridge between the twoProvide feedback to researchers about issues that come up when their work is incorporated into real-world systemsAssist developers in understanding your specifications and in turning them into production codeReport on your work in the form of blog posts, technical report documents, presentations at internal seminars, workshops, and conferences, and/or by contributing to academic papersParticipate in code reviewsContribute property-based tests, both for testing properties of the executable specifications/prototypes and for verifying production code against the executable specificationsWork in an international team across multiple time zonesBreak down large and complex tasks assigned to you into workable items, and work on them independentlyShare specialized knowledge with other team members.RequirementsYour expertiseA higher degree in Computer Science or a related fieldA minimum of 2-3 years of experience with a proof assistant or dependently typed programming language, preferably AgdaExperience of working and collaborating with GitExperience in one or more of the domains we are working in – networking, distributed systems, programming language design, blockchain applications – would be a bonus.Demonstrated ability to work on difficult problems in a self-driven way.BenefitsLocationIOG is a fully distributed organization and therefore this is a remote position. Due to team distribution we are ideally searching for someone in a European or USA timezone.All ColleaguesFlexible scheduleRemote work - ability to work anywhereLaptop reimbursementNew starter package to buy hardware essentials (headphones, monitor, etc)Learning & Development opportunitiesCompetitive PTO and Sick Leave planUS EmployeesMedical, Dental, and Vision benefits coverage through Anthem with 100% premium cost covered by IO Global for the employee and dependentsHealth Savings AccountLife InsuranceUK EmployeesMonthly Health Stipend to use towards any wellness or medical coverage/servicePension

Company Description