
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.
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.
- 31states + DC + USVI allow some form of electronic ballot returnNCSL, 2026
- 19states require voted ballots to be returned by mail onlyNCSL, 2026
- 1.33MUOCAVA ballots transmitted in 2024 (806K returned)EAC EAVS 2024
- 3–5 ppturnout lift estimated in West Virginia mobile-voting trialFowler, 2020
What sets it apart
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.
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.
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.
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.
- Led Android development for VotingApp, the voter-facing mobile voting application
- Built shared business logic with Kotlin Multiplatform for parity across Android and iOS
- Integrated the mobile client with a Hyperledger Sawtooth blockchain for immutable election records
- Developed an Android security SDK detecting root cloaking, malicious binaries, and code injection — aligned with OWASP and VVSG 2.0
- Authored a JVM cryptography library for end-to-end encryption, digital signatures, and certificate verification
- Engineered accessibility services — audio ballot, TalkBack, Select to Speak, D-PAD, sip-and-puff, contrast and text-scaling controls
- Built QR-token onboarding with CameraX, Google ML Kit, and ZXing for voter authentication
Demo & promotional videos
Capabilities
- Mobile threat detection
- QR-token authentication
- Guided ballot marking
- Ballot review & corrections
- Cast vote record submission
- Voter receipt
- Audio ballot
- Screen-reader support
- Multilingual ballots
- Contrast & text scaling
- Hyperledger Sawtooth ledger
- Election-admin workflows
Distributed across
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.
- The Ballot is Busted Before the Blockchain: A Security Analysis of VoatzSpecter, Koppel, Weitzner — USENIX Security, 2020Core scholarly critique of the first mobile voting app used in U.S. federal elections.
- Our Full Report on the Voatz Mobile Voting PlatformTrail of Bits, 2020Independent audit identifying 79 findings, including high-severity issues confirming and extending the MIT analysis.
- Going from Bad to Worse: From Internet Voting to Blockchain VotingPark, Specter, Narula, Rivest — Journal of Cybersecurity, 2021Argues that blockchain-backed voting can increase the risk of undetectable, large-scale election failures.
- Promises and Perils of Mobile VotingFowler — Election Law Journal, 2020Empirical study of West Virginia’s 2018 trial estimating a 3–5 percentage-point turnout effect.
- U.S. Election Expert Perspectives on End-to-End Verifiable Voting SystemsNIST, 2026Interview study with 33 experts; finds adoption depends on people, process, and trust as much as cryptography.
- Internet Voting Is Insecure and Should Not Be Used in Public ElectionsPrinceton CITP Blog, 2026Current expert-skeptic position covering device malware, server compromise, receipt-freeness, and dispute resolution.
- Secure Voting System (US20200258338A1)U.S. Postal Service, 2020 — patent applicationUSPS-filed application combining mailed physical tokens, mobile devices, and distributed-ledger storage.
“A high-stakes domain where trust must be earned — engineered for accessibility, security, and verifiability one ballot at a time.”
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