Merab Tato Kutalia
GDE for Android | GDG Tbilisi Organizer
Software Engineer specializing in Android. He is a fan of all things in software engineering. Out of work, Merab maintains an active podcast about work ethics and career growth and writes tech blogs. He is a GDG organizer and speaker at international conferences (DroidCon, DevFest, OWASP) and beyond. Community builder. Does 1:1 mentoring. Alongside his technological pursuits, he is an amateur cyclist and runner.
https://www.droidcon.com/media-detail?video=491027100 - droidcon APAC 2020
https://youtu.be/LLtzvEDqedM - DevFest Tbilisi/Vienna/Yerevan 2019
https://youtu.be/9DVg2XymmSI?t=375 - Nullcon 2021
https://youtu.be/KUzIGjxoMO0 - Software Development Webinar 2020
https://youtu.be/LwEPvOx-2fU - OWASP Tbilisi 2020
Area of Expertise
Adopting Huawei Mobile Services
Common questions - what, how, why?
What are Huawei Mobile Services(HMS) and Huawei App Gallery? How to apply to our application in a most efficient way. Reviewing alternative libraries of Google Play services from HMS. Why do we need to support another platform as a business and what are the best ways to overcome this difficulty? Is it HMS or platform-agnostic 3rd party services like OpenStreetMaps? This talk briefly covers all of these topics
Audience: Mid-level developers and up
Manage Gradle version conflicts with resolution strategy
This talk aims to understand how Gradle dependency resolution works. What happens when Gradle finds conflict and what type of conflicts Gradle can define. How to resolve accidental dependency version upgrades and prevent them in the future. Bonus part: Google provides StrictVersionMatcher Gradle plugin for Firebase and Google Play services to prevent version conflicts for its libraries.
Target audience: MIddle and upper-level Android engineers.
Session duration: 25mins
Android UI Testing & Challenges
Review of Android's UI testing framework - Espresso. How software developers can utilize it and test automation engineers as well. Scaling from the laptop to the CI environment and sharding. All of these require solid tooling support. and stability. Demonstrating the power of Android Studio and test recorder. In the end, reviewing the challenges - topics that are hard by default to test on the Android platform for test automation and manual QA.
The talk is intended for beginner and middle Android devs and test automation engineers
Reverse and Inject
Android reverse engineering & malware injection. As Android engineers, we often like tinkering with the platform and for us, it is much easier to recognize some patterns while analyzing malicious code which gives us a huge advantage. This talk aims to explore the basics of reverse engineering, trending tools. How to decompile, disassemble the application, how to find malicious code snippets, and what are the possible pitfalls. Difference between static and dynamic analysis. A little bit about Smali and DEX compilers. We will have 2 live demos. First: show how to reverse engineer an application and second: at the end of the session, we will decompile APK, plant malicious code, repackage again and install it on the device to test it for educational purposes. Also will provide some introductory info on what is the Catch The Flag challenges and how we can practice.
Advanced talk, 30 and more minutes. Available demos. 45 minutes perfect
droidcon APAC - https://www.droidcon.com/media-detail?video=491027100
OWASP Tbilisi 2020 - https://youtu.be/LwEPvOx-2fU (Georgian)
Defensive Programming x FinTech
Defend against the impossible, because the impossible will happen!
How to avoid common errors in the code and how to master this discipline. Will try to show good and bad examples achieving safe and cleaner code. But there is another extreme part of this: overly defensive code, too much defensive code, I'm going to underline this thin line between defensive and extremely defensive code. Bonus: From my experience, most FinTech Android applications nowadays do it wrong when it comes to money so we will try to fix it
DevFest Tbilisi 2019, DevFest Vienna 2019, DevFest Yerevan 2019 - https://youtu.be/LLtzvEDqedM
Mobile DevOps is a modern approach that enables seamless application delivery from testing to production. Modern agile teams need fast iterations and short feedback loops and CI/CD is what technology enables that. The role of the mobile developer has changed, from only being able to code to be able to build and provide an engineering solution. Now developers are required to have DevOps skills in their skillset, that way it makes life easier not only for QA but for the whole team, deploying and delivering applications with a breeze.
ExactPro - Software Development Webinar - https://youtu.be/KUzIGjxoMO0?t=3483
Mobile Teams (Should) Move Fast
This talk highlights the processes that mobile teams need to have if they want to ship apps faster. How to sustain a high cadence of rollouts and yet stay productive as a team member. Working with a large codebase requires correct tooling and discipline which some teams lack. From lint tools to CI to security measures and to developer happiness this talk highlights the main aspects of them. How individual contributors can remove bottlenecks, how to analyze errors, forming shared code style, work with git hooks, tuning IDE, and creating a working framework for the teams.
target audience: from beginner to intermediate.
duration: 30-40 minutes
Make Codebases Secure with OWASP
What are the guidelines we have to follow in order to bring more security to our apps and users? What is OWASP? What is OWASP Top 10, OWASP MSTG? What tools can we use to monitor and prevent issues even before we ship the application? How to apply those practices to CI/CD pipeline. All these questions will be covered in this talk
Migrate to Gradle version catalog and convention plugins
Gradle always has been hard to grasp because of multiple ways to do the same thing. With the project scaling and requirements increasing it is crucial to scale our build logic and support developers across the teams. This talk will cover how to migrate to Gradle centralized version catalogs and share some of the build logic as convention plugins. This method is adopted by AndroidX project, Now In Android, and many more.
Validate your Manifest
How to utilize Android Lint to validate AndroidManifest.xml for new namespace entries and many more. This talk aims to walk through the process, of creating the lint rule as a library and writing the unit tests as well. Extend the feature to the Kotlin codebase. Add CI checks and IDE support. Add auto-fix support and cover with unit tests. all in one session.
This could be a workshop too.
Merab Tato Kutalia
GDE for Android | GDG Tbilisi Organizer