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