Introduction
My name is Artem Gilmudinov. 31 years old. Currently live in London.
Kazan State University. September 2009 - June 2014
My speciality is called "Automated data processing and control systems".
My thesis was about email classification algorithms. The goal was to compare k-NN, SVM, Naive Bayes algorithms and find the best of them to solve email classification problem.
Also I fell in love with competitive programming spending many hours on Codeforces, TopCoder, etc. My Codeforces profile.
Technology LLC. July 2014 - June 2016
The company developes software for taxi aggregator Maxim.
At the start I was working on an internal GIS system's web interface and backend.
Technologies used:
- JS
- Backbone.js
- Leaflet
- Node.js
- Java
- Spring
- GraphHopper
- PostgreSQL
- Jenkins
Technologies used:
- Java
- Android SDK
Yandex Mobile Development School. July 2016 - September 2016
After Technology LLC I was participating at Yandex Mobile Development School.
Here I first tried such technologies like RxJava, Dagger2, Teamcity.
Yandex LLC. November 2016 - July 2021
I worked at Yandex on Yandex.Maps Android app.
The things I did at Yandex can be divided mostly in three parts: UI tasks, infrastructure tasks, app perfomance.
The biggest UI tasks I worked on:
- Rewriting organization card from ScrollView to RecyclerView
- Entrances
- Reviews
- Figma export tool. The tool automates importing colors, images, text styles from Figma to Android project.
- Realtime monitorings. Monitorings allow us to receive realtime alerts when there are a lot of crashes, JSON parsing errors, HTTP errors, etc.
- Optimizing build time. Splitting project in Gradle modules. Applying latest AGP features.
- Optimizing GPS usage.
- Optimizing Network usage
- Optimizing app startup time
- Java
- Kotlin
- Android SDK
- Dagger2
- RxJava
- OkHttp
- Retrofit
- Moshi
- Gradle
- Node.js
- TypeScript
- Teamcity
Google UK. January 2022 - now
At the moment I work at Google, London, UK as an Android software engineer.
The team I work at is responsible for the infrastructure part of an Android application called Android System Intelligence.
The application provides set of features powered by ML with a private on-device data processing.
For example subtitles for videos, recognizing text on screenshots, recognizing music, etc.
Our team does releases, looks after the system health and provides the core functionality for the application.
My responsibilities include:
- Stability of the application. This includes tracking CPU / memory / battery / crashes / ANRs regressions / bugs and fixing them.
- Automatic performance testing. The main problem of the project when I joined was that the regressions were caught during releases in production. So we managed to setup automatic performance testing which cover 80% of our features and now it is much easier to catch the regressions before they get to users.
- Exploring new ways of improving our application's health. Like reducing the amount of OutOfMemory exceptions by adding an additional layer of Exceptions to suspicious places.
- Java
- Kotlin
- Android SDK
- Dagger2
- Bazel
Vlesenku
Since August 2018 I am doing my own project called Vlesenku in my spare time. It is about online sport contests (pushups, pullups, squats, etc).
The project includes mobile development, backend development, video processing, databases, web servers.
For this project I picked React Native since I have some JS experience. So it allowed me to write a multiplatform application (both iOS and Android).
Technologies used:
- Node.js
- Typescript
- React Native
- React
- Redux
- RxJS
- FFmpeg
- PostgreSQL
- Nginx
- Redis
- Express