Jads Blog

Jeff Adler's engineering blog. AI, agentic engineering, leadership, iOS architecture, and technical deep dives from Google, Dropbox, and Reddit.

  • Adopt the Agent. Build the Loop. 2026-05-29 -- Everyone is debating Cursor vs Claude Code. Wrong fight. The agent is a commodity. The only thing worth building is the loop around it.
  • The Manager Layer is Next 2026-05-16 -- AI isn't replacing managers. It's exposing which ones were never load-bearing to begin with.
  • Tokenmaxxing Is What Happens When You Measure Wrong 2026-05-15 -- Mandating AI tool usage is correct. Measuring it is a trap. The right move is to measure outcomes, not inputs.
  • Relaunching This Blog for the AI Era 2026-03-04 -- Jeff Adler's engineering blog, eight years of iOS architecture and leadership. Now relaunching for the AI era.
  • The Year the Agent Stopped Being a Demo 2025-12-16 -- 2025 was the year agents went from demo to operational. Some 2024 predictions held. Some didn't. Three bets for 2026, and the gap that hasn't closed.
  • AI Is Redefining What \"Senior Engineer\" Means 2025-11-07 -- Senior engineer used to mean better code. AI is redefining it to mean system design, taste, and judgment. A Dropbox director's take.
  • What Two Years of Agentic Coding Did to My Org Chart 2025-10-28 -- Sixteen months after the agent-managers thesis, here's what actually happened to my org chart. Some held up. Some didn't. Hiring shifted hardest.
  • Your Agent's Bottleneck Is Your Documentation 2025-08-12 -- GPT-5 landed muted. The model layer is stabilizing. The differentiator moved one layer down to your information architecture for agents.
  • Voice Is Going to Fail for the Same Reason Chat Did 2025-05-28 -- Voice as a default surface is failing the way chat did. Voice as an embedded wedge is the actual win, and the early-2025 data already shows it.
  • AI Makes You 3x Faster, Then Review Explodes 2025-04-04 -- AI tools help Dropbox engineers ship 3-5x faster, but without the right processes you just create a traffic jam at code review.
  • Reasoning Is a Commodity Now 2025-02-26 -- DeepSeek R1 and Claude 3.7 made reasoning a commodity in five weeks. The architectural question moves from which provider to where you absorb the cost.
  • Should We Write Code for LLMs Now? 2025-01-24 -- If LLMs increasingly read and modify our code at Dropbox, should our conventions optimize for them instead of humans?
  • Your User Is Not You 2024-12-16 -- The biggest AI product mistake of 2024 was shipping for ourselves. Users don't know what to prompt and bounce on the first reply. Empathy gap is PMF gap.
  • Agentic Workflows Are Harder Than You Think 2024-10-11 -- The gap between an impressive agent demo and production at Dropbox is enormous. Here's what bridging it actually takes.
  • Commit Your Specs (We're Almost There) 2024-09-27 -- o1 is the first model where the spec might be the load-bearing artifact, not the code. I am hesitant. The QA bar this requires is one the industry hasn't built.
  • From Copilot to Pipeline 2024-07-30 -- Cursor and Copilot are the trust-but-verify phase of AI coding. The next phase is a pipeline of agents that writes the code while you review.
  • Engineers Are Becoming Agent Managers 2024-06-07 -- AI is flattening the engineering output curve at Dropbox. Engineers are managing agents now. Org structures need to change.
  • Stop Picking Models. Pick What's Stable Around Them. 2024-03-28 -- Claude 3 dethroned GPT-4. Devin redefined the agent. Teams that hardcoded a model are scrambling. The architecture that survives picks anything but the model.
  • Stop Building Chat. Your Users Don't Want Another Box. 2024-02-14 -- Every B2B company is racing to bolt an "Ask AI" chat onto their product. Most users bounce on the first reply. The chat box is product engineering laziness.
  • Staff to Senior Manager: 90% the Same Job 2023-11-15 -- I went from Staff Engineer to Senior Engineering Manager at Dropbox in three months and was surprised how much I was already doing.
  • What I Got Wrong About RAG 2023-09-15 -- RAG isn't what makes your AI product good -- retrieval quality is. Most teams learn that the hard way by optimizing the wrong layer first.
  • Shipping AI When Nothing Works Yet 2023-08-25 -- The messy reality of shipping LLM-powered features at Dropbox with real users, real latency budgets, and a cost model that doesn't work.
  • The Evaluation Gap Is the AI Gap 2023-07-28 -- Teams that build real eval infrastructure first ship better AI products -- not because they have better models, but because they know when their model is wrong.
  • Prompt Engineering Is Not a Job 2023-06-13 -- Hiring a prompt engineer is a category error. The real job is eval design, statistical rigor, and infrastructure -- and no one is posting that JD.
  • Latency Is a Feature Decision, Not an Infrastructure Problem 2023-04-21 -- How you handle latency determines whether users trust your AI product. Make that decision at design time, not in production.
  • ChatGPT Just Made AI a Product Engineering Problem 2022-12-08 -- ChatGPT launched eight days ago. Mobile engineers thinking "this doesn't affect me" are wrong. The product engineering reset starts here.
  • Mandates Fail, Examples Win 2022-11-04 -- Scaling engineering practices to a large iOS org. Why mandates fail and consistency comes from tooling, not enforcement.
  • Aggressive iOS Version Drops Are a Platform Mistake 2022-09-27 -- iOS 16 shipped two weeks ago. Most teams about to drop iOS 14 are trading short-term cleanup for long-term user pain. Stage features, don't drop versions.
  • We Ditched HLS and Cut Playback Errors by 22% 2022-08-12 -- How I rebuilt Reddit video playback by ditching HLS for an LRU-based prefetch cache, cutting playback errors meaningfully.
  • SwiftUI 4 Is Production-Ready. For Some of You. 2022-06-17 -- WWDC 2022 closed the biggest SwiftUI gaps. SwiftUI 4 works in production. For greenfield. Mixed-mode is the right call for everyone else.
  • SliceKit: Composition and Testing (Part 2) 2022-05-06 -- How SliceKit's composition model works in practice, plus the testing strategy that got the Reddit iOS org on board.
  • Modularization Is a Migration, Not a Decision 2022-04-14 -- Most mobile orgs treat modularization as a Q3 project. It's actually a multi-year migration with org-design implications. Treat it like infra.
  • SliceKit: Declarative UI at Reddit (Part 1) 2022-03-18 -- How I built a declarative UI framework for the iOS org at Reddit, and why consistency at scale requires opinionated tooling.
  • The Build-Time Tax Is the Most Underpriced Cost in Mobile 2022-02-22 -- At 100+ engineer mobile orgs, build time is the single biggest tax on engineering productivity and the most under-invested area on every roadmap I see.
  • Apple Silicon Cut My Mobile Build Times in Half 2021-12-09 -- Six weeks on an M1 Pro and my real iOS build runs roughly twice as fast as the 2019 Intel MacBook it replaced. The laptop-refresh ROI writes itself.
  • Why I Left Dropbox for Reddit 2021-11-19 -- After three years at Dropbox, I joined Reddit to lead iOS platform engineering for the 12th most-visited website.
  • iOS 15 Made Privacy a Product Engineering Problem 2021-10-21 -- iOS 15 plus ATT turned privacy from compliance into product engineering. Teams treating it as legal-team work are losing revenue this quarter.
  • Swift Concurrency Changes How You Hire iOS Engineers 2021-08-18 -- WWDC 2021 shipped async/await and Actors. Most iOS hiring rubrics still test for legacy GCD. The teams that update their interviews are the ones that win.
  • The Best Frameworks Come from Product Engineers 2021-06-25 -- The best mobile frameworks come from product engineers solving their own problems at Dropbox, not platform teams building in a vacuum.
  • Cross-Platform Code Is a Tax You Pay Twice 2021-05-06 -- The default reflex is to share iOS and Android code to save effort. Most teams pay that effort twice: once in the abstraction, once in the special-cases.
  • We Shipped SwiftUI. It Crashed 1% of Users. 2021-03-12 -- We rolled out SwiftUI to a slice of Dropbox users and hit a 1% crash rate. Here's why we chose UIKit and declarative frameworks instead.
  • A Year of Remote Engineering, Now What 2021-02-24 -- Twelve months ago I said remote was better for deep work but worse for everything else. A year of data later, the take mostly held, with two things I got wrong.
  • Six Weeks on M1: The iOS Engineering Verdict 2020-12-15 -- Six weeks on an M1 Mac mini. iOS engineering verdict, build times noticeably faster, fans silent, Rosetta absorbing the tooling tax. Refresh in 2021.
  • GPU Shaders Gave Us a 10x on Document Scanning 2020-11-20 -- How my team at Dropbox achieved a 10x performance gain in mobile document scanning by moving from CPU-bound C++ to GPU shaders.
  • iOS 14's One-Day Launch Was a Platform Mistake 2020-09-24 -- Apple shipped iOS 14 with less than 24 hours' notice. The widget-launch chaos was a structural process failure, not a pandemic-driven one-off.
  • Apple Silicon Is the Real Story of WWDC 2020 2020-07-14 -- WWDC 2020 had iOS 14, widgets, Big Sur. The story was none of those. Apple Silicon is the biggest mobile-engineering hardware shift this decade.
  • Remote Is Better for Deep Work 2020-06-19 -- Remote is more productive for deep work at Dropbox. In-person unlocks everything else. CI/CD becomes your most important teammate.
  • The Contact Tracing API Is a Mobile Platform Inflection 2020-04-21 -- Apple and Google's COVID Exposure API isn't really about contact tracing. It's two OS makers cooperating on a privacy protocol in 11 days.
  • Acquisition to App Store in Three Months 2020-03-13 -- How my team at Dropbox shipped HelloSign Mobile in three months post-acquisition by finding the right boundary between web and native.
  • Mac Catalyst Is Not Ready Yet 2020-02-05 -- Six months after Catalyst shipped, the production verdict is in. "Check a box in Xcode" collapses on platform conventions. Don't ship a Catalyst app in 2020.
  • Breaking Apart an iOS Monolith 2019-12-06 -- How I broke apart a Dropbox iOS monolith using protocol-first design, turning a tangled dependency graph into independent modules.
  • The Declarative Skeleton That Cut Code by ~40% 2019-10-25 -- How I built a declarative app skeleton that eliminated boilerplate, cut code substantially, and made test coverage a byproduct of good architecture.
  • Five RxSwift Patterns That Actually Work 2019-07-19 -- Five practical RxSwift patterns for well-architected iOS apps, from reactive mutable lists to the retain cycle trap nobody warns you about.
  • Minerva: The Coordinator Pattern Done Right 2019-05-10 -- Part 3: Testable navigation by separating what to present from how to present it. Deep linking becomes a natural consequence.
  • Minerva: Kill Your Imperative List Code 2019-03-22 -- Part 2: CellModels turn iOS list management from imperative data source manipulation into declarative state descriptions.
  • Minerva: An iOS Framework Nobody Asked For 2019-02-08 -- Part 1: Why I built an open-source iOS coordinator and list framework, what existing solutions get wrong, and the core protocol.
  • Google to Dropbox: Smaller Scale, Higher Velocity 2019-01-18 -- Moving from Google to Dropbox meant smaller scale but higher velocity. Embracing open source changed what was architecturally possible.
  • Leaving Google After Two and a Half Years 2018-11-02 -- After building iOS at Google, I'm moving on. What I learned about massive refactors, build systems, and when a company is too big.
  • VIPER Is Half Dead in Modern Swift 2018-07-14 -- VIPER was a breakthrough in iOS architecture, but modern Swift makes half its layers unnecessary. A protocol-driven alternative.
  • iOS Architecture at Google 2018-03-22 -- What iOS development looks like inside Google: internal promises frameworks, years resisting Swift, and everything built from scratch.
  • Inside iOS at Google Scale 2018-01-19 -- Inside the build system, source control, and tooling that powers iOS development at Google, and why long builds change everything.