Android/Flutter developer wanted! If you have the skills, motivation to learn and evolve, apply for this position and join our team of 10+ mobile developers.
The Cinnamon Mobile team is focused on developing scalable, reliable, and stable mobile apps. We have vast knowledge and extensive experience in native Android and iOS and in Flutter development technologies, which allows us to develop and implement any feature required. Our project structure and architecture are standardized so our projects are testable, scalable, easy to maintain, and a joy for developers to work on. We have experience with mobile CI, so you only have to push the code and it will get formatted and pushed to the store with only a merge to develop or release.
We are looking for an Android or Flutter developer. If you are not experienced in Flutter but willing to learn, we are happy to teach you - we are using the most popular State management solution in Flutter, Riverpod, which should be easy to use if you are new to Flutter.
Cinnamon is a digital agency that specializes in the design and development of mobile and web applications and websites. Our clients are mostly ambitious international founders who are looking for tailor-made and high-quality solutions. This is why we have over 30 developers and over 20 designers creating and perfecting those solutions. We care about our employees and we are working very hard to ensure all of us at Cinnamon are fulfilled and enjoying our work. This is why Cinnamon was voted as one of the top 5 middle-size employers in Croatia in 2020 based on the employees voting campaign organized by a job seeking & advertising portal MojPosao.
JOB CATEGORY: Full-time employment
WHAT DO YOU GET TO DO IN THIS ROLE:
- Architect and develop native Android mobile apps. With our project architecture, it is easier for you to switch between the projects and start a new one - all you have to do is to write business logic and UI, everything else is done with the templates. Use MVVM architecture and our own template with base classes for activities, fragments, and view models. Use Dagger, Koin, and Hilt for dependency injection. Use Room for complex local persistence and SharedPreferences for less complex ones, Retrofit for networking, Gson or Moshi for parsing, and our custom call adapter to wrap every response in our own generic class. Sometimes use data binding, sometimes only view binding, depending on the project requirements. We have written a lot of our own extension and inline functions that help to reduce boilerplate code.
- As for Flutter, architect and develop Flutter apps using Dart. Use Dart packages to manage shared software such as libraries and tools: Provider for dependency injection, Freezed to simplify working with immutables, Dio as a powerful HTTP client, Hive as a quick and lightweight database, Sqflite for local persistence where there is a need for complex data structures with relations, Firebase packages for Firebase based projects, and Google Maps Flutter if there are Google Maps requirements.
- Write concise, readable, and well-documented (or self-documenting) code and maintain existing codebases.
- Collaborate closely with the teams of other developers, product designers (one of the largest design teams in Croatia), PMs, and QAs.
- Propose and execute technical solutions for different technical challenges and solve real-world complex app development-related problems.
- Mentor and be mentored, depending on your preferences.
- Last but not least, ask important questions, speak candidly, and try to move the needle on your projects every single day. ;)
WHAT WE WOULD LOVE TO GET FROM YOU:
- Min. 1 year of professional experience as an Android or Flutter developer.
- Willingness to learn how to use Flutter is a plus. Our Flutter developers, the largest Flutter team in Croatia, were featured as the number one in Croatia by Themanifest.com.
- Familiarity with Android Studio/IntelliJ/VS Code.
- Solid knowledge of building apps that interact with REST APIs.
- Good experience with Git.
- Deep knowledge of object-oriented concepts and a passion for exploring and implementing software engineering best practices.
- Interest in mobile UX and successfully collaborating with the design team.
- Ability to quickly adapt to a different language or development environment.
- Meticulous attention to detail regardless of whether it’s your work or reviewing someone else’s work.
- Very good written and spoken English.
WHAT WE OFFER:
- Competitive salary and bonus for hosting presentations, participating in meetups and blogging, successful recommendations for our open vacancies, etc.
- Constant progress and improvement with the help of the management.
- Access to a free and confidential workplace counseling service with our in-house psychologist regarding your personal and professional development.
- Paid conference attending, online courses, workshops, and knowledge sharing.
- Flexible working hours (workday starts between 7 am and 10 am, as per your preferences).
- Extra vacation days after the first year of employment.