Company DescriptionPublicis Sapient
is a digital transformation partner helping established organizations get digitally enabled, both in the way they work and how they serve their customers. We help unlock value through a start-up mindset and modern methods, fusing strategy, consulting, and customer experience with agile engineering and problem-solving creativity. As digital pioneers with 20,000 people and 53 offices worldwide
, our experience spanning technology, data sciences, consulting, and customer obsession - combined with our culture of curiosity and relentlessness - enables us to accelerate our clients' businesses through designing the products and services their customers truly value. Publicis Sapient is the digital business transformation hub of Publicis Groupe. Job Description
As a Senior Developer Mobile Solutions, you will play a key role in delivering award winning, interactive experiences to our clients. You will drive the translation and construction of clients' business problems into innovative technology solutions by creating and owning the technical vision of a project to ensure that the vision is achieved with a high level of quality.
You will be responsible for solution design and architecture delivery - providing technical direction to teams and implementing architectural strategy. You will elaborate design options, encourage innovation, drive technical strategy and ensure that solutions meet functional and non-functional requirements. You will contribute to delivery capability by educating and mentoring developers, using a variety of design techniques and ensuring that good design practices are followed. PRIMARY RESPONSIBILITIES
- Analyse software requirements and map them to Android architecture or extend the architecture in order to support the new requirements.
- Responsible for designing app architecture and integration design to various external systems
- Document and communicate architectural decisions and designs
- Responsible for choosing the needed technology stack based on the functional, non-functional requirements and based on other factors like client drivers, environment and feasibility
- Provide direction, guidance, and expert advice to the App development and delivery teams
- Develop prototypes, proof of concepts, and feasibility analysis.
- Interact with 3rd party providers to integrate additional services into the platform
- Cooperate with project and product management to scope, estimate, and plan new efforts
· Stay up-to-date on Android releases and trends in Android development and architecture
- Follow best practices using Android Guidelines
- Drive code quality, code coverage, unit testing, best practices and Continuous integration/Continuous Delivery Pipeline
- Good interpersonal and communication skills
- Constantly research and adopt new technologies / best practice
- Strong and innovative approach to problem solving and finding solutions
- Drive Performance Tuning, Clean coding and Security guidelines
- Overall 5/8 years' experience(minimum) in developing complex and advanced mobile applications on Android.
- At least 1 year of Kotlin experience
- Deep understanding and Hands on experience of core Android concepts and best implementation practices
- Hands on development experience is a must and must be able to create boiler plate code (architecture implementation) before the development starts
- Deep understanding of MVC, MVVM, VIPER and other patterns
- Deep understanding of Factory, Adapter, Observer, Singleton and other behaviour patterns
- Deep understanding of Object-Oriented Programming, data structures, and design patterns Proficiency in Java application development
- Have published at least 5 Android apps on Play Store
- Must possess knowledge on App Security and Cryptography
- Must have worked on Offline Sync, Caching, Local Storage, Realm/Room/SQLLite databases
- Good exposure to API Caching and defining NFRs (Non Functional Requirements) for mobile applications
- Good working knowledge of tools such as Git, JIRA and Jenkins or any tools that are similar to these.
- Must have worked with Agile Methodologies
- Good communication skills and fluent in English
- Hands on experience with Reactive frameworks such RxJava or custom framework
- Hands on experience with Retrofit and/or volle
- Hands on experience on Mock frameworks such as Mockito or any other similar framework for unit testing
- Must have experience in Performance Tuning the app
- Must have experience using Android Profiler and ability to diagnose any memory leaks and crashes
- Implementation understanding of Multi-threading, asynchronous concepts
- Must have experience in complex integrations such as CRM, CMS, Push Notifications, Identity Management, SSO, Social Integrations to the App
- Experience integrating third party frameworks using Android Gradle.
- Worked with logging and capturing user navigation and app usage to Google Firebase and Crashlytics for understanding the most used features by users
- Deep understanding of Analytics, tagging, accessibility and performance engineering
- Must have experience working on Localization/multi language support
- Must have architecture experience on complex/large consumer facing apps.