I worked at ING Bank in 2016, for about 13 months. Being the bank with the highest rated mobile banking app in The Netherlands, this has been a very exciting experience and a very challenging one. As this was my first assignment as freelancer developer, I could not have found a better way to start my new career.
Within ING, I worked in an agile feature team made of 6-7 front-end (Android and iOS) and back-end developers. Considering the complexity of the app and its very high standard in quality, we were responsible for only few specific parts of the whole app, namely the list of products and the payments. This somehow narrow scope, allowed us to be more focused and to deliver with the expected quality.
Another way of keeping the bar high, was by means of regular meeting between all iOS developers, where we could share knowledge, discuss issues, identify points of improvements in our daily job as developers and propose solutions. Thorough code reviews also kept the code to a very high degree of maintainability.
And maintainability was also one the key points of the project I worked on after the first few months in ING Bank. A project whose goal was something that no other bank in the world has done before: bringing the omni-channel experience to levels beyond country borders. In other words, by leveraging its worldwide presence, ING decided to provide the same mobile experience to its customers, no matter to which geographical ING entity they were attached to.
All this might sound easily solvable by just an app to fit them all but when it comes to banks, this is not so immediate since they are extremely regulated entities: each country has its own set of laws and security rules; and all of them must still apply in this new mobile experience. This led to a modularization of the existing Dutch Bankieren app into several independent modules, that each country could use to build their own ING mobile banking solution. The module we were responsible for in my team, was the module handling the ING products a customer has. So we wrote the products module completely from scratch and using Swift 2 (which was then migrated lately to Swift 3).
Key concepts: Swift 2, Swift 3, Protocol Oriented Programming, TDD, Framework, mentoring, distributed teams