Senior Software Engineer, Android/KMP

DittoAtlanta, GA
20hRemote

About The Position

As a Senior Android Engineer, you will play a pivotal role in building mission-critical Android applications that support emergency responders and public sector customers in the field. Your work will directly enable first responders, emergency management teams, and defense personnel to maintain situational awareness and communicate effectively during life-saving operations—even in environments with limited or no connectivity. You'll craft robust user interfaces for handheld radios and situational awareness software, working at the intersection of application development and low-level hardware integration. From day one, you'll own the full development lifecycle: building Android UI components for critical field applications, integrating with peripheral devices like handheld radios, USB hardware, and network adapters, writing and maintaining FFI bindings between Kotlin/Java and native C/C++ code, authoring comprehensive automated tests, and streamlining CI/CD pipelines for reliable releases. You'll work directly with public sector customers and field personnel to diagnose integration issues, conduct field testing to ensure applications perform flawlessly under real-world emergency conditions, and iterate quickly on feedback from those whose lives depend on your work. You'll join a dedicated US-based team that values trust, clear communication, and continuous improvement. In our async-first culture, your written design docs and code reviews carry as much weight as face-to-face meetings, and occasional field deployments and offsite gatherings bring us together to test our solutions in real-world scenarios. If you're passionate about Android development that saves lives, low-level systems integration, mentoring teammates on best practices, and delivering world-class applications for mission-critical use cases, this is the role for you.

Requirements

  • 4+ years of professional software development experience: Proven track record of delivering production-quality Android applications in a team setting.
  • Deep expertise in Android development: Hands-on experience building Android applications with Kotlin and Java, including modern UI development with Jetpack Compose or Views, understanding Android SDK architecture, lifecycle management, and performance optimization.
  • Strong C/C++ programming skills: Proficiency in C or C++ for native Android development, with experience using JNI/NDK to bridge between Kotlin/Java and native code in an FFI context.
  • Experience with hardware peripherals: Practical experience interfacing with USB devices, network adapters, or other hardware peripherals from Android applications.
  • Willingness to travel for field testing: Ability to travel occasionally to support testing, deployment, and training with customers and field personnel in various locations.
  • Debugging and diagnostic chops: Ability to read native stack traces, interpret logs and memory dumps, and troubleshoot issues across the Android stack from UI to native code.
  • Test automation and CI/CD fluency: Experience designing and implementing unit, integration, and UI tests, and integrating them into automated build and release pipelines.
  • Excellent communication skills: Strong written and verbal communication to thrive in an async-first, distributed team—drafting clear design docs, participating in code reviews, and coordinating with customers and stakeholders.

Nice To Haves

  • Experience with Kotlin Multiplatform (KMP) for cross-platform mobile development
  • Familiarity with Rust programming language and basic understanding of systems programming concepts
  • Experience with Voice over IP (VoIP), radio communications systems, and/or amateur radio operator experience
  • Networking knowledge: Understanding of TCP/IP stack, network protocols, REST, TCP/UDP, QUIC, Bluetooth Low Energy, and other communication protocols
  • Experience with build and release automation: Proven ability to publish Android applications and configure Gradle and CI pipelines for distribution
  • Track record of open-source contributions: Demonstrated involvement in Android projects—whether through libraries, tooling, or community support—that showcases collaborative development and code quality

Responsibilities

  • Build life-saving Android applications: Design and implement intuitive, responsive user interfaces for situational awareness software and handheld radio integration using modern Android development practices, ensuring excellent user experience and reliability in mission-critical field operations.
  • Integrate with emergency response hardware: Work with handheld radios, USB devices, network adapters, and other field equipment, implementing robust communication protocols and handling edge cases in device connectivity for first responders.
  • Build and maintain native code integration: Implement safe, efficient Foreign-Function Interface (FFI) bindings between Kotlin/Java and native C/C++ libraries, adhering to best practices for memory management, threading, and error handling.
  • Support field operations: Travel occasionally to support testing and deployment with emergency response teams, public sector customers, and field personnel, ensuring applications perform reliably under real-world conditions.
  • Ensure device and OS compatibility: Manage Android configurations and platform quirks to deliver seamless application behavior across diverse device architectures, Android versions, and hardware capabilities used in emergency response scenarios.
  • Develop comprehensive test suites: Write and automate unit, integration, and end-to-end tests (including UI tests and native interop scenarios) to continuously validate application functionality and guard against regressions in mission-critical software.
  • Integrate with CI/CD pipelines: Collaborate with the Release and QA teams to embed your tests into continuous integration workflows, monitor release quality, and iterate rapidly on customer feedback.
  • Partner with field teams and customers: Triage and resolve customer-reported issues from emergency response personnel, debug edge-case failures in field deployments, and feed learnings back into product and engineering roadmaps.
  • Mentor and evangelize best practices: Share your expertise in Android development, native code integration, and hardware interfacing through design reviews, brown-bags, and one-on-one coaching to level up the entire team.

Benefits

  • We offer competitive salaries and meaningful equity. We believe everyone on the team should have a stake in what we’re building.
  • Benefits vary by region to make sure you're covered in the ways that matter most. In the US, that includes health, dental, vision, life, and disability insurance, plus a 401(k) and flexible spending accounts.
  • In the UK, we offer private healthcare through Vitality, a pension plan, and region-specific coverage.
  • For our team members elsewhere in the world, we work with our global employer platform to offer equitable benefits and coverage.
  • Regardless of where you live, everyone at Ditto can utilize flexible time off.
  • And while we work remotely, our Atlanta and San Francisco offices are open if you ever want a place to work or meet up with teammates.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service