Tech Stack @ Trading212

I am software engineer and it seems that your Android and iOS app is looking very similar. However my apk analysis shows me that you are developing native with Kotlin.
So I am wondering what tech stack you use.

2 Likes

Hey,
I was asking me the same question. So would be nice if a member of the team could introduce us to a few things which you guys are using on a daily basis in your development process.

Btw. great work on the app and your current offering! Keep it going like this.

Greetings
Alex

Hey, not sure if it’s exactly what you’re looking for, but it’s a glimpse into the Android tech stack:

Android Kotlin DSL lists
Kotlin Coroutines interesting usages

Also, we are very proud of our involvement in the open-source community with projects like DiverseRecyclerAdapter and StickyHeaders. Be sure to try them out xD

3 Likes

I love the fact that Trading212 is developed with Kotlin. Played around with that language some months back, and it’s such a treat. I would also like to know more about the technical aspects of the app. Keep up the good work guys.

2 Likes

You are correct, the Android app is written in Kotlin and we love it. We are still using Java but mostly to support existing code that is not worth converting or is soon going to be removed. The iOS app is written in Swift, although there are still some remnants of Objective-C.

Our aim is to provide a smooth and consistent experience across all major platforms and native is the only choice for mobile, since it offers the best performance and overall user experience.

The similarity of the apps is not related to the tech stack we use, it is rather the process. Each feature is developed by the so-called “feature team”, in the common case it consists of a designer, content writer, Android dev, iOS dev, Web dev, Backend dev, and QA, sometimes non-tech people can join. All the communication happens in a single channel so that everything is visible to everyone in the team. We aim to be documentation-light, most of the time the only document for the feature is the specification doc, it contains the business objectives, the functional requirements and the roles of the teams involved. We rely heavily on the design tools and the close collaboration between the team members for the UI/behaviour consistency of the apps, every difference and inconsistency is caught by the QA people (they are very good at this :wink:).
You may have noticed the absence of Project/Product Manager, that is because the role is spread across the team members, everyone is expected to not only do the technical aspect but also to think about how the feature is going to be used and to suggest improvements.
Every developer has a backing one, who at the same time is the main dev for another feature. His responsibility is to be familiar with the feature’s specifics in order to do context-aware code reviews and to provide help when it is needed. Also, this is a good way to spread knowledge.

Hope this answers your question. About the tech stack, I can go deep here, but the answer has become too long, already. I can share that we are experimenting with Kotlin Multiplatform and code reusability. We also like the idea of the uni-directional data flow and the declarative UI ( Android Compose and Swift UI).

5 Likes