About the company
Gemini is a regulated cryptocurrency exchange, wallet, and custodian that makes it simple and secure to buy bitcoin, ether, and other cryptocurrencies.
Job Summary
Responsibilities:
📍Maintain and build the software that is the foundation for our MPC work 📍Implement software applications that may include key storage, signing, encryption, code attestation, or secure boot 📍Design, deploy, and maintain security solutions supporting maintenance of digital assets 📍Work closely with software security engineers to develop the capabilities of the existing signing security infrastructure with a goal of security and scalability 📍Develop tools that integrate security into systems and process 📍Participate in disaster recovery (DR) scenarios to validate operability of physical and digital material 📍Work with hardware security mechanisms of interest including a trusted platform module (TPM) and/or hardware security modules (HSMs), and/or other similar hardware key storage mechanisms
Minimum Qualifications:
📍Software development experience in at least one of homomorphic encryption, secure multiparty computation, security protocols, PAKE protocols, zero knowledge proofs, or pallier encryption 📍Strong understanding of encryption and key management 📍Experience in systems architecture, computer architecture, trustworthy computing, or cryptographic protocols 📍Experience in system algorithms with performance understanding and optimizations (hardware and software) 📍Experience integrating or deploying in production environments 📍Familiarity with a modern programming language (e.g., Rust, Python, C++, Scala) and a shell environment 📍Experience in researching and addressing complex business topics around TPMs, HSMs, TEEs, secure build infrastructure, and applied cryptography. Candidates without a strong understanding in one of these areas may still be a strong candidate if this is offset by a strong background in a systems security area (e.g., operating systems, embedded systems security, firmware security, network security engineering) 📍Strong understanding of systems/network security, secure protocol design, secure build and supply chain management, encryption, authentication, key management and applied cryptography 📍Demonstrated ability to convert theoretical security concepts into production 📍Proficiency in a common scripting language including but not limited to Python, Ruby, etc. 📍Able to troubleshoot and debug issues, and demonstrate a methodical approach to root cause analysis 📍Experience working with engineering teams, teaching, training, and mentoring on how to implement best-practice technical solutions 📍Strong written and verbal communication skills; attentive to details
Preferred Qualifications:
📍4+ years experience in software development with a focus in applied cryptography 📍2+ years experience in reading/writing code in Rust, Python, Linux, Scala, C/C++ 📍2+ years experience with secure software that makes use of a trusted platform module (TPM), hardware security module (HSM), trusted execution environment (TEE), smartcard, and/or other similar hardware key storage mechanism 📍Solid understanding of product management and product ownership, software development practices (e.g., SDLC), and methodologies 📍Knowledge of hardware security, verified/secure boot, tamper resistance, side-channel attacks, anti-cloning, and PUFs 📍Having prior knowledge in the blockchain space is not a requirement but good to have