As Senior Android Engineer at Indra, CaixaBank's technology partner, I worked on the CaixaBankNow Android app, contributing to around six of its modules and growing from working alongside the team to taking full ownership of the PSD2 module as its solo Android engineer, a step up that came with greater responsibility and daily contact with the client.
Development and Architecture
I architected and maintained a modular codebase using Clean Architecture and the MVP pattern, delivering large-scale business features across the banking domain. The codebase combined Java and Kotlin, with RxJava and Coroutines for asynchronous work, Dagger 2 for dependency injection, and Retrofit for networking.
Module Ownership and Growth
I started by working on the app alongside my colleagues across several of its modules, and over time I took ownership of the PSD2 module: a secure gateway, built under the European open-banking regulation, that lets external applications such as fintech services interact with the bank. As the solo Android engineer on this module, I was responsible for its development from end to end. It was built entirely in Kotlin, a deliberate decision that required a dedicated request within a codebase that until then had been predominantly Java.
Collaboration with the Client
The module was developed in a dedicated squad where I was the Android engineer alongside an iOS and a QA colleague from Indra, while the Product Owner and Scrum Master were on the client side at CaixaBank. I was the reference for the Indra team and made sure it ran smoothly, and I worked with the client daily, taking part in the Scrum dailies with the Scrum Master, and at times the Product Owner, to align on scope and progress.
Code Quality and Reliability
On a multi-team codebase serving millions of users, the work followed a rigorous process to maintain velocity without compromising quality. Because banking apps are highly sensitive, every change had to clear banking-grade compliance and meet the strict standards required to keep the app fully available at all times.
Git Reference
I served as the team's Git reference, resolving the complex version control issues that arose across the multi-team codebase and keeping everyone unblocked.