# Stories by Yonatan V. Levin on Medium

Stories by Yonatan (Yoni) Levin on Medium

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Using Gemini CLI as an AI Coding Copilot

DevFeed: [Using Gemini CLI as an AI Coding Copilot](<https://devfeed.tech/articles/my-co-pilot-is-an-ai-agent-and-it-s-a-game-changer-26126.md>)

Original publisher: [Read original article](<https://medium.com/@yonatanvlevin/my-co-pilot-is-an-ai-agent-and-its-a-game-changer-c1118bb90245?source=rss-8735065c2497------2>)

Author: Yonatan (Yoni) Levin

Published: 2025-06-25T15:27:03Z

Content type: opinion

Language: en

Sources: [Stories by Yonatan V. Levin on Medium](<https://devfeed.tech/sources/stories-by-yonatan-v-levin-on-medium.md>)

Topics: [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [genai](<https://devfeed.tech/topics/genai.md>)

Tags: [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-development](<https://devfeed.tech/tags/ai-development.md>), [co-pilot](<https://devfeed.tech/tags/co-pilot.md>), [devtools](<https://devfeed.tech/tags/devtools.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [gemini-cli](<https://devfeed.tech/tags/gemini-cli.md>), [genai](<https://devfeed.tech/tags/genai.md>), [llm](<https://devfeed.tech/tags/llm.md>)

### AI overview

The author introduces an opinion piece about using Gemini CLI for software development, drawing on work at a startup that uses LLMs and other AI technologies.

### Source excerpt

After a long break and a lot of life happening all at once, I'm back. Why? Because so much exciting stuff has happened that I just need to spit it out. It's going to be a long article, so prepare a good cup of coffee & a couple of cookies. Today, we're diving deep into something that I believe is the future of how we build software: the Gemini CLI. At least, until the next amazing thing comes along and reshapes our industry all over again. :) The Backstory: A New Mission and a Brick Wall For those who don't know me, my name is Yonatan, but friends call me Yoni. My career has been a wild ride: from low-level hardware development to leading Android teams, then switching to the backend to build the Public API for monday.com, and finally, leading AI development with the explosion of GenAI. Someone once joked that my career is just a series of abbreviations: Android -> API -> AI. About a year ago, after an incredible six-year journey, I left monday.com. After taking some time to breathe, I teamed up with two amazing people, Limor and Eyal, to start a new adventure: a startup called Wisdom. Our mission is to help people become wiser and happier by transforming how they interact with the profound knowledge tucked away in self-development books. We want to transform passive reading into an active, life-changing experience, bridging the gap between knowing something and truly living it. A few weeks ago, we launched our first closed alpha version with a chosen book authors. Our tech stack is a beast: various LLMs, Knowledge Graphs, audio models, and a ton of custom heuristics. And, of course, the standard stuff -- Node.js servers and React for our websites. We started, as most do, with a prototype. Something to show investors and our first potential customers. But I hit a brick wall. Hard. Despite my vast experience, my front-end knowledge was practically zero. I knew some basic HTML and CSS, but that was it. How was I, a backend and AI guy, supposed to build the face of our pro

## A Developer's Journey To the AI and GraphQL Galaxy

DevFeed: [A Developer's Journey To the AI and GraphQL Galaxy](<https://devfeed.tech/articles/a-developer-s-journey-to-the-ai-and-graphql-galaxy-26123.md>)

Original publisher: [Read original article](<https://medium.com/@yonatanvlevin/a-developers-journey-to-the-ai-and-graphql-galaxy-3e8e7fd41928?source=rss-8735065c2497------2>)

Author: Yonatan (Yoni) Levin

Published: 2023-10-03T03:50:29Z

Content type: opinion

Language: en

Sources: [Stories by Yonatan V. Levin on Medium](<https://devfeed.tech/sources/stories-by-yonatan-v-levin-on-medium.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [API](<https://devfeed.tech/topics/api.md>), [AI Chat](<https://devfeed.tech/topics/ai-chat.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [api](<https://devfeed.tech/tags/api.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [llm](<https://devfeed.tech/tags/llm.md>), [makersuite](<https://devfeed.tech/tags/makersuite.md>), [prompt-engineering](<https://devfeed.tech/tags/prompt-engineering.md>), [vector-database](<https://devfeed.tech/tags/vector-database.md>)

### AI overview

The article describes a personal exploration of using generative AI and large language models to generate GraphQL queries and mutations for the monday.com API. It explains the challenge of producing valid API-specific GraphQL and discusses an Implementation Consultant concept that creates tailored boards, while noting that the explored solution is not production-ready.

### Source excerpt

It's all starts with simple drawingsThe article that helps tame an LLM to produce a GraphQL query for a specific API Generative AI has stirred debates. While some might regard it as a fleeting trend, I view it as a game-changer. AI and Large Language Models (LLM) combined give way to AI-powered chatbots that hold great potential for improving operations and customer services. Such AI bots are designed to communicate with an entire system via an API. Sounds okay... unless your API is built using GraphQL. What's the trick, you ask? GraphQL stands out as a potent query language due to its flexibility, versatility, and extensibility. Getting LLM to produce a perfect and valid GraphQL query for a specific API is challenging. Some even say it's impossible... At monday.com, innovation is our mantra. We set off on the AI journey some time ago, and very soon I realized that mastering AI feels like discovering a new galaxy far, far away -- there are no ready answers, so you need to trust you gut feeling and push the boundaries. And this thrill of making the impossible possible makes my determination surge like the Force within a Jedi. We started at monday.com with foundational tasks such as "Summary Update" and "Generate tasks". These tasks, powered by basic prompts, enabled app developers to create first bespoke AI solutions within the monday.com framework. https://medium.com/media/5f9f975664482bc1fa9a03a95b7481bf/hrefhttps://medium.com/media/2236f6215c3b2977349c18c538b95ca1/href Our ambition grew when we decided to create the Implementation Consultant. Think of it as a "droid" that estimates monday.com users' needs and offers bespoke boards to them. Once a user gives the go-ahead, this "droid" seamlessly crafts a GraphQL mutation over the monday.com API and creates the individually tailored solution. https://medium.com/media/36cb4871ab825aaf89514e37628b4c18/href However, using our LLM to generate these GraphQL API calls was like navigating the asteroid field -- so tricky! Our qui

## Juggling tech & product: Meet monday.com Mobile Team

DevFeed: [Juggling tech & product: Meet monday.com Mobile Team](<https://devfeed.tech/articles/juggling-tech-product-meet-monday-com-mobile-team-26125.md>)

Original publisher: [Read original article](<https://medium.com/@yonatanvlevin/juggling-tech-product-meet-monday-com-mobile-team-26d39f0e650a?source=rss-8735065c2497------2>)

Author: Yonatan (Yoni) Levin

Published: 2019-12-02T08:09:05Z

Content type: article

Language: en

Sources: [Stories by Yonatan V. Levin on Medium](<https://devfeed.tech/sources/stories-by-yonatan-v-levin-on-medium.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Android](<https://devfeed.tech/topics/android.md>), [Usability](<https://devfeed.tech/topics/usability.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [Boilerplate](<https://devfeed.tech/topics/boilerplate.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [cache](<https://devfeed.tech/tags/cache.md>), [code](<https://devfeed.tech/tags/code.md>), [design](<https://devfeed.tech/tags/design.md>), [developer](<https://devfeed.tech/tags/developer.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [library](<https://devfeed.tech/tags/library.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [usability](<https://devfeed.tech/tags/usability.md>)

### AI overview

This developer article describes monday.com's mobile team and its work adapting the web product for mobile. It covers a custom Android LayoutManager for board views, infrastructure for fast-loading thousands of items, and the use of Kotlin Coroutines, reactive programming, an in-memory cache, and templates for generating boilerplate code.

### Source excerpt

How the mobile can juggle the best product and fascinating tech? It's all about the challenge and people who pursue it: How can you convert an amazing web experience of Monday.com to a mobile app and keep the same slickness, great usability, and design craftsmanship? How can you make a small device your users' best friend and productivity tool? At monday.com, we believe that engineers are the key players in making an outstanding product. They know how to find the best solution for the problem. They know what works best for the platform and the tradeoffs of different approaches. To make the right decisions, each developer works closely with a Product, Business Analyst, and Designer. The true full stacker. In our team, each and every member has an opportunity to make an impact. Android We rebuilt the LayoutManager and called it CollectionLayoutManager. Why? Any Senior Android developer knows the pain of supporting 14 K devices, dealing with immature framework and APIs, and many other "specialties". Our team is no different, and we are not compromising on quality and usability. When needed -- we don't hesitate to rebuild the framework components to support our needs. Sahar, who is a young father of Dor, has recently completely rewritten the LayoutManager for our board view. Thanks to that we now enjoy smooth scrolling, sticky headers, collapsing columns, footers and other functionality which the standard GridLayoutManager couldn't give us. The reworked board is used 38% more than the old one. Board View Now, Sahar wants to make this custom LayoutManager an open-source library and contribute back to the community. Custom views are not enough though. We need a solid infrastructure that can support large amounts of data being displayed in this Board View. Ronen, who lives in Ashdod and is raising three kids, took the mission of building a robust infrastructure to support fast-loading of thousands of items in Board View and also of making this infrastructure easy to change

## Android Academy -- Global Yearly Summary, 2019

DevFeed: [Android Academy -- Global Yearly Summary, 2019](<https://devfeed.tech/articles/android-academy-global-yearly-summary-2019-26124.md>)

Original publisher: [Read original article](<https://medium.com/@yonatanvlevin/android-academy-global-yearly-summary-2019-c84aba5c3c7e?source=rss-8735065c2497------2>)

Author: Yonatan (Yoni) Levin

Published: 2019-11-02T18:22:44Z

Content type: opinion

Language: en

Sources: [Stories by Yonatan V. Levin on Medium](<https://devfeed.tech/sources/stories-by-yonatan-v-levin-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Hackathon](<https://devfeed.tech/topics/hackathon.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>), [hosting](<https://devfeed.tech/topics/hosting.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [community](<https://devfeed.tech/tags/community.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [google](<https://devfeed.tech/tags/google.md>), [hackathon](<https://devfeed.tech/tags/hackathon.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [israel](<https://devfeed.tech/tags/israel.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [news](<https://devfeed.tech/tags/news.md>)

### AI overview

Android Academy's 2018-2019 global yearly summary reports 90 meetups, around 4,000 developers educated for free, 59 people changing jobs after courses, and three new hosting cities. It also details activities and participation across Tel Aviv, Minsk, Moscow, and Saint Petersburg.

### Source excerpt

Android Academy -- Global Yearly Summary, 2019 A new academic year is about to begin making us look back and celebrate our previous year's achievements and set new goals. We're happy to announce that this year our community became global -- it expanded to Eastern Europe and attracted 1750 developers in new cities. And it's just the beginning. Many people asking me what is happening with Android Academy and on what me and my friends spending time. So here it is -- raw impact in numbers: Tel Aviv counts 2100 members, Minsk counts 670 members, Moscow -- over 840 members, and Saint Petersburg -- over 240 members Android Academy (from September to September) 2018-2019 in numbers: 90 meetups Around 4,000 developers educated for free 59 people changed jobs right after the course 3 new hosting cities Each city is a chapter in the Android Academy's life -- each one tells its own story and has its own characters, but all the chapters intertwine to deliver the message of our global community. We encourage people who share our passion for Android to learn and collaborate. New locations open doors for new people, fresh knowledge, and drive. Tel Aviv: 35 meetups, the Fundamentals course, and the Advanced course The Design course, the first one in a history 4 meetups with special guests from Google: Florina Muntenescu, Chet Hasse, Wojtek Kaliciński, Amir Hardon We covered topics like Android, Kotlin, Flutter, Material Design More than 40 mentors took our mentorship course 60% of the Fundamentals students (160 people) made it to the Hackathon Diverse community -- almost 31% of our community members are women Minsk: 19 meetups, the Fundamentals course, and the Advanced course Special Post I/O Event with over 160 developers attending More than 15 mentors took the mentorship course Media coverage: https://dev.by/news/android-academy-minsk 6 out of 8 speakers at Mobile Conference RSConf.by in August, 2019 were from Android Academy Moscow. Moscow: Our 14 meetups swarmed with people -- an averag

## Android CPU, Compilers, D8 & R8

DevFeed: [Android CPU, Compilers, D8 & R8](<https://devfeed.tech/articles/android-cpu-compilers-d8-r8-26131.md>)

Original publisher: [Read original article](<https://proandroiddev.com/android-cpu-compilers-d8-r8-a3aa2bfbc109?source=rss-8735065c2497------2>)

Author: Yonatan (Yoni) Levin

Published: 2019-03-18T06:27:24Z

Content type: tutorial

Language: en

Sources: [Stories by Yonatan V. Levin on Medium](<https://devfeed.tech/sources/stories-by-yonatan-v-levin-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [R8](<https://devfeed.tech/topics/r8.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [C](<https://devfeed.tech/topics/c.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Arm](<https://devfeed.tech/topics/arm.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Qualcomm](<https://devfeed.tech/topics/qualcomm.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-architecture](<https://devfeed.tech/tags/android-architecture.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [arm](<https://devfeed.tech/tags/arm.md>), [bytecode](<https://devfeed.tech/tags/bytecode.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [development](<https://devfeed.tech/tags/development.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [jit](<https://devfeed.tech/tags/jit.md>), [qualcomm](<https://devfeed.tech/tags/qualcomm.md>), [r8](<https://devfeed.tech/tags/r8.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

A tutorial introducing Android CPUs, the JVM, bytecode, the Android build system, AOT and JIT compilation, and Google's R8 compiler improvements. It also discusses CPU architectures and the challenges of compiling native code for different devices.

### Source excerpt

Imagine you have an important space mission ahead. You need a spacecraft that won't get you into much trouble on the way. You may opt in a regular YT-1300 freighter. It's popular and you know the basics of its operation. However, you've always dreamed of maneuvering like a pro. You are ready to practice a lot and learn various stuff. Millenium Falcon is what you actually want. But this upgraded spaceship will require that you master it like Han Solo! Lately, I've been inspired by the Google effort to improve compilers, such as the development of R8 or speeding up the Gradle builds. So I guess this is the right time to dig in and talk to you about those improvements. But first, let me guide you through the basics. When you reach the end of this article: You'll know about JVM and its relation to Android. You'll be able to read Bytecode. You'll get an idea of the Android Build System. You'll learn what AOT and JIT stand for and how they are connected to the new R8 compiler. And also a little bit about Star Wars :) So grab a large cup of good coffee, the lightsaber, cookies, and prepare for a read :) CPU & JVM In every device, there is a CPU. It's a tiny thing responsible for every single calculation in your app. In the beginning, the CPU could tackle only with basic math operations such as addition, subtraction, division, and multiplication. Over the years it has evolved into a complex mechanism that can be tailored for specific needs like Image Processing, Audio Decoding with a smart caching mechanism. The most known CPU is Snapdragon by Qualcomm. But there are others. Some of them use the same CPU architecture as Qualcomm, while some don't. And here I say 'Welcome to hell.' If you've ever developed C++/C, you know that your native code should be compiled to every supported CPU architecture: ARM, Arm64, x86, x64, MIPS. As an Android developer, you have to support CPU architectures for all the variety of devices. Basically, this means multiplying your .so files by the

## A CTO's Personal Journey Through Startup Leadership and Development

DevFeed: [A CTO's Personal Journey Through Startup Leadership and Development](<https://devfeed.tech/articles/the-true-story-the-life-of-a-cto-26130.md>)

Original publisher: [Read original article](<https://medium.com/hackernoon/the-true-story-the-life-of-a-cto-a5792e90c836?source=rss-8735065c2497------2>)

Author: Yonatan (Yoni) Levin

Published: 2018-08-28T19:06:14Z

Content type: opinion

Language: en

Sources: [Stories by Yonatan V. Levin on Medium](<https://devfeed.tech/sources/stories-by-yonatan-v-levin-on-medium.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [cto](<https://devfeed.tech/tags/cto.md>), [development](<https://devfeed.tech/tags/development.md>), [entrepreneurship](<https://devfeed.tech/tags/entrepreneurship.md>), [journey](<https://devfeed.tech/tags/journey.md>), [personal-experience](<https://devfeed.tech/tags/personal-experience.md>), [product-management](<https://devfeed.tech/tags/product-management.md>), [startup](<https://devfeed.tech/tags/startup.md>), [startups](<https://devfeed.tech/tags/startups.md>)

### AI overview

The author reflects on becoming a CTO, describing how the role differs between startups and large companies. The account covers responsibilities spanning product, technology, management, development, investors, and meetings, along with the author's experience moving from Android development into backend work and startup leadership.

### Source excerpt

Around three years ago, a day I will never forget, a day that changed the course of my life. Marked the beginning of both my personal life (the day that my dear daughter was born) as well the day that the legendary entrepreneur and investor -- Eyal Gura called me and asked me to join the visionary team at KolGene together with Dan Faszczyk and build a revolutionary idea -- a marketplace for genetic tests which turnout to be a platform to managing all genetic tests of the hospital. And the rest is the history :) KolGene's magic This post will not focus on how we raised our first seed round (but we did!) Or about how we made a successful pivot and acquired our first customers (hard work!) and all of the other fuck-ups we encountered along the way. But rather, about my personal journey to becoming and being a CTO. I was recently invited to talk with Zell students about what it means being a CTO in a startup world. While preparing for the presentation I became inspired to share and write this blog post. Not the same CTO The first thing you need to understand is that a CTO position ranges from company to company (Like every position!). For example, a CTO of a small startup is very different to a CTO of large corporate company. The first requires you to do everything -- from the product, tech, managing and of course developing all by yourself. While simultaneously acquire investors and attend meetings. While a CTO in a large corporate company is far more tech only oriented, where your main responsibilities are to find out the right tech stack for a company product and explain it to the rest of the companies stakeholders. Prelude: Personal experience I was lucky enough to be able to observe various CTO's in different companies embarking on different stages: from corporate to fast-growing startups like Gett. But, since this is mostly about my journey let's talk about my personal journey to becoming a CTO. For years I was "the" go-to guy, the guy that everyone looked to for sol

## Android Background Execution, Memory Management, and WorkManager

DevFeed: [Android Background Execution, Memory Management, and WorkManager](<https://devfeed.tech/articles/services-the-life-with-without-and-workmanager-26129.md>)

Original publisher: [Read original article](<https://medium.com/google-developer-experts/services-the-life-with-without-and-worker-6933111d62a6?source=rss-8735065c2497------2>)

Author: Yonatan (Yoni) Levin

Published: 2018-05-10T17:53:59Z

Content type: tutorial

Language: en

Sources: [Stories by Yonatan V. Levin on Medium](<https://devfeed.tech/sources/stories-by-yonatan-v-levin-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [Process](<https://devfeed.tech/topics/process.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux-kernel](<https://devfeed.tech/tags/linux-kernel.md>), [management](<https://devfeed.tech/tags/management.md>), [process](<https://devfeed.tech/tags/process.md>)

### AI overview

This tutorial introduces Android background execution and explains the memory-management concepts behind it. It covers Android's Linux-based kernel, the absence of swap space, process visibility, the OOM killer, existing background solutions, and WorkManager.

### Source excerpt

With recent Android releases dealing with background, it has become more complicated than ever. Much like the Star Wars plot, it has become more and more intertwined And so, Google has released WorkManager as part of JetPack -- to help us to deal with such a background. Before learning what WorkManager is -- it's essential to understand why we need it and what was a reasons behind building it. The developers who knows what happens under the hood of the components/libraries and understand why they use it -- is by far a better developers. Better developer It's going to be a long article, so prepare a good cup of coffee & a couple of cookies. It build in 3 parts: Part #1 -- Memory Basics Part #2 -- Existing Background Solutions Part #3 -- WorkManager Firstly, before starting with all background-ish things -- we need to understand some of the basics of Android processing memory management. And this is will be our first part: Part 1: Android Memory 101 A long, long time ago, in a galaxy far far away -- Android kernel was first developed it and it was based on Linux-Kernel. The main difference between Android and all other Linux-Kernel based systems is that Android does not have a thing called "Swap space." Swap space in Linux is used when the amount of physical memory (RAM) is full. If the system needs more memory resources and the RAM is full, inactive pages in memory are moved to the swap space. While swap space can help machines with a small amount of RAM, it should not be considered a replacement for more RAM. Swap space is located on hard drives, which have a slower access time than physical memory In Android, there is no such a thing as a "Swap space." When the system is running out of memory, it's using OOM Killer to save a galaxy. Out Of Memory Killer The guy's goal is to free up memory by killing the processes based on their "visibility state" and amount of memory consumed. Every process gave its oom_adj score by Activity Manager. It's a combination of application state

## Android Application Security: Architecture Decisions and the Limits of Protection

DevFeed: [Android Application Security: Architecture Decisions and the Limits of Protection](<https://devfeed.tech/articles/bang-bang-you-have-been-hacked-26132.md>)

Original publisher: [Read original article](<https://proandroiddev.com/bang-bang-you-have-been-hacked-df82db3f2001?source=rss-8735065c2497------2>)

Author: Yonatan (Yoni) Levin

Published: 2018-01-03T13:29:33Z

Content type: article

Language: en

Sources: [Stories by Yonatan V. Levin on Medium](<https://devfeed.tech/sources/stories-by-yonatan-v-levin-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Application Security](<https://devfeed.tech/topics/application-security.md>), [Security](<https://devfeed.tech/topics/security.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [application-security](<https://devfeed.tech/tags/application-security.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [code](<https://devfeed.tech/tags/code.md>), [development](<https://devfeed.tech/tags/development.md>), [security](<https://devfeed.tech/tags/security.md>), [startup](<https://devfeed.tech/tags/startup.md>)

### AI overview

The author describes how an Android startup responded after its application was reverse-engineered, hacked, and distributed. The article shares architecture decisions for application security and argues that no Android application is completely unbreakable, so security requires ongoing teamwork across development and product roles.

### Source excerpt

Ah the sweet, enticing world of Android. My first true love, always beckoning me, whispering seductively in my ear: "I have more than 1 Billion active users" "My revenue opportunities are endless". I am not the first to be seduced by the heady romance that Android offers, nor will I be the last. I'm sure many of you reading this have had a whirlwind romance of your own. It tends to go a little something like this: You decide to build your own app. You plan it, design it, research extensively, establish a crack team of A players to build the first version with you. You even ask your mom for a loan. You know you're good for it because this all just feels so right. As the first version of your app comes out, your heart flutters wildly with every download. As more and more users integrate your app into their daily routine, you are in the full throes of the honeymoon period, head over heels in love with the magical world you created. Can life get any better than this? In love This is exactly what happened to me while working on one of my startups. We had an amazing application, with millions of users using our app on a daily basis. We invested a lot in our applications and had a million lines of code serving our customers. It was beautiful. We were in love. And then it hit us. Our app, in which we'd invested so many days, months, and years was brutally reversed engineered, hacked and distributed. We were left bruised, shocked and heartbroken as our honeymoon period evaporated into the harsh reality of the effort it takes to make it work long-term with your one true love. In this article I will share the architecture decisions we made in order to fight back against the brutal hackers who tried to take our true love away from us. Disclaimer: I'm not security expert. It's my journey, and I decided to share it. The first thing you need to understand when thinking about your application security: There is no such a thing as a bulletproof Android application. Everything is bre