Summary
Join Gemini as a Senior Software Engineer (Security) and contribute to developing and maintaining a trusted execution environment for customers' digital assets. Implement software applications, design security solutions, and integrate hardware security mechanisms into the Gemini software infrastructure.
Requirements
- Hands-on expertise in the development of at least one area of software security that includes implementing software in any of the following: operating systems, kernel development, kernel modules, embedded security software, network security engineering, cryptographic protocols, or cryptographic hardware (PKCS#11, FIPS 201-1 PIV, smartcards, TPMs, HSMs, or TEEs)
- Hands-on expertise in any one of the following areas: hardware security modules or discrete trusted platform modules or firmware trusted platform modules or secure enclaves
- Experience in network engineering and security
- 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
Responsibilities
- 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
- Integrate the use of hardware security mechanisms into the Gemini software infrastructure
- Work with hardware security mechanisms of interest include a trusted platform module (TPM) and/or hardware security modules (HSMs), and/or other similar hardware key storage mechanisms
- Develop tools that integrate security into systems and process
- Participate in disaster recovery (DR) scenarios to validate operability of physical and digital material
Preferred Qualifications
- 5+ years experience in software engineering
- 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
- Ability to read and write code written in Python, Java, Scala, C/C++, and Golang
- Knowledge of hardware security, verified/secure boot, tamper resistance, side-channel attacks, anti-cloning, and PUFs
- Solid understanding of Product Management and Product Ownership, Agile practices and methodologies
Benefits
- Competitive starting salary
- A discretionary annual bonus
- Long-term incentive in the form of a new hire equity grant
- Comprehensive health plans
- 401K with company matching
- Paid Parental Leave
- Flexible time off