Opis i wymagania
· 4+ years experience in developing Android apps.
· Proficient in Java.
· Strong knowledge in Kotlin.
· Strong OOP knowledge.
· Very good knowledge in SOLID principles and how to adopt them as part of the development activities.
· Strong knowledge in clean architecture and code modularity.
· Excellent knowledge in code architecture patterns, such as MVC, MVVM, MVP, VIPER.
· Strong knowledge of common Android design patterns (for example, delegate, observer, factory), knows what an anti-pattern is.
· Can explain the difference between declarative and imperative programming and is comfortable in coding in both paradigms.
· Proficient functional programming.
· Experience with multiple dependency managers, such as Gradle.
· Knows Generics and how to apply them.
· Can set up a continuous integration environment.
· Excellent knowledge in unit and UI tests.
· Knows how to apply Android design guidelines.
· Excellent knowledge in git.
· Knows the full life cycle of an Android application, from early steps to publishing to Google Play.
· Good overall knowledge of Android/mobile security.
· Good knowledge in multithreading, threads, AsyncTask, Runnable and Executors.
· Strong knowledge in dependency injection frameworks like Dagger.
· Excellent knowledge in cloud environments such as Firebase, AWS or Azure.
· Proficient in SQLite and ORMs such as Room.
· Good knowledge in Android’s commonly used libraries: Retrofit, RxJava, Dagger2.
· Keeps up-to-date with latest trends in Android programming.
· Excellent communication skills.
· Strong knowledge in Agile methodology and good knowledge in at least one framework, such as Scrum or Kanban.
· Good mentor and pro-active in teaching our junior colleagues.
· Code and ship fully-fledged apps / features.
· Develop features with high quality standards for apps visited by millions of customers.
· Very pro-active in learning new stuff and keeping up-to-date with latest trends.
· Support the entire application lifecycle: concept, design, test, release and support.
· Improve agile delivery processes, using collaboration tooling such as JIRA.
· Coach our colleagues that are less experienced in Android programming.
· Ensures that unit tests coverage the production code, quality and security checks are verified periodically.
· Give recommendations, advise clients and various stakeholders of adopting solutions.
· Fast-paced working environment within geographically distributed teams.
· Greenfield projects! Opportunity to contribute to high volume web-facing containerized applications.
· Manage, provision and version cloud environments leveraging Infrastructure as Code (IaC).
· Exposure to wide variety of cutting-edge technologies and frameworks.
· Chance to get involved and drive prototype projects (Mobile apps, IoT stuff etc.) as part of the Deloitte Digital Developers community.
· Trainings! We encourage you to attend as many as possible and conduct some to help your colleagues grow while developing your soft skills.