Senior Software Engineer - Wallet/Authentication Platform
Senior Software Engineer building mobile and web wallet clients for digital identity credentials. Focus on iOS/Android development, W3C Verifiable Credentials, secure hardware APIs, and authentication protocols.
About the job
Key Responsibilities
Digital Wallet Client Development
- Build and maintain the client-side wallet experience — credential storage, management, and presentation flows across iOS, Android, and web
- Deliver seamless, secure UX for issuing, holding, and presenting Verifiable Credentials and other identity artifacts
Verifiable Credentials & Standards Implementation
- Implement and evolve support for W3C Verifiable Credentials (VC Data Model), Decentralized Identifiers (DIDs), and related protocols (SD-JWT VC, mdoc/ISO 18013-5)
- Engage with emerging standards to inform ID.me's credential architecture
Secure Hardware & Cryptographic Storage
- Leverage platform secure storage APIs — iOS Keychain, Android Keystore / StrongBox to bind credentials and keys to device hardware
- Design credential lifecycles with strong cryptographic guarantees for issuance, binding, revocation, and presentation
Authentication Integration
- Integrate wallet credential flows with the broader authentication stack, passkeys/FIDO2, OIDC credential presentations, and protocol-level bridges between identity wallet and relying party verification
- Ensure the client-side auth surface is hardened against phishing, replay, and interception attacks
Code Quality & Engineering Craft
- Write high-quality, maintainable code with strong test coverage, following team best practices around code reviews, CI/CD, and documentation
- Contribute to codebase health by identifying and addressing technical debt and improving shared components
Cross-Functional Collaboration
- Partner with Product, Design, Security, Identity Standards, and adjacent engineering teams to ship cohesive credential experiences
- Participate actively in planning, retrospectives, and cross-team discussions
Mentorship & Leadership
- Provide technical guidance to junior engineers through code reviews, design discussions, and pairing
- Help establish and reinforce team standards for secure client development
Required Qualifications
- Bachelor's degree in Computer Science, Engineering, or a related field (or equivalent practical experience)
- 5+ years of professional software development experience, with significant focus on mobile or client-side engineering
- 1+ years experience with AI-assisted development tooling (e.g., Claude Code, Cursor) demonstrated by at least one year of daily use
- 1+ years experience developing production mobile applications for iOS (Swift/Objective-C) or Android (Kotlin/Java), or cross-platform (React Native, Flutter) with native module integration
Preferred Qualifications
- Experience implementing W3C Verifiable Credentials (VC Data Model 1.x/2.x), Decentralized Identifiers (DIDs), or related decentralized identity standards (SD-JWT VC, mdoc/ISO 18013-5 mDL)
- Demonstrated ability to independently own and ship complex features end-to-end with minimal oversight
- Hands-on experience with platform secure hardware APIs: iOS Secure Enclave, iOS Keychain, Android Keystore, Android StrongBox, or equivalent Trusted Execution Environment (TEE) primitives
- Familiarity with cryptographic key management in mobile contexts — key generation, attestation, binding, rotation, and secure deletion
- Experience building digital wallet applications — credential issuance flows, presentation protocols, and holder-binding mechanisms
- Familiarity with passkeys/FIDO2/WebAuthn, especially platform authenticator integration on iOS and Android
- Experience with authentication and identity protocols: OAuth 2.0, OpenID Connect (OIDC), OIDC for Verifiable Presentations (OID4VP), or SIOP v2
- Familiarity with NIST SP 800-63 identity assurance levels and what they mean for credential binding and presentation security
- Experience with React or modern web frameworks for building wallet-style web client experiences
- Familiarity with CI/CD pipelines, automated testing frameworks, and mobile-specific testing tooling
- Exposure to low-level mobile development and mobile networking security — including SIM/eSIM architecture, SIM Network Authentication (SNA), carrier-level authentication primitives, SS7/Diameter security considerations, and the security properties and attack surface of cellular identity
- Startup or high-growth company experience with a strong bias toward execution and ownership
Skills
Swift, Objective-C, Kotlin, Java, React Native, Flutter, Ios Keychain, Android Keystore, Android Strongbox, W3C Verifiable Credentials, Decentralized Identifiers, Oauth 2.0, Openid Connect, Fido2, Webauthn
Similar jobs
Mobile Engineering jobsDevelop and improve a high-scale fantasy sports mobile application using React Native and TypeScript. The role requires at least four years of mobile development experience, strong software engineering skills, and the ability to build performant, reliable features.
Senior mobile engineer building and releasing cross-platform features across Android and iOS, with particular depth in Kotlin and Kotlin Multiplatform. The role requires production experience beyond a primary platform, mobile architecture leadership, backend collaboration, automated quality practices, and responsible use of AI coding agents.
Build and own clinician-facing mobile experiences for an ambient AI healthcare platform, spanning Flutter and native iOS/Android integrations. The role requires 4+ years of mobile development experience, strong native platform expertise, and excellent product judgment.
Build cross-platform React Native applications and native iOS/Android BLE SDKs for EEG and wearable devices. The role requires 8+ years of mobile development experience, strong UX and performance ownership, and familiarity with health data streams and regulated environments.
Build and scale patient-facing iOS and Android applications with React Native, owning features from design through release while improving architecture, performance, and quality. The role requires 5+ years of software engineering experience, strong React Native and TypeScript expertise, and mentoring ability.