# Ishan Khanna

Google Developer Expert for Android | Articles about Android & Gradle Engineering

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

## AI-generated code is overwhelming reviewers and changing pull request approval practices

DevFeed: [AI-generated code is overwhelming reviewers and changing pull request approval practices](<https://devfeed.tech/articles/can-you-review-this-pr-quickly-25147.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/can-you-review-this-pr-quickly/>)

Author: Ishan Khanna

Published: 2026-08-01T19:45:03Z

Content type: opinion

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [code](<https://devfeed.tech/tags/code.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [code-reviews](<https://devfeed.tech/tags/code-reviews.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [gen-ai](<https://devfeed.tech/tags/gen-ai.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [github](<https://devfeed.tech/tags/github.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [llms](<https://devfeed.tech/tags/llms.md>)

### AI overview

The article argues that AI-generated code is increasing the volume of pull requests beyond what engineers can thoroughly review. It describes slow approvals, ignored code-review-agent comments, and a growing practice of approving changes without close examination.

### Source excerpt

"Can you review this PR quickly?" has become every engineer's most-sent message. On AI-generated code, drowning reviewers, and how Meta's RADAR auto-approves low-risk diffs.

## Verification Is the Next Bottleneck

DevFeed: [Verification Is the Next Bottleneck](<https://devfeed.tech/articles/verification-is-the-next-bottleneck-25160.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/verification-is-the-next-bottleneck/>)

Author: Ishan Khanna

Published: 2026-07-20T05:13:15Z

Content type: opinion

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Code](<https://devfeed.tech/topics/code.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [ios](<https://devfeed.tech/tags/ios.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

The article argues that AI-generated code is increasing development output faster than teams can review and test it, making verification the next bottleneck. Drawing on conversations at Droidcon USA and work at DoorDash, it discusses efforts to automate mobile testing and the challenge of making AI-driven verification fast and deterministic.

### Source excerpt

Engineers spent decades treating testing as someone else's job. Now AI generates code faster than anyone can review it, and verification has become the bottleneck. Notes from Droidcon hallway conversations, and what I'm building at DoorDash to fix it.

## Generate editorial React presentations with one Claude Code prompt

DevFeed: [Generate editorial React presentations with one Claude Code prompt](<https://devfeed.tech/articles/generate-editorial-react-presentations-with-one-claude-code-prompt-25150.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/generate-editorial-react-presentations-with-one-claude-code-prompt/>)

Author: Ishan Khanna

Published: 2026-05-17T08:17:35Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Claude Code](<https://devfeed.tech/topics/claude-code.md>), [React](<https://devfeed.tech/topics/react.md>), [Code](<https://devfeed.tech/topics/code.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [Vite](<https://devfeed.tech/topics/vite.md>)

Tags: [animation](<https://devfeed.tech/tags/animation.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [claude-code](<https://devfeed.tech/tags/claude-code.md>), [code](<https://devfeed.tech/tags/code.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [llm](<https://devfeed.tech/tags/llm.md>), [llms](<https://devfeed.tech/tags/llms.md>), [presentation](<https://devfeed.tech/tags/presentation.md>), [prompt](<https://devfeed.tech/tags/prompt.md>), [prompting](<https://devfeed.tech/tags/prompting.md>), [react](<https://devfeed.tech/tags/react.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [vite](<https://devfeed.tech/tags/vite.md>)

### AI overview

A tutorial presents a detailed Claude Code prompt for generating five-slide React presentations as a single Presentation.jsx file. The prompt fixes the design system and narrative structure while allowing the topic content to change, and the result can be used in a Vite, React, and Tailwind project.

### Source excerpt

If you caught my YouTube Short on generating presentations as React apps with an LLM, this is the prompt I promised. Paste it into Claude Code, edit the CONTENT block at the top, and you get back a single-file Presentation.jsx -- five slides, keyboard nav, animated counters, an

## Building a Local Voice Dictation Device with Raspberry Pi, Whisper, and Ollama

DevFeed: [Building a Local Voice Dictation Device with Raspberry Pi, Whisper, and Ollama](<https://devfeed.tech/articles/i-built-my-own-wisprflow-fully-local-under-50-and-it-types-into-any-computer-25154.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/i-built-my-own-wisprflow-fully-local-under-50-and-it-types-into-any-computer/>)

Author: Ishan Khanna

Published: 2026-03-16T20:55:45Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>), [Whisper](<https://devfeed.tech/topics/whisper.md>), [Ollama](<https://devfeed.tech/topics/ollama.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>), [Python](<https://devfeed.tech/topics/python.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [CircuitPython](<https://devfeed.tech/topics/circuitpython.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [audio](<https://devfeed.tech/tags/audio.md>), [circuitpython](<https://devfeed.tech/tags/circuitpython.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [llms](<https://devfeed.tech/tags/llms.md>), [ollama](<https://devfeed.tech/tags/ollama.md>), [python](<https://devfeed.tech/tags/python.md>), [raspberry-pi](<https://devfeed.tech/tags/raspberry-pi.md>), [transcription](<https://devfeed.tech/tags/transcription.md>), [whisper](<https://devfeed.tech/tags/whisper.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This tutorial describes a local voice dictation device built with a Raspberry Pi Zero W, Raspberry Pi Pico, and an INMP441 microphone. Audio is sent over Wi-Fi to a Windows PC for Whisper transcription and Ollama text cleanup, then returned through a USB keyboard interface via a KVM switch. The author reports about $40 in hardware costs and under 700 milliseconds of end-to-end latency.

### Source excerpt

I spend most of my day talking to AI agents in the terminal. Claude Code, ChatGPT, aider -- you name it. And every time I have to type out a long, detailed prompt explaining what I want refactored, I think: why am I typing this when I could just say

## How to Input Unicode Characters in Maestro Android Tests: A Complete Workaround Guide

DevFeed: [How to Input Unicode Characters in Maestro Android Tests: A Complete Workaround Guide](<https://devfeed.tech/articles/how-to-input-unicode-characters-in-maestro-android-tests-a-complete-workaround-guide-25153.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/how-to-input-unicode-characters-in-maestro-android-tests-a-complete-workaround-guide/>)

Author: Ishan Khanna

Published: 2025-07-11T00:17:46Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [adb](<https://devfeed.tech/topics/adb.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Flask](<https://devfeed.tech/topics/flask.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [automation](<https://devfeed.tech/tags/automation.md>), [guide](<https://devfeed.tech/tags/guide.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [mobile-test-automation](<https://devfeed.tech/tags/mobile-test-automation.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

A tutorial describing a workaround for Unicode text input in Maestro Android tests. It uses Maestro JavaScript, a local HTTP server, and ADB Keyboard to send Unicode text through Android broadcast intents.

### Source excerpt

Learn how to overcome Maestro's Unicode input limitations on Android by building a custom HTTP server solution with ADB Keyboard. Complete implementation guide with code examples.

## Android Architecture Patterns: A Comprehensive Pre-Interview Guide

DevFeed: [Android Architecture Patterns: A Comprehensive Pre-Interview Guide](<https://devfeed.tech/articles/android-architecture-patterns-a-comprehensive-pre-interview-guide-25146.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/android-architecture-patterns-a-comprehensive-pre-interview-guide/>)

Author: Ishan Khanna

Published: 2025-03-18T20:01:26Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [mvc](<https://devfeed.tech/topics/mvc.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-architecture](<https://devfeed.tech/tags/android-architecture.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [code](<https://devfeed.tech/tags/code.md>), [comparisons](<https://devfeed.tech/tags/comparisons.md>), [examples](<https://devfeed.tech/tags/examples.md>), [guide](<https://devfeed.tech/tags/guide.md>), [interview](<https://devfeed.tech/tags/interview.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [patterns](<https://devfeed.tech/tags/patterns.md>)

### AI overview

A pre-interview guide to Android architecture patterns. It explains why architectural patterns matter and covers MVC, MVP, MVVM, MVI, and modern Jetpack Compose implementations, with code examples and comparisons.

### Source excerpt

Looking to brush up on Android architecture patterns before your next mobile interview? This guide covers everything from traditional MVC to modern Jetpack Compose implementations, with code examples and comparisons of MVC, MVP, MVVM, and MVI patterns.

## Shadow Calls and Circuit Breakers: Uber's Safe Approach to Mobile Network API Migration

DevFeed: [Shadow Calls and Circuit Breakers: Uber's Safe Approach to Mobile Network API Migration](<https://devfeed.tech/articles/shadow-calls-and-circuit-breakers-uber-s-safe-approach-to-mobile-network-api-migration-25158.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/shadow-calls-and-circuit-breakers-ubers-safe-approach-to-mobile-network-api-migration/>)

Author: Ishan Khanna

Published: 2024-09-24T20:06:25Z

Content type: article

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [gRPC](<https://devfeed.tech/topics/grpc.md>), [migration](<https://devfeed.tech/topics/migration.md>), [API](<https://devfeed.tech/topics/api.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [payload](<https://devfeed.tech/topics/payload.md>), [client](<https://devfeed.tech/topics/client.md>), [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [experimentation](<https://devfeed.tech/tags/experimentation.md>), [latency](<https://devfeed.tech/tags/latency.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-app-performance](<https://devfeed.tech/tags/mobile-app-performance.md>), [mobile-apps](<https://devfeed.tech/tags/mobile-apps.md>), [network](<https://devfeed.tech/tags/network.md>), [networking](<https://devfeed.tech/tags/networking.md>), [payload](<https://devfeed.tech/tags/payload.md>), [performance](<https://devfeed.tech/tags/performance.md>), [protocols](<https://devfeed.tech/tags/protocols.md>), [rest](<https://devfeed.tech/tags/rest.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [talks](<https://devfeed.tech/tags/talks.md>), [tech-talk-review](<https://devfeed.tech/tags/tech-talk-review.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

This article discusses Uber's migration from REST to gRPC for mobile network APIs. It describes the motivation around payload size and latency, a three-phase migration strategy, technical challenges, and reported improvements including a 45% payload reduction and 27% latency improvement.

### Source excerpt

Ishan discusses Uber's journey from REST to gRPC, showcasing a 45% payload reduction and 27% latency improvement. Dive into the three-phase migration strategy, technical challenges, and innovative solutions that transformed Uber's mobile app performance.

## Remove Duplicates From a List in Kotlin

DevFeed: [Remove Duplicates From a List in Kotlin](<https://devfeed.tech/articles/remove-duplicates-from-a-list-in-kotlin-25157.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/remove-duplicates-from-a-list-in-kotlin/>)

Author: Ishan Khanna

Published: 2023-01-25T20:33:45Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [function](<https://devfeed.tech/tags/function.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [list](<https://devfeed.tech/tags/list.md>)

### AI overview

This Kotlin tutorial explains four ways to remove duplicate elements from a list: toSet(), toHashSet(), distinct(), and an extension-function approach. It compares their return types, ordering guarantees, mutability, and usage considerations.

### Source excerpt

In this article, Ishan Khanna shows you the best way to remove duplicates from a List in Kotlin.

## Mastering The Gradle Dependency Tree

DevFeed: [Mastering The Gradle Dependency Tree](<https://devfeed.tech/articles/mastering-the-gradle-dependency-tree-25156.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/mastering-the-gradle-dependency-tree/>)

Author: Ishan Khanna

Published: 2023-01-11T23:09:51Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Library](<https://devfeed.tech/topics/library.md>), [Maven Central](<https://devfeed.tech/topics/maven-central.md>)

Tags: [debug](<https://devfeed.tech/tags/debug.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [library](<https://devfeed.tech/tags/library.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [modularization](<https://devfeed.tech/tags/modularization.md>), [modules](<https://devfeed.tech/tags/modules.md>), [resolved](<https://devfeed.tech/tags/resolved.md>), [transitive-dependencies](<https://devfeed.tech/tags/transitive-dependencies.md>)

### AI overview

This tutorial explains Gradle dependencies, transitive dependencies, dependency configurations, and dependency trees. It also presents five ways to generate a dependency tree and discusses managing versions to avoid conflicts and unnecessary project bloat.

### Source excerpt

Learn everything about the Gradle Dependency Tree and Five Different Ways to Generate Them.

## Impact of Dependency Tree Depth on Gradle Builds

DevFeed: [Impact of Dependency Tree Depth on Gradle Builds](<https://devfeed.tech/articles/impact-of-dependency-tree-depth-on-gradle-builds-25155.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/impact-of-dependency-tree-depth-on-gradle-builds/>)

Author: Ishan Khanna

Published: 2022-12-05T07:46:58Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [build performance](<https://devfeed.tech/topics/build-performance.md>), [build times](<https://devfeed.tech/topics/build-times.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Caching](<https://devfeed.tech/topics/caching.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [build-times](<https://devfeed.tech/tags/build-times.md>), [caching](<https://devfeed.tech/tags/caching.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [modularization](<https://devfeed.tech/tags/modularization.md>), [tips-and-tricks](<https://devfeed.tech/tags/tips-and-tricks.md>)

### AI overview

This tutorial examines how dependency tree depth affects Gradle build times in modularized, multi-project builds. It analyzes changes at the top, middle, and bottom of the dependency tree and explains Gradle tasks, dependency graphs, and task output caching.

### Source excerpt

In this post, Ishan shows the impact of dependency tree depth on Gradle Builds with a complete analysis of changes at the Top, Middle, and Bottom of the Dependency Tree.

## Flutter vs. Jetpack Compose: A Comparison of Languages and Community Support

DevFeed: [Flutter vs. Jetpack Compose: A Comparison of Languages and Community Support](<https://devfeed.tech/articles/flutter-vs-jetpack-compose-the-battle-of-the-decade-25149.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/flutter-vs-jetpack-compose-the-battle-of-the-century/>)

Author: Ishan Khanna

Published: 2022-11-16T03:38:11Z

Content type: opinion

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Dart](<https://devfeed.tech/topics/dart.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [dart](<https://devfeed.tech/tags/dart.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [opinion](<https://devfeed.tech/tags/opinion.md>)

### AI overview

An opinion comparison of Flutter and Jetpack Compose for mobile app development. It compares Dart with Kotlin and discusses each technology's developer community, favoring Dart for learnability, runtime speed, and memory usage while finding no clear winner in community support.

### Source excerpt

Android app developers have been debating whether to use frameworks like Flutter or Jetpack over the last few years. In this article, I share my own opinion as a mobile engineer who has worked with both technologies.

## Four Ways to Remove Duplicates From an Array in Kotlin

DevFeed: [Four Ways to Remove Duplicates From an Array in Kotlin](<https://devfeed.tech/articles/four-ways-to-remove-duplicates-from-an-array-in-kotlin-25159.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/the-best-way-to-remove-duplicates-from-an-array-in-kotlin/>)

Author: Ishan Khanna

Published: 2022-10-23T02:29:26Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [data-structure](<https://devfeed.tech/tags/data-structure.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [function](<https://devfeed.tech/tags/function.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>)

### AI overview

This Kotlin tutorial explains four ways to remove duplicate values from an array: toSet(), toHashSet(), toMutableSet(), and distinct(). It compares their return types, ordering behavior, mutability, implementation details, and efficiency considerations.

### Source excerpt

In this article, Ishan Khanna shows you the best way to remove duplicates from an array in kotlin.

## Five Costs Engineers Don't Know About Breaking A Critical Path In The App

DevFeed: [Five Costs Engineers Don't Know About Breaking A Critical Path In The App](<https://devfeed.tech/articles/five-costs-engineers-don-t-know-about-breaking-a-critical-path-in-the-app-25148.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/five-costs-engineers-dont-know-about-breaking-a-critical-path-in-the-app/>)

Author: Ishan Khanna

Published: 2022-10-22T05:12:08Z

Content type: opinion

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [Software](<https://devfeed.tech/topics/software.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [article](<https://devfeed.tech/tags/article.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [personal-experience](<https://devfeed.tech/tags/personal-experience.md>), [production](<https://devfeed.tech/tags/production.md>), [software](<https://devfeed.tech/tags/software.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

### AI overview

The article identifies five types of costs that can result from breaking a critical path in an app: explicit revenue loss, collateral damage to the business, investigation, fixing, and remediation. It also discusses effects on brand perception, app ratings, user retention, and engagement.

### Source excerpt

In this article, I share five costs of breaking a critical path of your app that most engineers don't consider while writing software.

## How does Anonymous Feedback Impact Engineering Teams?

DevFeed: [How does Anonymous Feedback Impact Engineering Teams?](<https://devfeed.tech/articles/how-does-anonymous-feedback-impact-engineering-teams-25151.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/how-does-anonymous-feedback-impact-engineering-teams/>)

Author: Ishan Khanna

Published: 2022-09-03T18:18:46Z

Content type: opinion

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [engineering-culture](<https://devfeed.tech/topics/engineering-culture.md>), [Code review](<https://devfeed.tech/topics/code-review.md>)

Tags: [code-review](<https://devfeed.tech/tags/code-review.md>), [culture](<https://devfeed.tech/tags/culture.md>), [growth](<https://devfeed.tech/tags/growth.md>), [management](<https://devfeed.tech/tags/management.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

### AI overview

This article examines how anonymous feedback can affect engineering teams. It argues that anonymity may reduce accountability and enable low-quality feedback, while management may mistake feedback volume for a healthy feedback culture. It also introduces a model for providing constructive, actionable feedback.

### Source excerpt

Ishan Khanna discusses the impacts of anonymous feedback on engineering teams. He also provides a model for providing constructive actionable feedback to your colleagues.

## Singleton in Kotlin

DevFeed: [Singleton in Kotlin](<https://devfeed.tech/articles/singleton-in-kotlin-25152.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/how-to-create-singleton-in-kotlin/>)

Author: Ishan Khanna

Published: 2022-07-30T22:11:16Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Code](<https://devfeed.tech/topics/code.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [create](<https://devfeed.tech/tags/create.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [tips](<https://devfeed.tech/tags/tips.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial explaining what a singleton is in Kotlin, how to create one with the object keyword or a companion object, when singletons may be useful, and guidelines for keeping them focused and avoiding unnecessary use.

### Source excerpt

In this tutorial, Ishan Khanna teaches how to create singleton in kotlin. When to use singleton in kotlin and tips for creating effective and efficient singleton class in kotlin.