Back to homeProduct · Vidaloop
VotingApp — a secure and verifiable mobile voting system. Logo with phone screenshots of the voting workflow.

VotingApp for Android

A native Android voting platform engineered for security, accessibility, and end-to-end verifiability — built for one of software’s highest-stakes domains.

Mobile votingAccessibilityE2E verifiabilityBlockchain auditAndroid
21 mo
lead Android engineer
May 2020 – Feb 2022
VVSG 2.0
standards-aligned security
OWASP MASVS · NIST guidance
E2E
verifiability by design
Cast as intended · recorded as cast · tallied as recorded

Overview

VotingApp was a smartphone-based voting platform built by Vidaloop to help eligible voters authenticate, retrieve a ballot, mark selections, review their choices, submit a cast vote record, and verify a voter receipt — all inside a single, accessible mobile workflow. The product targeted remote voters, voters with disabilities, and UOCAVA voters (military and overseas citizens) who face the steepest barriers in the existing system.

The architecture combined device-integrity checks, layered voter authentication, end-to-end encryption, certificate verification, immutable storage backed by Hyperledger Sawtooth, and a voter receipt scheme designed to support verification without exposing the underlying ballot — engineered as a case study in what election-grade mobile software actually requires.

Research context

Mobile voting is best understood as a contested subset of the broader internet ballot-return (EBR) debate, not a settled product category. Advocates emphasize accessibility, participation, and convenience for military, overseas, and disabled voters; security researchers and federal guidance emphasize unresolved risks around voter-device malware, ballot secrecy, coercion, server compromise, dispute resolution, and large-scale remote attacks.

VotingApp was built inside that debate. The engineering brief was to take it seriously: layered authentication, on-device threat detection, end-to-end encryption, an immutable audit trail, and a receipt-based verification model — treating election software as a domain where trust must be earned, not asserted.

What sets it apart

Inclusive by design

Accessibility beyond platform defaults

Native Android accessibility paired with custom in-app features — multilingual audio ballot, contrast and text-size variations, screen blackout, D-PAD navigation, sip-and-puff support, and TalkBack / Select to Speak integration — so voters could participate independently regardless of ability.

TalkBackTTSD-PADSip-and-puff
Verifiability without exposure

Voter receipts that prove without revealing

A receipt-and-addressing scheme designed around the three E2E properties — cast as intended, recorded as cast, tallied as recorded — letting voters and observers verify ballot integrity while keeping individual voter selections private.

Voter receiptHierarchical addressingHyperledger Sawtooth
Hardened mobile runtime

Security architecture beyond the app

An Android security SDK detecting root cloaking, malicious binaries, and code-injection frameworks, plus a JVM library for end-to-end encryption, digital signatures, and certificate verification — aligned with OWASP MASVS and VVSG 2.0 election-system requirements.

Root detectionOWASP MASVSVVSG 2.0PKI

My role

As Principal Android Engineer at Vidaloop, I led the Android side of VotingApp — the voter-facing mobile experience, the security tooling that defended it, and the cross-platform business logic shared with iOS through Kotlin Multiplatform. The work spanned election-grade mobile architecture, threat modeling, accessibility engineering, cryptography, and integration with a Hyperledger Sawtooth ledger.

Demo & promotional videos

VotingApp Demo — The Future of VotingA walkthrough of the voter-facing mobile experience.
Why we need VotingAppThe civic case for accessible, verifiable mobile voting.

Capabilities

Distributed across

Android
iOS (via Kotlin Multiplatform)

Built on

Languages
KotlinJava
Mobile
Android SDKAndroidXJetpack ComposeKotlin MultiplatformCameraXGoogle ML KitZXing
Security
End-to-end encryptionDigital signaturesCertificate verificationRoot-cloaking detectionMalicious-binary detectionCode-injection detection
Accessibility
Android Accessibility ServicesTalkBackSelect to SpeakText-to-SpeechD-PAD navigationSip-and-puff
Distributed systems
Hyperledger SawtoothImmutable ledgerPublic-ledger audit trail
Standards
OWASP MASVSVVSG 2.0UOCAVA / MOVE Act context
Platforms
AndroidiOS (Kotlin Multiplatform)

Further reading

Selected scholarly and audit literature framing the security, accessibility, and verifiability debate around mobile and internet voting.

A high-stakes domain where trust must be earned — engineered for accessibility, security, and verifiability one ballot at a time.
Related experience

Principal Android Engineer · Vidaloop

May 2020 – Feb 2022

This case study covers the product. The full role detail — team context, responsibilities, and career impact — lives on the experience page.

Read the role detail