Sorenson Communications is an industry leading provider of language services for the Deaf and hard-of-hearing. The Senior Software Engineer II is responsible for building and maintaining Android Video Relay Service applications, focusing on developing high-quality, scalable, and reliable applications for real-time video communication.
Responsibilities:
- Design, develop, and maintain native Android Video Relay Service (VRS) applications using Kotlin and Jetpack Compose
- Implement features using modern Android architecture patterns (MVI / MVVM, Clean Architecture)
- Integrate and maintain native C/C++ videophone libraries via Android NDK, JNI, and SWIG‑generated bindings
- Develop and support real‑time video calling functionality including camera, audio routing, call state management, and lifecycle handling
- Collaborate across teams working on multiple Android applications sharing a common native engine
- Contribute to technical design discussions, architecture decisions, and long‑term platform strategy
- Write clean, maintainable, and well‑tested code following engineering best practices
- Partner with QA and Product to ensure functional correctness, performance, and reliability
- Participate in code reviews, providing constructive feedback and mentoring less‑senior engineers
- Contribute to CI/CD pipelines and release processes using tools such as GitHub Actions and Fastlane
- Monitor application health and stability using observability and analytics tools
- Troubleshoot complex issues across application, framework, and native layers
- Participate in Agile/Scrum ceremonies and planning activities
- Other duties as assigned
Requirements:
- 6-8 years of professional software engineering experience
- Significant experience developing native Android applications in a production environment
- Experience working with complex, large‑scale, or mission‑critical applications
- Experience collaborating within cross‑functional, team‑based development environments
- Experience supporting applications through full lifecycle: design, development, release, and maintenance
- Strong proficiency in Kotlin and Android SDK fundamentals
- Experience with Jetpack Compose, Material Design, ViewModel, Navigation, and related Jetpack libraries
- Deep understanding of Android application lifecycle, threading, and performance considerations
- Experience configuring and maintaining Gradle builds, flavors, and build types
- Strong understanding of clean architecture, MVI or MVVM patterns
- Experience with dependency injection frameworks such as Hilt or Dagger
- Ability to design systems that are testable, scalable, and maintainable
- Experience working in multi‑module or shared‑library codebases
- Experience integrating native C/C++ code using the Android NDK
- Familiarity with JNI or SWIG‑generated bindings
- Experience using Retrofit / OkHttp or similar networking libraries
- Familiarity with local persistence using Room, DataStore, or encrypted storage
- Understanding of API‑driven mobile applications and backend integration
- Experience writing unit tests and instrumented Android tests
- Ability to troubleshoot complex defects across application and system boundaries
- Commitment to delivering reliable, high‑quality software in CI/CD environments
- Works effectively with Product, QA, Design, and Engineering partners
- Communicates technical concepts clearly to both technical and non‑technical audiences
- Willing to ask questions, challenge assumptions, and advocate for sound engineering practices
- Demonstrates ownership, accountability, and a proactive mindset
- Bachelor's degree in computer science, software engineering, or a related technical field preferred, or equivalent practical experience
- Understanding of real‑time systems, video/audio pipelines, or low‑latency communication is preferred
- React / React Native
- TypeScript / JavaScript / Node.js
- WebRTC
- SIP (Session Initiation Protocol)
- AWS
- Android Studio, Git, GitHub
- GitHub Actions, Fastlane
- Espresso, UIAutomator, AndroidX Test libraries
- Firebase, Sentry, Pendo
- Jira, Confluence