My Profile Photo

Chang Min Park


Senior Software Engineer at Yahoo!




Writing

  1. In-App Review Returned Success — The Dialog Never Showed

    Ratings fell. Installs did not.


  2. Mobile Logs, Crashes, and Metrics: Pick Signals That Decide

    More telemetry is not more control


  3. Tickets Where an Agent Makes You Slower

    Negative expected value is allowed


  4. Making a Monorepo Navigable to Agents

    Agents fail on layout, not IQ



  5. Planning Theater vs a Plan That Saves a Rewrite

    When the plan is the product


  6. "It Worked Once in Chat" Is Not a Ship Bar

    The demo is not the product


  7. The Bot Commented on Your PR and Nobody Owns It

    Public wrongness has a different cost



  8. The Overnight Agent PR Fantasy

    You closed the laptop on a green fantasy


  9. Agent Trust Boundaries: Approvals That Matter, Tools That Lie

    Two ways you lose the same afternoon


  10. The Agent Said Done — and CI Is Red

    Green chat, red pipeline



  11. Subagents That Argue While You Pay for Both

    Parallel looked free until the summaries disagreed


  12. Feature Flags on Mobile: Kill Switch, Rollout, Experiment

    Three jobs, one muddy word


  13. Scalable Patterns Worth Stealing (Without Renaming Your Résumé)

    You already ship these — under different names


  14. One Telemetry Story Across Client and Server

    Users say it’s broken; three dashboards disagree


  15. Mail Storage & Caching Without Lagging the Gesture

    “We have a cache” is not a latency budget


  16. Multi-Region Reality for Mobile Users

    The phone moved; the control plane did not


  17. GitHub Actions for Android: PR Gates That Protect Merges

    Green checks that mean nothing


  18. Rate Limits Without Gaslighting the UX

    The spinner that lied


  19. Fat vs Chatty APIs on Cellular

    The list scrolled fine on Wi‑Fi



  20. A Hot Mailbox Melts the Shard

    One inbox, everyone refreshing


  21. Push Is a Distributed System, Not a FCM Call

    “Just send a push”


  22. Gradle Modularization: Slice for Change, Not for the Diagram

    The debate that stalls the roadmap


  23. The Request Path Should Never Wait

    The send button lied


  24. Retry Storms: When Your Own Clients DDoS You

    The outage ended. The traffic did not.


  25. Replication Lag Filed as an Android Bug

    Send, pull to refresh, message gone



  26. Cache Invalidation from CDN to Room

    Same bug, four layers


  27. Offline-First Mail: Consistency Is a UX Decision

    The draft that vanished between phones


  28. The API Is Up. Why Are Phones Still Broken?

    Green dashboards, angry sessions



  29. Android FE Architecture History: MVC to Compose

    Why front-end architecture stops being optional


  30. Memoization: Cache the Result, Not the Algorithm

    When the same work runs twice


  31. ANR Stack Traces Lie by Omission — Crashlytics Is One Layer

    The dialog is late; the trace is a snapshot


  32. Types of Mobile Apps: When Native Still Wins

    The decision that keeps coming back


  33. From Jenkins to Screwdriver: What CI/CD Actually Buys an Android Team

    Shipping broke before the code did


  34. Why Your PR Diff Is Noisy: Formatters vs Linters

    The symptom is the diff, not the bug


  35. Web-to-App Install Prompts: When Nagging Costs Retention

    The install funnel nobody measures end-to-end


  36. Image Security in General: What Breaks on the Mobile Photo Path

    Why a photo is harder to secure than a message


  37. Cross-Platform Mobile Frameworks: Flutter, RN, and the WebView Trap

    One codebase — two very different architectures


  38. Android SDK Versions: compileSdk, minSdk, and targetSdk in Production

    The release that broke on a newer phone



  39. Android Sandbox: UID Isolation and the Holes You Open Yourself

    The symptom that looks like a bug


  40. Zombie vs Orphan Processes: What ps Is Actually Showing

    The ps line that will not die


  41. Primitive vs Reference Types: Memory, Boxing, and Kotlin Nulls

    Why “same variable” stores different things



  42. OpenGL Rendering Pipeline: What Actually Breaks in Practice

    Why the pipeline map matters


  43. tee, Pipe, and Redirection: Watch Output While You Log It

    Why plain redirection hides the stream


  44. Hard Links vs Symbolic Links: Same Inode, Different Contract

    When two paths are not two files



  45. Linux Filesystem Hierarchy: Where Production Bugs Hide

    When the filesystem layout is the bug


  46. Software Testing Methods

    Why method choice is a budget decision


  47. Interrupt Handling in OP-TEE: IRQ, FIQ, and World Switches

    When a secure interrupt lands in the wrong world


  48. White Box, Black Box, and Gray Box Testing

    Why “how much you know” changes what you find


  49. Research Methodology: Qualitative vs Quantitative

    Why the split matters before you collect data


  50. Dalvik and ART: What the Runtime Layer Still Explains

    Why Dalvik still shows up in stack traces


  51. Levenshtein Distance: Edit Cost for Typos and Fuzzy Match

    When exact match is too strict