Chang Min Park
Senior Software Engineer at Yahoo!
About
Project
Writing
Google Scholar
LinkedIn
Email
Course
Research
Personal
Writing
Systems
Testing
Security
Linux
Android
DevEx
Distributed
Agents
Course
Advanced TCAM Design
VLSI Electronics
•
Nov 2019
Immix Garbage Collection on Dart VM
Advanced Programming Languages
•
Dec 2018
Automated Hand Model
Realtime Embed Systems
•
Nov 2015
Research
On-Device Hyper-Personalization for Mobile Apps
Patent
•
May 2026
RecoFlow: Recovering from Compatibility Crashes by Reusing User Flows
Archived
•
Jun 2024
Crestone: End-to-End Image Integrity
Archived
•
Oct 2023
Rushmore: Securely Displaying Static and Animated Images Using TrustZone
MobiSys
•
Jun 2021
Gesto: Mapping UI Events to Gestures and Voice Commands
EICS
•
Jun 2019
Mimic: UI Compatibility Testing System for Android Apps
ICSE
•
May 2019
Reptor: Enabling API Virtualization on Android for Platform Openness
MobiSys
•
Jun 2017
Auto Clicker
MobiSys Demo
•
Jun 2017
Personal
Mocket App
Android App
•
Sep 2018
Writing
When GitHub Actions Is the Outage
•
Aug 2026
Tickets Where an Agent Makes You Slower
•
Jul 2026
Making a Monorepo Navigable to Agents
•
Jun 2026
In-App Review Returned Success — The Dialog Never Showed
•
May 2026
The Chat That Forgot the Constraint — and the Memory That Gaslit the Fix
•
May 2026
Planning Theater vs a Plan That Saves a Rewrite
•
Apr 2026
Mobile Logs, Crashes, and Metrics: Pick Signals That Decide
•
Apr 2026
"It Worked Once in Chat" Is Not a Ship Bar
•
Mar 2026
Android FE Architecture History: MVC to Compose
•
Mar 2026
The Bot Commented on Your PR and Nobody Owns It
•
Mar 2026
ANR Stack Traces Lie by Omission — Crashlytics Is One Layer
•
Feb 2026
Your Agent Has Too Many Tools — and Mistakes Access for Expertise
•
Feb 2026
GHEC vs GHES: What Actually Changes for Your Team
•
Feb 2026
Imperative vs Declarative Android UI: What Migration Actually Changes
•
Feb 2026
The Overnight Agent PR Fantasy
•
Jan 2026
REST vs RPC: Same HTTP, Different Contracts
•
Jan 2026
Fat vs Chatty APIs on Cellular
•
Jan 2026
Agent Trust Boundaries: Approvals That Matter, Tools That Lie
•
Jan 2026
The Agent Said Done — and CI Is Red
•
Dec 2025
Replication Lag Filed as an Android Bug
•
Dec 2025
Building an AI Assistant Surface in Jetpack Compose Without Fighting the Keyboard
•
Nov 2025
Cache Invalidation from CDN to Room
•
Nov 2025
Subagents That Argue While You Pay for Both
•
Nov 2025
Redux on Android: When Unidirectional State Is Worth the Ceremony
•
Oct 2025
Gradle Modularization: Slice for Change, Not for the Diagram
•
Oct 2025
The Request Path Should Never Wait
•
Sep 2025
Three Clients, Same Aggregation: Why BFF Shows Up
•
Aug 2025
A Hot Mailbox Melts the Shard
•
Jul 2025
Types of Mobile Apps: When Native Still Wins
•
Jul 2025
Push Is a Distributed System, Not a FCM Call
•
Jun 2025
Feature Flags on Mobile: Kill Switch, Rollout, Experiment
•
May 2025
Scalable Patterns Worth Stealing (Without Renaming Your Résumé)
•
May 2025
One Telemetry Story Across Client and Server
•
Apr 2025
Mail Storage & Caching Without Lagging the Gesture
•
Mar 2025
Offline-First Mail: Consistency Is a UX Decision
•
Mar 2025
Multi-Region Reality for Mobile Users
•
Feb 2025
GitHub Actions for Android: PR Gates That Protect Merges
•
Feb 2025
Rate Limits Without Gaslighting the UX
•
Jan 2025
Retry Storms: When Your Own Clients DDoS You
•
Jun 2024
The API Is Up. Why Are Phones Still Broken?
•
Jan 2024
Memoization: Cache the Result, Not the Algorithm
•
Sep 2023
From Jenkins to Screwdriver: What CI/CD Actually Buys an Android Team
•
Aug 2023
Why Your PR Diff Is Noisy: Formatters vs Linters
•
Jun 2023
Web-to-App Install Prompts: When Nagging Costs Retention
•
Jun 2023
Image Security in General: What Breaks on the Mobile Photo Path
•
Apr 2023
Cross-Platform Mobile Frameworks: Flutter, RN, and the WebView Trap
•
Mar 2023
Android SDK Versions: compileSdk, minSdk, and targetSdk in Production
•
Dec 2022
Android Support Library → AndroidX: What the Old Stack Maps To Today
•
Nov 2022
Android Sandbox: UID Isolation and the Holes You Open Yourself
•
Oct 2022
Zombie vs Orphan Processes: What ps Is Actually Showing
•
Sep 2022
Primitive vs Reference Types: Memory, Boxing, and Kotlin Nulls
•
Jun 2022
Stack-Based vs Register-Based VMs: Why Dalvik Chose Registers
•
Apr 2022
OpenGL Rendering Pipeline: What Actually Breaks in Practice
•
Jul 2021
tee, Pipe, and Redirection: Watch Output While You Log It
•
Mar 2021
Hard Links vs Symbolic Links: Same Inode, Different Contract
•
Nov 2020
Android Architecture Breakdown: Which Layer Owns Your Bug?
•
Nov 2020
Linux Filesystem Hierarchy: Where Production Bugs Hide
•
Sep 2020
Software Testing Methods
•
May 2020
Interrupt Handling in OP-TEE: IRQ, FIQ, and World Switches
•
Mar 2020
White Box, Black Box, and Gray Box Testing
•
Nov 2019
Research Methodology: Qualitative vs Quantitative
•
Nov 2019
Dalvik and ART: What the Runtime Layer Still Explains
•
Sep 2019
Levenshtein Distance: Edit Cost for Typos and Fuzzy Match
•
Aug 2019
Systems
Memoization: Cache the Result, Not the Algorithm
•
Sep 2023
Primitive vs Reference Types: Memory, Boxing, and Kotlin Nulls
•
Jun 2022
Stack-Based vs Register-Based VMs: Why Dalvik Chose Registers
•
Apr 2022
OpenGL Rendering Pipeline: What Actually Breaks in Practice
•
Jul 2021
Dalvik and ART: What the Runtime Layer Still Explains
•
Sep 2019
Levenshtein Distance: Edit Cost for Typos and Fuzzy Match
•
Aug 2019
Testing
"It Worked Once in Chat" Is Not a Ship Bar
•
Mar 2026
Software Testing Methods
•
May 2020
White Box, Black Box, and Gray Box Testing
•
Nov 2019
Research Methodology: Qualitative vs Quantitative
•
Nov 2019
Security
Agent Trust Boundaries: Approvals That Matter, Tools That Lie
•
Jan 2026
Image Security in General: What Breaks on the Mobile Photo Path
•
Apr 2023
Android Sandbox: UID Isolation and the Holes You Open Yourself
•
Oct 2022
Interrupt Handling in OP-TEE: IRQ, FIQ, and World Switches
•
Mar 2020
Linux
Zombie vs Orphan Processes: What ps Is Actually Showing
•
Sep 2022
tee, Pipe, and Redirection: Watch Output While You Log It
•
Mar 2021
Hard Links vs Symbolic Links: Same Inode, Different Contract
•
Nov 2020
Linux Filesystem Hierarchy: Where Production Bugs Hide
•
Sep 2020
Android
In-App Review Returned Success — The Dialog Never Showed
•
May 2026
Mobile Logs, Crashes, and Metrics: Pick Signals That Decide
•
Apr 2026
Android FE Architecture History: MVC to Compose
•
Mar 2026
ANR Stack Traces Lie by Omission — Crashlytics Is One Layer
•
Feb 2026
Imperative vs Declarative Android UI: What Migration Actually Changes
•
Feb 2026
Building an AI Assistant Surface in Jetpack Compose Without Fighting the Keyboard
•
Nov 2025
Redux on Android: When Unidirectional State Is Worth the Ceremony
•
Oct 2025
Gradle Modularization: Slice for Change, Not for the Diagram
•
Oct 2025
Types of Mobile Apps: When Native Still Wins
•
Jul 2025
Feature Flags on Mobile: Kill Switch, Rollout, Experiment
•
May 2025
Mail Storage & Caching Without Lagging the Gesture
•
Mar 2025
Web-to-App Install Prompts: When Nagging Costs Retention
•
Jun 2023
Cross-Platform Mobile Frameworks: Flutter, RN, and the WebView Trap
•
Mar 2023
Android SDK Versions: compileSdk, minSdk, and targetSdk in Production
•
Dec 2022
Android Support Library → AndroidX: What the Old Stack Maps To Today
•
Nov 2022
Android Architecture Breakdown: Which Layer Owns Your Bug?
•
Nov 2020
DevEx
When GitHub Actions Is the Outage
•
Aug 2026
GHEC vs GHES: What Actually Changes for Your Team
•
Feb 2026
GitHub Actions for Android: PR Gates That Protect Merges
•
Feb 2025
From Jenkins to Screwdriver: What CI/CD Actually Buys an Android Team
•
Aug 2023
Why Your PR Diff Is Noisy: Formatters vs Linters
•
Jun 2023
Distributed
REST vs RPC: Same HTTP, Different Contracts
•
Jan 2026
Fat vs Chatty APIs on Cellular
•
Jan 2026
Replication Lag Filed as an Android Bug
•
Dec 2025
Cache Invalidation from CDN to Room
•
Nov 2025
The Request Path Should Never Wait
•
Sep 2025
Three Clients, Same Aggregation: Why BFF Shows Up
•
Aug 2025
A Hot Mailbox Melts the Shard
•
Jul 2025
Push Is a Distributed System, Not a FCM Call
•
Jun 2025
Scalable Patterns Worth Stealing (Without Renaming Your Résumé)
•
May 2025
One Telemetry Story Across Client and Server
•
Apr 2025
Offline-First Mail: Consistency Is a UX Decision
•
Mar 2025
Multi-Region Reality for Mobile Users
•
Feb 2025
Rate Limits Without Gaslighting the UX
•
Jan 2025
Retry Storms: When Your Own Clients DDoS You
•
Jun 2024
The API Is Up. Why Are Phones Still Broken?
•
Jan 2024
Agents
Tickets Where an Agent Makes You Slower
•
Jul 2026
Making a Monorepo Navigable to Agents
•
Jun 2026
The Chat That Forgot the Constraint — and the Memory That Gaslit the Fix
•
May 2026
Planning Theater vs a Plan That Saves a Rewrite
•
Apr 2026
The Bot Commented on Your PR and Nobody Owns It
•
Mar 2026
Your Agent Has Too Many Tools — and Mistakes Access for Expertise
•
Feb 2026
The Overnight Agent PR Fantasy
•
Jan 2026
The Agent Said Done — and CI Is Red
•
Dec 2025
Subagents That Argue While You Pay for Both
•
Nov 2025