Merkurev Dmitrii
7 years of experience in a software engineering and technical projects leadership
Employment history
August 2021 — Present — Senior Software Engineer (Android), Google, London, UK
Key contributions:
- Integration of the QM215 chipset into Google's internal repository to reuse the company's infrastructure to deliver high-quality low-end devices. The Jio Phone Next, which is a partnership device between Google and Jio was developed based on work we've done.
- Backport EROFS to the 4.19 Kernel to mitigate the lack of storage and performance problems due to the slow EMMC storage. The project is continued by the Android GO team to use EROFS for mainline modules.
- Internal publication on using ftrace to identify opportunities to use compression filesystem without introducing degradation on small random reads. The project is continued by the Android System team to enable EROFS for the whole Android ecosystem.
- Collaborate with the Android System Team to integrate BPF into the FUSE filesystem to reduce the performance penalty FUSE is introducing. Was able to reduce the performance penalty from 10% to 0% compare to the RAW filesystem by fixing the Kernel FUSE BPF implementation.
- Support Linux and Fuchsia boot on Google Cuttlefish tooling and unify the boot flow across different OS using u-boot + EFI approach.
- Introduce fastboot support to the Cuttlefish for the whole Android ecosystem.
Open-source contributions:
- Android framework
- Android Linux Kernel (FUSE BPF)
- Cuttlefish
- Fastboot
- Crosvm
https://android-review.googlesource.com/q/owner:dimorinny%2540google.com
Technical stack: Android, AOSP, Linux Kernel, U-boot, C/C++, Java, Python
September 2019 — August 2021 — Lead Software Engineer (Android Framework), Yandex, Moscow, Russia
Yandex.Auto is a one-of-a-kind infotainment platform for vehicles that integrates Yandex services, such as navigation, music, radio, and a browser, with a high degree of vehicle integration, delivering an exceptional driver experience. It is integrated into the largest car-sharing service in Europe, with over 16,000 vehicles just in Moscow. In addition to car-sharing, Yandex.Auto has been integrated into various car manufacturers in Russia, including Avtovaz, Mitsubishi, Geely, and others.
Key contributions:
- Led the team of 4 Software Engineers responsible for providing system experience (such as audio, Bluetooth, integration with the vehicle, and other platform-related stuff) for Avtovaz (Renault) integration. Our efforts have resulted in the successful development and release of infotainment systems for three distinct Avtovaz vehicle models, bringing financial stability to the team, which opened up opportunities for further integrations.
- Participate in inter companies level meetings with vehicle and hardware manufacturers to discuss future integrations, defining scope and enstablish deadlines
- Came up with infrastructure initiatives. I led an internal infrastructure and development experience team that successfully achieved the goal of setting up automation processes of building firmware and release chains for our crucial projects. As a result, we provided automation tools that our QA team is still using for building and releasing firmware instead of manual processes which saved a huge amout of QA and development resources.
Technical stack: Android, AOSP, Java, Kotlin, C++, Ansible, Docker, Bash, SELinux
May 2018 — September 2019 — Senior Software Engineer (Infrastructure), Avito, Moscow, Russia
June 2017 — May 2018 — Software Engineer (Infrastructure), Avito, Moscow, Russia
Our infrastructure team has been responsible for providing the best experience for our product teams. Also, we were the main participants of company level OCR of eliminating manual testing processes and speed up release cycles by providing automatization tooling.
- Tight communication with different company units. Most commonly I have a shared area with product, hardware, QA, network teams
- Make and support CI pipelines
- Were fully responsible for tests running infrastructure
- Providing tooling for QA team (development and maintenance of the company's shared library for UI Android testing by Google Espresso)
- Make and support performance measurement instruments for mobile applications
- Developing Bitbucket plugins for company needs
As a result, we have grown from zero to thousands of integration tests and improved time-to-market from several months to per-week releases. Our team organized internal meetups with infrastructure teams from other Russian companies where I was happy to share our approaches and experience in this area. Finally, we open-sourced all products we developed with the documentation for transparency and tech PR purposes:
https://github.com/avito-tech/avito-android
Technical stack: Android, Kotlin, Java, Python, Gradle, Docker, Kubernetes, Bash
July 2016 — June 2017 — Android Engineer, Avito, Moscow, Russia
Developing an Android application. Used Kotlin programming language and reactive approach for building all application layers implemented.
- Participate in developing application architecture
- Automation and developer experience tools
- Tight communication with design and backend teams
- Developing and maintaining shared application components
Technical stack: Android, Kotlin, RxJava, Docker, Bash
January — May 2015 — Android Engineer, Mail.Ru Group, Moscow
Developing an Android application that allows effective employees' communication, planning of duties and tasks, approving or rejecting company cost items. Also, it provides information about employees, their devices,
etc.
- Implementation of the system to store client certificates
- Customization of application for large amounts of data
- Providing safe storage of valuable data for the company
Technical stack: Android, Java, RxJava
Public activities
- Android CI: Impact Analysis (Russian) (link)
https://youtu.be/EBO2S9qcp0s?t=6946
- Automation testing for mobile applications public discussion for Podlodka Podcast (Russian)