Senior Engineer, Android
Deutsche Bank
Job Description:
Engineer is responsible for managing or performing work across multiple areas of the bank's overall IT Platform/Infrastructure including analysis, development, and administration. It may also involve taking functional oversight of engineering delivery for specific departments.
Your key responsibilities:
- Plan and provide appropriate software documentation
- Coaching / Guiding less experienced developers
- Exposure to technical design and development of customer-oriented mobile application systems on various platforms (iOS, REST APIs)
- Experience with 4.5-Star Apps with fast-paced release cycles
- Driver of quality indicators, promote the integration of non-functional testing (security, performance, UX) into continuous integration cycle
- Create integration environment, testing and deployment strategies for the Mobile Development Team
- Agile working environment: Work with the Product Owner, Scrum Masters, Dev Team members, UX designers, security specialists and other groups to identify technical and functional needs
Your skills and experience:
- Be able to work in a global environment with mixed teams and mixed cultures at different time zones
- Experience with best industry standards – applying coding guidelines
- Strong knowledge of Kotlin: functions and lambdas, collections, generics, coroutines, reflection
- Good knowledge of Java
- Strong knowledge of reactive programming (rxKotlin, rxJava)
- Experience with asynchronous programming
- Strong knowledge of the MVVM architectural pattern
- Experience with Clean Architecture, knowledge about SOLID Principles
- Knowledge of design patterns: Adapter, Singleton, Facade, Factory, Observer, Decorator
- Strong knowledge of Dependency Injection; Dagger experience (nice to have)
- Proficient in Android Studio: Debugger, Logger, Layout Editor, Profiler, Device File Explorer
- Writes exhaustive unit tests: JUnit 5 (must have), JUnit 4 (nice to have), Mockito
- Knowledge of REST and following libraries: Retrofit (must have), Volley (nice to have); knowledge of network calls caching
- Good knowledge working with persistency layers: Shared Preferences, local files, Room, Parcelable
- Experience with security mechanisms: Keystore, SSL pinning, encryption (AES, Diffie-Hellman), Man in the Middle
- Experience with implementing analytics and interpreting metrics
- Experience with code quality tools: lint, sonarqube, veracode
- Gradle knowledge; experience with writing gradle scripts
- Ability to work with a continuous integration environment: experience with Teamcity (or similar), Artifactory (or similar), AppCenter (or similar)
- Experience with hardening mechanisms: ProGuard, DexGuard (or similar)
- Read and write basic shell scripts.
You can expect:
24 days’ holiday + loyalty days + bank holidays (week days offered for bank holidays on weekend days);
Flexible working hours and working from home;
Private healthcare and life insurance;
A culture of continuous learning with coaching and support from experts in your team.
Our values define the working environment we strive to create – diverse, supportive and welcoming of different views. We embrace a culture reflecting a variety of perspectives, insights and backgrounds to drive innovation. We build talented and diverse teams to drive business results and encourage our people to develop to their full potential. Talk to us about flexible work arrangements and other initiatives we offer.
We promote good working relationships and encourage high standards of conduct and work performance. We welcome applications from talented people from all cultures, countries, races, genders, sexual orientations, disabilities, beliefs and generations and are committed to providing a working environment free from harassment, discrimination and retaliation.
Visit Inside Deutsche Bank to discover more about the culture of Deutsche Bank including Diversity, Equity & Inclusion, Leadership, Learning, Future of Work and more besides.