This role is central to developing high-performance Android applications that operate in demanding industrial and laboratory environments. You will work closely with cross-functional teams to design, build, and maintain mobile solutions that interface with a variety of hardware devices, cloud services, and communication protocols. The ideal candidate thrives in a hands-on setting where software meets real-world systems, and is passionate about writing clean, maintainable code while continuously learning and improving. You will contribute across the full development lifecycle—from concept and design through implementation, testing, and deployment—while adhering to best practices in software engineering and collaborating effectively within an agile team structure.
Responsibilities
- Develop and maintain Android applications using Kotlin or Java within Android Studio and the Android SDK.
- Create intuitive user interfaces and manage application state using modern Android architecture components such as ViewModels and Jetpack Compose.
- Handle background processing constraints and implement foreground services where necessary to support real-world app lifecycle demands.
- Establish and manage TCP/IP connections, including socket communication, retry logic, timeouts, and error recovery.
- Support serial communication and protocol-based interactions, including Modbus RTU and Modbus TCP/IP, for integration with industrial devices.
- Collaborate on REST API development and consumption using Node.js and Python to enable cloud and backend integrations.
- Use logs, instrumentation, and systematic debugging methods to identify and resolve software issues.
- Document code and processes clearly, and contribute to team collaboration through Git workflows, code reviews, and consistent communication.
Requirements
- Bachelor’s degree in Computer Science, Software Engineering, Computer Engineering, or a related technical field.
- Solid programming foundation in Kotlin or Java, with emphasis on object-oriented design and clean code principles.
- Understanding of core computer science topics including data structures, algorithms, and basic computational complexity.
- Experience with Android development tools such as Android Studio, Gradle, and debugging utilities.
- Knowledge of Android app lifecycle and how state, navigation, and configuration changes affect application behavior.
- Familiarity with modern Android UI frameworks like Jetpack Compose or traditional Android Views.
- Basic grasp of MVVM architecture, including the role of ViewModels and separation of UI logic from data.
- Working knowledge of networking fundamentals including TCP/IP, ports, IP addressing, and client-server models.
- Ability to consume RESTful web services, parse JSON, and handle network errors and timeouts.
- Hands-on experience developing simple APIs or backend services using Node.js or Python, such as in academic or personal projects.
- Proficiency with Git for version control, including branching, committing, pull requests, and resolving merge conflicts.
- Interest in industrial systems, IoT, or embedded technologies, with a willingness to learn protocols such as Modbus.
- Ability to interpret technical documentation to implement or debug software features.
- Structured approach to troubleshooting: reproducing issues, collecting data, testing solutions, and reporting findings.
Tech Stack
Kotlin, Java, Android SDK, Android Studio, Gradle, ViewModels, Jetpack Compose, Android Views, TCP/IP, Sockets, Modbus RTU, Modbus TCP, REST APIs, Node.js, Python, Git
Work Arrangement
onsite — Summerville, SC
- Driven by innovation and continuous progress
- Collaborative environment focused on solving real-world customer challenges
- Emphasis on learning, mentorship, and iterative growth
- Rooted in practical problem-solving with integrated software and hardware systems
Additional Information
- Full-time position requiring in-office presence in Summerville, SC
- Candidates must pass a background check as part of the onboarding process
- This role involves occasional collaboration with hardware engineering teams for integration and testing
- Opportunities for professional development and attendance at technical conferences are supported
- Regular team retrospectives and innovation sprints encourage continuous improvement
- The company promotes a culture of knowledge sharing through internal tech talks and documentation
- Mentorship programs are available for early-career engineers to accelerate growth

