Yash Poojary - Reverse Engineering Mac Apps & Building Sparkle
Key Insights
-
Reverse engineering is your R&D department: Instead of guessing how to build features, teardown successful apps to see exactly what frameworks, packages, and architectural decisions billion-dollar companies have tested at scale. This turns every Mac app into a technical playbook.
-
70% of organization is deletion: Following Marie Kondo’s philosophy, most file management should focus on removing what you don’t need rather than organizing everything. The average user has 7,000+ screenshots they’ll never look at again.
-
Review every line of agent-generated code: Unlike some developers who skip code review, reading every line keeps you deeply familiar with your codebase and enables two-minute fixes when things break. It’s not about distrust—it’s about craftsmanship.
-
What they built vs. what they bought: When reverse engineering apps, the key question is identifying what features companies prioritized building in-house versus purchasing as packages. This reveals where to focus your engineering energy.
-
Multiple agents, one flow state: Running 2-3 Claude Code agents simultaneously while staying in a focused “wired in” state requires treating agent management like directing a film—scripting, shooting, and editing are separate phases with different mindsets.
Summary
Yash Poojary is the General Manager of Sparkle, a Mac file organization app being developed by the Ever team. Speaking from Panama during a company offsite, Yash shared his approach to building native Mac applications by reverse engineering successful apps from companies like ChatGPT, Spotify, and others. Rather than relying solely on AI to guess at implementation details, he uses a systematic process to teardown existing Mac apps and learn from the architectural decisions of companies with billions of dollars in R&D investment.
The conversation covered Sparkle’s evolution from an Electron app to a native Swift application, and the team’s pivot from pure organization to a “deep clean” philosophy that prioritizes deletion over arrangement. Yash demonstrated his workflow for reverse engineering apps using Claude Code, explained his methodology for staying in flow state while managing multiple AI agents, and shared Agent Watch—a tool he built to monitor running agents. His philosophy centers on “outsourcing R&D” by learning from the best, reading every line of code agents produce, and focusing engineering energy on user experience rather than solved problems.
Main Topics
Sparkle’s Evolution and Current Direction
Sparkle has been rebuilt multiple times: first by Dan as an Electron app in 2023 when ChatGPT’s API launched, then redesigned and rebuilt again, then converted to native by Yash, and now being rebuilt once more with a focus on cleanup rather than pure organization. The team discovered two fundamental problems: (1) organizing files based only on metadata and filenames is insufficient without examining file contents, but doing so locally is too slow and expensive, and (2) most users have thousands of files that should simply be deleted rather than organized.
The new “Deep Clean” feature addresses this by automatically identifying and removing screenshot clutter, duplicates, and unused downloads. Launch is planned for the first week of March 2026.
“We went back to like looking at Marie Kondo and how she looks at like organization and tying up stuff and it just like organization just like two things and 70% of it is just throwing away things you don’t need” [00:05:06.350]
The Reverse Engineering Method
Yash’s core workflow involves using a blog post by Kevin Chen from 2022 about reverse engineering the Rewind app as a prompt template. The method works by having Claude Code examine the Contents folder of any Mac app and provide a comprehensive teardown including:
- Privacy permissions required
- Frameworks and packages used
- API endpoints
- Whether components are native or web-based
- Third-party services integrated
The process takes about 15 minutes to run and produces an exhaustive markdown document that serves as a technical blueprint.
“I outsource my R&D. My secret is that I see but I don’t steal code… I have more important things to do like making sure your organization system on your mac is perfect” [00:06:35.470]
Learning From Excellence
Yash compares reverse engineering to how writers read thousands of books before writing, how Kobe Bryant and Michael Jordan study game film, and how artists copy Picasso stroke by stroke—not to become them, but to understand what excellence looks like. Every Mac app becomes a book you can open and read.
Key examples shared: - ChatGPT: Uses LifeKit (outsourced framework), has screen recording capabilities, uses Sparkle (different framework with same name) - Spotify: Not a native app—uses web technology packaged as Mac app, with only audio framework being native. This reveals their 80/20 prioritization.
“If you look at any writer they have read like thousands of books before writing a book… same for like if you’re an artist you just copy picasso like stroke by stroke it’s not to become them it’s just to learn what excellence looks like” [00:06:52.890]
Practical Application in Sparkle
When building the duplicate file detection feature, Yash used this method to find which packages other apps use for the expensive process of comparing files. This saved three days of development time, reducing it to three hours of integration work.
He maintains a library of teardown documents in the Sparkle repo that he references when building new features. Instead of asking the internet or Stack Overflow for opinions, he asks Claude to reference how Spotify or ChatGPT solved similar problems—learning from companies that have seen scale.
“There’s a lot of like calculation… when you have to calculate like duplicates it’s sort of a very expensive process… I looked into another app which using which sort of had built the algorithm and I could just sort of integrate that and it saved like three days of work” [00:16:22.890]
Code Review Philosophy
Unlike some developers who skip reviewing agent-generated code, Yash reads every single line. His reasoning: it’s what he started coding for—he loves reading code like reading a book. This deep familiarity means he can fix issues in two minutes when something breaks, and he never feels unfamiliar with his own codebase.
He compares the alternative to “TikTok-ification of code”—just swiping through without understanding. He explicitly rejects this approach, seeing it as incompatible with building quality technology.
“You need to be responsible for every line every line that’s there in your code you need to need it… I can’t be like okay go do this and and like it’s going to come back it’s something which is not up to my standard” [00:22:00.610]
Agent Watch and Flow State
To manage multiple Claude Code agents without breaking focus, Yash built Agent Watch—a Mac menu bar app that shows running agents (green = active, orange = completed) and allows quick switching between them. He typically runs 2-3 agents simultaneously.
The tool enables him to stay “wired in” (referencing The Social Network scene where Eduardo finds Mark Zuckerberg deeply focused). Rather than switching to YouTube or Instagram while agents run, he stays in the zone reading and reviewing code.
“This is like part of my workflow and like how I look at it is like… I want to get from point a to point b… my job is like to give direction and like even though google maps is going to show me that hey this is five minutes or like 14 minutes i walk i still need to make that journey” [00:25:00.610]
Building Philosophy
Yash compares his development process to filmmaking: research phase, scripting phase, shooting, then editing. During the “shooting” phase (building functionality), he doesn’t worry about perfect design or polish—that comes in the “editing” phase (refinement).
He asks two key questions when evaluating any feature: “What did they build and what did they buy?” and “What did they prioritize?” These guide where to focus engineering energy on differentiated experience versus using existing solutions.
“I just look at it as like you’re making a movie like there’s a scripting phase there’s a research phase then we’re going to shoot and then we’re going to edit so i’m always in like okay we’re shooting right now i’m not really concerned about like the making the corners perfect” [00:19:00.470]
Future Direction for Sparkle
The team is focused on creating consistent cleanup and organizational value, with the goal of making users feel productive when opening their laptop. Key priorities:
- Agent-native architecture where users can chat with Sparkle to define custom folder structures
- Ability to mark certain folders/files as off-limits (like code repos)
- Automatic background space management so disk running out never interrupts work
- Potentially separating search as a standalone “best search tool on Mac” rather than forcing it into Sparkle
The philosophy: “If it’s not a hell yeah, it’s a no”—and search doesn’t fit perfectly in their vision of file management and cleanup.
“I genuinely want to figure out like our consistent cleanup organizational value because i feel like when i start my day i don’t want to see a cluttered desktop… i want to feel productive when i open my laptop” [00:27:11.770]
Actionable Details
Tools and Resources
- Agent Watch: Mac menu bar app for monitoring Claude Code agents (available on GitHub - search “agent watch”)
- Kevin Chen’s blog post: “Reverse Engineering the Rewind App” (2022) - the core method/prompt for app teardowns
- Claude Code: Primary development tool for running multiple agents simultaneously
- Sparkle: Mac file organization app launching first week of March 2026
Step-by-Step Reverse Engineering Workflow
- Find the blog post by Kevin Chen about reverse engineering Rewind app (link to be provided)
- Get the Mac app you want to reverse engineer from
/Applicationsfolder - Create a prompt: “Reverse engineering the [APP NAME] app using this method [paste blog link]”
- Drop in the app from Applications folder
- Add: “Save the learnings to a new .md file”
- Let the LLM run for ~15 minutes
- Review the generated markdown document for frameworks, packages, architectural decisions
The process reveals: - What’s native vs. web technology - Which third-party services/packages they use - API endpoints and structure - Privacy permissions needed - What they built in-house vs. purchased
Key Questions to Ask When Reviewing Teardowns
- What did they build and what did they buy?
- What did they prioritize for native development?
- What’s the 80/20 here?
- Which packages/frameworks are worth adopting?
- What can I integrate in hours instead of building in days?
Development Workflow
- Research phase: Reverse engineer similar apps, identify packages and patterns
- Scripting phase: Plan features and architecture
- Shooting phase: Build functionality without worrying about polish (run 2-3 agents with Agent Watch)
- Editing phase: Refine experience and design
- Marketing phase: Launch and promote
Throughout: Read every line of agent-generated code to maintain codebase familiarity.
Quotes Worth Saving
“I see but I don’t steal code like I don’t do copyright espionage like james gone can do that I have more important things to do like making sure your organization system on your mac is perfect” [00:06:35.470]
“Every app on your mac is a book and you can open it and start reading it” [00:13:54.710]
“What if you train yourself is for like you need to be responsible for every line every line that’s there in your code you need to need it… that’s not how you build technology” [00:22:00.610]
“It’s the TikTok-ification of code it’s like like swiping up that’s wrong” [00:22:11.380]
“What should you be doing when agents are running? Run more agents.” - Reed Hoffman [00:21:25.870]
“If it’s not a hell yeah it’s a no” [00:28:26.250]
“What are you going to sacrifice? Because we’re all so excited about building different things here… you cannot build something great without like focusing on it for a very very long time” [00:29:14.860]