Back to projects
Yassir Software Engineer · Feb 2024 — Present

KYC & Identity Verification

Built a complete identity verification flow: MRZ scanning, NFC chip reading with PKI authentication, and liveness detection with face matching.

Overview

At Yassir, I built a complete identity verification flow for onboarding drivers and riders across the platform. The system had to be secure enough to prevent fraud, fast enough for mobile onboarding, and reliable across a wide range of Android devices and document types.

The flow combines three distinct technical challenges — MRZ document scanning, NFC chip authentication with PKI cryptography, and liveness detection with face matching — orchestrated into a seamless multi-step experience built with Clean Architecture and MVVM.

1

MRZ Scanning

Machine-readable zone extraction without relying on a custom AI model

Rather than shipping a heavy on-device AI model, I built a camera-guided scanning flow that gives users real-time feedback on document placement. The video feed from the camera is cropped to the MRZ area, with an on-screen rectangle guiding the user to align their ID card for optimal cropping.

  • Live camera feed with guided MRZ crop region for consistent, high-quality captures
  • ML Kit text recognition on the cropped MRZ area for fast, on-device OCR
  • Regex parsing pipeline to extract and validate structured MRZ fields (name, document number, expiry, nationality)
2

NFC Chip Reading & PKI Authentication

Cryptographic verification that the document chip is genuine and untampered

Reading the NFC chip on an identity document goes far beyond simple data extraction. I implemented full PKI-based authentication to verify both data integrity and chip authenticity — learning cryptography and Public Key Infrastructure from scratch to get it right.

  • Passive Authentication — verifies data integrity using digital signatures embedded in the chip
  • Active Authentication — proves the chip is genuine and not a cloned counterfeit
  • Guided UX for NFC placement with real-time reading progress and extracted data review
3

Liveness Detection & Face Matching

Confirming a real person is present and matches the document photo

The final step ensures the person completing verification is physically present — not a photo, video, or mask — and that their face matches the photo stored on the identity document.

  • Multi-challenge liveness detection: blink, smile, and head movement prompts
  • Real-time feedback to keep the face centered and steady during capture
  • Face matching between the liveness capture and the document portrait photo

Impact

50%

Reduction in manual document processing

0

Fraudulent accounts passing automated verification

The automated flow replaced a slow, error-prone manual review process — enabling faster driver onboarding at scale while maintaining strong identity assurance across the platform.

Tech Stack

Kotlin ML Kit NFC Cryptography Clean Architecture MVVM PKI