![Repsly Careers Teamwork](https://www.repsly.com/hs-fs/hubfs/Repsly%20Web/Pages/Careers/Job%20Listings/Repsly%20Careers%20Teamwork.png?width=730&name=Repsly%20Careers%20Teamwork.png)
Senior Android Developer
About Repsly
Repsly is a global SaaS vendor for retail execution. Our product is used by over 800 CPG and Retail Service companies around the world, built to help field teams achieve top-notch execution in retail sales, merchandising, and promotion plans. Our customers are some of the most exciting and innovative brands and retail service organizations across the world, including Kraft-Heinz, Dyson, Keurig Dr. Pepper, Fenty Beauty, Nutrabolt, Anheuser-Busch, Core-Mark, and Crossmark, to name a few.
Our headquarters are in Zagreb (Croatia) & Boston (USA), with partners worldwide.
If you are seeking an opportunity to combine your skills, passion, and positive energy to play a meaningful part in the growth of a world-class global SaaS company, then join our team.
Job description
As an Android Developer, you will have the opportunity to collaborate as a member of one of our international cross-functional product teams and engage with a complex product that challenges your technical and organizational skills, fostering personal growth. Responsibilities include refining feature requirements architecture, implementing, deploying, and tracking their usage and impact on the system.
At Repsly, we place a strong emphasis on ownership and engagement. We utilize Scrum to effectively organize and enhance our processes, alongside OKRs to ensure alignment across the company at all levels.
Our stack
Driven by user growth and increased feature complexity, our platform has evolved from a simple MVP architecture to MVVM architecture. We are continuously modernizing our codebase by adopting Kotlin Coroutines and Flow to replace Rx, and by utilizing MVVM architecture with LiveData and ViewModel. Our codebase is split between Java (53.8%) and Kotlin (46.2%), across 16 modules. We aim for a minimum of 80% unit test coverage for all new development. To maintain clean code and high test coverage, we use SonarQube for static code analysis, ensuring code consistency and establishing quality gates.
As our users need to work in areas with low connectivity, we support offline mode. This means all user inputs are stored locally and synced with the system when possible.
We use pull requests with SonarCloud feedback to improve the code before we deploy it to testing using Firebase. CI/CD makes testing and releasing the app as simple as possible.
We utilize feature flags to decrease the risk of introducing breaking changes. A suite of E2E tests helps us check that the latest changes haven’t broken any core functionality. Incremental releases give us time to fix any issues that come up. This approach allows us to seamlessly implement changes, move faster, and keep our stack up-to-date with the latest versions. So far, it has paid off as we have 98% crash-free users with weekly deployments and excellent user feedback. We continue to review the latest technologies to identify further improvements.
If you join our team you will:
- Work closely with the team to shape the evolution of our SaaS product
- Implement new features using Kotlin (Java only for maintaining legacy codebase)
- Implement feature flags to enable controlled and seamless deployment of changes
- Increase test coverage by contributing to the suite of 1k unit tests
- Get automated code analysis results from SonarQube and seek feedback from fellow team members through the pull request process, fostering a culture of collaboration and continuous improvement
- Write risk analysis on system changes, empowering our QA engineers to better understand the impact and test accordingly
- Actively search for performance bottlenecks with the Android Studio Profiler
- Utilize our streamlined CI/CD pipeline
- Monitor system performance and health using tools such as Graylog and Grafana, Firebase Crashlytics and Analytics to proactively identify any issues.
Required skills
- Proficient in both Kotlin and Java, with a deep understanding of Android SDK
- Advanced knowledge of MVVM architecture with Kotlin Coroutines and Flow
- Advanced knowledge and experience with using REST services
- Experience in writing unit tests
- Experience in Agile software development
- Excellent English spoken and written
- Strong communication skills, proactive engagement for long-term goals and full ownership over deliveries
- 6+ years of relevant experiences
Preferred skills
- Experience with Android UI design principles, patterns, and best practices (Material)
- Experience with optimizing geofencing, FusedProvider and geolocation fetching
- Experience with writing tests at different levels (integration tests, UI tests)
- Experience with managing legacy codebases and modernizing architectures
- Experience with offline storage, threading, and performance tuning
- Experienced in software quality assurance principles
We are offering
- Continuous education and professional development
- Choose your location, work remotely or in the office
- Enjoy a pet-friendly working atmosphere
- Company events and team buildings
- A culture that is not afraid to try, fail and learn from mistakes
Application process
To apply, send an email with a cover letter and resume to: careers@repsly.com.