professional experience
sabbatical
09/2023 – present
I decided it was time for a change and quit my Proton job. I needed a longer time off from work, and I took it.
After a coding-less period, I developed llama explain and then started working on another project: using deep learning algorithms to identify and authorise users based on their typing patterns (keystroke dynamics). Even though this has not resulted in a commercial product (more on this here), I still learnt a lot (technical skills, like siamese networks and triplet loss as well as non-technical skills, like the power of thinking on paper). It was good to take some time off from the professional world and work on technologies I wouldn’t get a chance to work on otherwise.
Senior Android Engineer, Proton
08/2021-08/2023, remote
Worked on the Proton Mail Android app (5mln+ downloads in Google Play Store; Proton recently reached 100mln accounts across all products and platforms), as a senior Android engineer on a team of 6 Android developers.
The tech stack includes Jetpack Compose, Kotlin coroutines, Hilt, and Dropbox store, among others. All new code was developed in Kotlin, following the clean architecture and unidirectional data flow.
I got to work on some interesting problems during my time at Proton and was involved in maintaining the legacy app, full of intractable data-consistency-related bugs, as well as in the complete app rewrite from the ground up. This included designing the app’s architecture from scratch (while trying to avoid the same problems the old app struggled with).
Senior Android Engineer, Xing
07/2017 – 12/2020, Hamburg, Germany
01/2021 – 08/2021, remote
Worked on the main Xing android app (1mln+ downloads in Google Play Store, 20mln+ users on all platforms) as a member of an agile, cross-functional team, responsible for everything related to building and maintaining user network (contacts, contact requests, invitations, user recommendations, etc.).
Xing app followed the clean architecture, with MVP being the most widely applied pattern, while all new code was written in Kotlin. The tech stack included RxJava 2 and Dagger 2, among other state-of-the-art (at the time) libraries. The app was being developed and maintained actively by ~30 Android developers.
It was the first Android application of that scale that I worked on, both in terms of the codebase size as well as user base. I worked with a bunch of talented people who held the codebase to an incredibly high standard of quality. My time there also taught me how to navigate the complexities of a diverse, distributed organisation of that scale.
Android/Back End Engineer, Fraunhofer Portugal
08/2014 – 06/2017, Porto, Portugal
Worked as a software engineer (Android and BE) on several projects and various cross-functional teams, focusing on software for assisted living and citizens of developing countries.
The tech stack I worked on included Java (the dark days before the dawn of Kotlin), PHP, Node.js CouchbaseLite, CouchDB, MongoDB, PostgreSQL, and MySQL.
Each project offered a great degree of freedom to pick the technical direction, including the architecture of the system and the best tech stack for the job. I learnt a lot by being exposed to a wide variety of domains and problems, as well as tools to solve them. At one point, I even supervised and mentored a Master’s degree student through his dissertation.
Android/Full Stack Engineer, satistica
08/2012 – 06/2017, London, United Kingdom/remote
Worked on an online questionnaire system which consisted of a web app, a RESTful API, and an Android client app. It allowed users to extract meaningful data by applying satistica satisfaction evaluation model. Worked as a full-stack and Android engineer as well as a database and VPS administrator.
The tech stack included PHP, MySQL, HTML, jQuery, and Android.
Started working on this project for one of my tutors while completing my BSc at Brunel University. Have worked on it as the only developer on and off for 5 years. Designed and implemented the whole system from scratch on my own. Given my lack of experience at the time, I made a whole bunch of costly mistakes in the process- which, incidentally, also happens to be the best way to learn.
This was my very first commercial programming gig.
education
MSc Advanced Software Engineering, King’s College London
Distinction
09/2012 – 09/2013, London, United Kingdom
The Master’s thesis project: Real-time online voting system developed in Node.js (back when it was hot new tech).
BSc Mobile Computing, Brunel University
1st class honours degree
09/2009 – 06/2012, London, United Kingdom
Bachelor’s thesis project: Euro 2012 Android application with a custom PHP/MySQL backend.
It was the first more complex software system I designed and implemented, and my first experience with Android (Honeycomb, aka Android 3.x, was the latest Android version when I first started working on the project).