Essential Functions
Analyze, design, program, debug, and modify complex software enhancement features and/or new software products.
Improving the performance of existing software.
Debug and fix software including difficult issues using a broad knowledge of technologies.
Participate in and influence project teams to create working software.
Provide input and lead code reviews and technical meetings.
Recommending new technologies that can help increase productivity.
Contribute and influence project planning and estimates.
Protect company proprietary and confidential information.
Regularly attending team meetings to discuss projects, brainstorm ideas, and put forward solutions to any issues.
- Other duties as assigned.
- Required Skills and Experience
- At least a BS/BA Degree in MIS, Computer Science, Engineering, or related field
6+ years of Android Experience, building applications or libraries
4+ years of Kotlin Experience
Hands-on experience with Jetpack Compose (this is a Compose-first, XML/View-free environment)
Candidate must have a commitment to industry best demonstrated practices, source code control, architecture, coding structure, and unit/system testing
Strong object oriented programming experience
Strong experience with Kotlin Coroutines and Flow for multithreaded and asynchronous programming
Strong trouble-shooting and debugging skills
Ability to design, plan, and implement features based on product requirements
Experience with interfacing with RESTful services and consuming JSON or XML
Familiarity with Source Control tools (Git)
Experience working in large, multi-module Android projects (15+ modules) with dependency injection (Dagger/Hilt)
Great English written and verbal communication skills
- Excellent multi-tasking skills, managing multiple initiatives at one time in a fast-paced environment
- Desired Skills and Experience
- Experience with Material Design 3 or modern Android design systems — our CX application is actively migrating to M3 design guidelines
Experience with Kotlin Multiplatform (KMP) development
Experience in Unit Testing with Dependency Injection, including JUnit, Kotest, and MockK/Mockito
Experience communicating with external devices over sockets or serial protocols (TCP/IP, USB, Bluetooth) — particularly integrating with POS/payment terminal hardware, printers, or similar embedded/peripheral devices
Experience integrating multiple third-party or vendor SDKs behind a shared abstraction layer (e.g., supporting several hardware vendors from one codebase via product flavors)
Experience with unattended or kiosk-mode Android device management (device admin, persistent launcher apps, remote provisioning)
Experience with Agile/Scrum
Experience creating and consuming AARs/JARs, including private Maven repositories (e.g., Artifactory/JFrog)
Strong interest in the tooling/development process with continuous integration (Azure Pipelines, SonarQube, code coverage tooling)
Proficiency with AI-assisted development tools (e.g., Claude Code, GitHub Copilot) to accelerate coding, debugging, code review, and test authoring
Understanding of data security, encryption handling, PCI/EMV compliance, data privacy and related regulations