Degree in Computer Science is desirable but not essential 7+ years of software engineering experience Experience working with Git and Git workflow Practical experience with Agile software development methods Knowledge of functional and object-oriented programming paradigms Ability to understand project needs, objectives and timescales Write idiomatic code that satisfies acceptance criteria Write tests (unit tests, property tests) Document code and APIs concisely and unambiguously Provide detailed guidance on work to be done Pragmatically adhere to software engineering principles Advanced proficiency in multiple programming languages and functional paradigms Expertise in at least one system programming language (e.g., Rust, C++) Proficiency in functional languages (e.g., Haskell, OCaml, F#) Familiarity or experience with formal specification languages (e.g., Lean, Coq, TLA+) Strong theoretical grounding in computer science Comprehensive understanding of blockchain technology Proven self-direction Ability to design and document high-level architecture and system specifications Proficient in reading and synthesising scientific research papers Skilled in developing complex prototypes