Verifone
2021 — 2026Senior Software Engineer
Primary engineer for build, release, and configuration infrastructure for AGPA (Android Global Payment Application), Verifone's payment stack for Android terminals. Within AGPA, developed payment features spanning core transaction logic, acquirer/gateway host integrations, and regional libraries.
Build, release, and developer productivity engineering
- Designed and maintained the Gradle plugin suite for building "solutions"—complete per-customer, per-region software stacks—used internally by regional teams and externally by select customers.
- Ran nightly, CI, and release builds on Jenkins for 100+ interdependent repos. As primary on-call for the nightly build, kept it green 98% of the year, protecting the handoff to QA.
- Led the migration of all 100+ repos to modern tooling: from Gradle 6/AGP 4.2/JDK 11 to Gradle 8/AGP 8/JDK 17. Merged everything simultaneously without breaking the nightly build, and coordinated the JDK upgrade across nearly 100 developers with internal documentation.
- Configured the Gradle build cache with a two-tier strategy—local cache per Jenkins node falling back to a remote cache on Artifactory—typically cutting warm build times 2–4×.
- Managed artifact publishing (via Artifactory) and dependency resolution across all repos, including a floating-version scheme pinned at release.
- Built AI automations for my daily work (Jira issue creation, PR creation, Confluence search, Jenkins monitoring, terminal automation), composing LLM tooling into reliable workflows ahead of official org adoption.
Payments platform engineering
- Implemented new transaction capabilities for acquirer and gateway host integrations: built pre-authorization support from scratch for a new acquirer (initial auth, adjustments, and completions, including gift card and Level 2 card data); added surcharging and installment support for an internal gateway.
- Proposed and implemented three extensions to Verifone's nexo-based POS communication protocol, securing internal approval for each: 1) a sale-to-host data channel letting POS systems pass custom data through to the host; 2) dual transaction-ID handling supporting a major payment processor's migration to a new ID scheme; and 3) dynamic merchant descriptors (POS-supplied merchant name and phone shown on cardholder statements).
- Added support for healthcare (FSA) total amount and sub-amounts (prescription, clinic, vision, dental) to an internal gateway.
- Surfaced store-and-forward (SAF) rejection reasons to the POS for a national retail customer (amount caps, queue limits, region-specific codes).