From Chrome DevTools to Loop Engineering: Addy Osmani on Understanding How Things Work

Open on YouTube ↗
Overview

Addy Osmani spent 14 years at Google, most of it on Chrome, where the work included Chrome DevTools and Core Web Vitals. The role grew from developer relations engineer to director of engineering, and the last stretch was spent in Cloud AI and Gemini. In this conversation on The Pragmatic Engineer, Osmani traces that path back to a teenager in rural Ireland who built a web browser from scratch. The conversation then turns to how AI agents are changing software engineering.

31 min read

One idea runs through the whole discussion: Osmani values understanding how things work, one layer beneath the surface. That idea shapes how Osmani describes the early browser project, the DevTools work, and the current worries about "cognitive surrender" when working with agents.

How agents have changed Osmani's day-to-day work

Asked how their workflow has changed recently, Osmani says agents have let them "take the improbable and turn it into the possible" on a daily basis, and that they now manage a lot of their life with agents. The example comes from the week of the recording. Osmani was giving a closing keynote at the AI Engineer World's Fair in San Francisco and wanted two things: to avoid repeating points other speakers had already covered in depth, and to connect the talk to earlier sessions.

In the past, Osmani says, you could only hope the sessions had been published online, or skim the abstracts. This time Osmani sent out a batch of agents to collect everything they could about the previous days' talks, including abstracts and social media posts. Osmani then used the results to reshape the talk they had already planned. Osmani calls this empowering, because the task would have taken a very long time, if it had been possible at all.

The host notes that many people describe the current moment as both fun and chaotic. Osmani agrees. People with many ideas used to be limited by time, and agents have in some ways "unchained" them. When people ask what engineers do with the time agents free up, Osmani's answer is that they do more work. They add that people wouldn't fill that time with more work unless they enjoyed it, so for them it is "fun thriving in that chaos."

A teenager's web browser and a national science prize

Osmani grew up in rural Ireland in the dial-up era and first used a computer at about eight or nine, when their father bought the family's first desktop. The question Osmani kept asking was how any of it worked: you type something into an address bar and text, photos, and videos appear. Osmani moved from building websites to programming. The first language was Pascal, with Borland's tools, and C++ came early as well.

The project that made their name started with slow downloads. Osmani recalls that a song could take hours and a music video a night or even two days. Download managers of the time sped things up by opening multiple connections to a server and requesting the file in chunks, which worked when the server supported it. Osmani wondered whether anyone had applied the same technique to loading web pages.

To test that, Osmani first had to build a browser. At 15 or 16 they started reading the HTML, CSS, and JavaScript specifications. The hardest part, Osmani recalls, was not parsing documents or loading images. It was handling pages that ignored the specs, because real browsers still render them. Osmani still has great respect for how much "weird crap" developers throw at browsers. As a form of therapy for anyone who feels bad about their own code, Osmani suggests opening DevTools and browsing the web for ten minutes to see how much goes wrong while sites still work.

JavaScript support was very difficult. Osmani then decided a browser wasn't complete without applets, Flash, and embedded Windows Media Player content, and added those too. Only after that could Osmani test the speed-up idea. It worked, and at the time many servers supported it, so pages loaded somewhat faster. The motivation was personal. Before they had a decent connection, Osmani would wear cargo pants with lots of pockets every weekend, fill them with floppy disks, and walk to the local library, which had a slightly faster connection.

Osmani entered the project in a national science competition. That was the first year the competition took computing seriously. Osmani expected to show some people some cool stuff and go home, but won the overall prize in a live televised finale. The following Sunday the phone kept ringing, with calls from the Wall Street Journal and CNN. The host compares it to going viral before Twitter existed.

Osmani's main lesson from the experience is that they still didn't fully understand what they had built. Getting an app to work on your own machine doesn't mean you understand the layers underneath. Osmani says this started a lifelong need to understand how things work, and jokingly calls themselves "a one-trick pony" in that respect.

Peeling back the onion

Osmani then worked at startups and at AOL. On the first day at AOL, a manager told Osmani to log into the browser and help the team. The AOL browser app immediately asked for a credit card before any debugging could start. The manager was busy, so Osmani entered it. Osmani calls it "a very different time."

Osmani describes computing as an onion with interesting things under every layer. With browsers, the layers include the network, compositing, and the JavaScript engine, and below those are chips, memory, and the GPU. In Osmani's view, the more of these foundations you understand, the better you can build for constrained environments. If you know why a slower phone is slow, you know how to design differently for it. That is why Osmani encourages people to learn how things work.

jQuery, TodoMVC, and the path to Speedometer

jQuery was Osmani's first contribution to a large community open-source project. For a few years it was the most widely used library on the web. Osmani credits its creator, John Resig, with building a welcoming environment where people could become better contributors. Osmani started with issue triage, then wrote blog posts and contributed code. Because jQuery was used in so many ways, people often argued hard over whether a feature belonged in core or in a plugin. Osmani learned how to work with a community while still holding a line on decisions that affect long-term maintainability.

TodoMVC began with Osmani's own confusion. As frameworks such as Angular, Backbone, YUI, and Ext JS appeared, every landing page promised easier app development, and it was hard to see how they actually differed. Osmani built the same to-do application in each framework and standardized its functionality so people could compare architecture, syntax, and each framework's approach to components and UI. The app was meant to be simple enough for anyone to understand, but interactive enough to exercise features like state management and routing.

Osmani had no expectations for it, but it quickly gained thousands of GitHub stars. Framework authors started sending pull requests to add their frameworks, and Osmani met some of their first close open-source friends that way, including Sindre Sorhus, who went on to write a large number of Node modules. For years, framework tutorials used a TodoMVC app as their baseline, and Osmani says they still saw labs demonstrating features with TodoMVC apps as recently as last year.

While the project was growing, the Safari and WebKit team at Apple contacted Osmani about building a browser benchmark for responsiveness. They meant how quickly a browser responds to clicks and taps, not responsive layout for mobile. The collaboration became Speedometer. Osmani says Speedometer has become the main web application responsiveness benchmark for all browsers, and that browser vendors now maintain it together and update it as new frameworks and architectural patterns appear. Osmani sees it as carrying TodoMVC's legacy forward.

Joining Google in the early Chrome era

Osmani first thought about working at Google while visiting their wife's parents in the Midwest, when a documentary about early Google engineers came on TV. Years later, after Osmani had been publishing free educational material for front-end and JavaScript developers, Google reached out to interview them for a DevRel and builder role. Google wanted help with some tooling and with evangelism in the tech community. Osmani ended up on the Chrome team.

Osmani joined around 2012–2013. At the time, Chrome was focused on encouraging developers to push the platform and expose its gaps so Chrome could build better APIs. One example was the Chrome Experiments site, which showcased work such as WebGL demos and inspired some people to learn about shaders. Front-end tooling was still immature. Meta-frameworks like Next.js didn't exist, JavaScript modules weren't standardized across browsers, and people used AMD, UMD, and CommonJS alongside build tools like Grunt. The host adds that debugging meant using Firebug in Firefox and hoping things worked in Internet Explorer, which for a while had almost no good debugging tools.

Google's contribution to this tooling included Yeoman, a scaffolding tool with a CLI wizard. You chose a UI library, a testing library, and a deployment target, and it generated a starting point. Osmani doesn't call it the first meta-framework, but describes it as an attempt to bring some organization to how projects start. These ideas are standard now, Osmani notes, but they didn't exist then, and Osmani wouldn't be surprised if modules from that era still run inside today's tools. Osmani also recalls the constant churn from Grunt to Gulp to Webpack, Rollup, and Vite, and is glad things now seem to have stabilized somewhat.

Inside Chrome DevTools

Osmani credits Pavel Feldman, the DevTools tech lead, with much of the product's early direction. Chrome was deciding how to set its developer tooling apart from the WebKit Inspector, and Feldman's team took a developer-centric, ecosystem-focused approach. They worked closely with developer advocates like Paul Irish and later Paul Bakaus (whom Osmani mentions as now known for the "impeccable" design skill). Those people, Osmani included, were web developers who built things on the side. They brought their friction points to the DevTools team. Sometimes the tools couldn't be built yet because the browser lacked the underlying instrumentation.

Osmani highlights the performance panel, where you can hit record, interact with the page, and get a flame graph with detailed tracing of where time is spent. Memory is the counterexample. Osmani suspects few developers understand memory management, which makes memory problems even harder to debug, and says the state of the art in memory debugging hasn't advanced much over the years.

Osmani describes several eras the DevTools team adapted to:

Frameworks and libraries. On an interactive page built from many libraries, which code do you care about: the framework, third-party plugins and components, or your own code? DevTools invested in source maps so developers could trace behavior back to the original files, even through the long toolchains large sites use. Osmani thinks people underestimate how many tools those sites run for a single task. DevTools also added ways to ignore specific code, so you could say, in Osmani's example, don't flag issues inside the React library, but do flag issues in the React code I wrote.

Mobile. At first there were no tools for testing viewport widths, tap-target sizes, or sensors. DevTools added a device mode that previews a site at different viewport sizes, roughly as it would appear on an iPhone or Pixel. Osmani acknowledges that testing on real devices is still best, but says a quick check of whether you're heading in the right direction was valuable.

Progressive web apps. As the web tried to compete with native apps through offline caching, push notifications, and background sync, each of these features needed debugging support. That led to the Application panel for inspecting service workers, caches, and related features.

The host says Google never seemed strong at building IDEs, except inside Chrome, where DevTools offers the kind of breakpoints, conditional breakpoints, and performance and memory tooling they were used to in Visual Studio. Osmani says whether DevTools is or should become an IDE was a constant debate on the team. The team settled on meeting developers where they already work, because everyone will keep a favorite editor, or now, a favorite control plane for their agents.

The latest era, under tech lead Yang Gao, has been about AI. Osmani describes two goals: helping people make sense of the huge amount of data the browser produces, and letting developers connect agents to Chrome and DevTools to automate workflows. On the first, Osmani recalls that when helping large sites with performance, they could spend half a day reading traces before writing a single fix. LLMs, Osmani says, can now work through huge traces quickly and get to actionable fixes.

Core Web Vitals: turning how a page feels into numbers

The host notes that metrics like Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS), First Input Delay (FID), and Interaction to Next Paint (INP) link how a page feels to measurable values, and asks how the team came up with them. Osmani says the Chrome team has always relied on user experience research and revisited it whenever the web changed.

Performance used to be judged by vague ideas like whether a page had "loaded" or was "ready." Does ready mean you can see it, or that clicking does something? The team broke the user journey into moments: Is anything happening, like a header or spinner? Is something useful there, like a hero image, video, or the main content? Is it usable? Each moment can map to a metric. A hero image might correspond to LCP, but Osmani stresses this doesn't generalize. On some pages, the article text is what matters.

For interactivity, Osmani describes clicking "add to cart" while shopping and getting nothing. The host explains what's usually happening: the JavaScript or event handler hasn't loaded yet. Users then tap repeatedly, and once the handler attaches, the item may be added two or three times. Osmani compares it to a pedestrian pressing a crosswalk button over and over.

Layout shift came from something the team saw as clearly harmful. Sites monetized heavily with banners and modals. Even if businesses need revenue, Osmani says, that shouldn't ruin the experience, and you shouldn't be reading an article when an ad finally loads and pushes everything down. CLS reflects the idea that the page should stay stable.

Because the web is so varied, the team ran many experiments with different metric definitions. They worked with the standards community and developers to check whether the metrics matched how developers themselves judged their pages. Osmani says some companies had already thought through what matters to users starting from a blank white screen, and many had not. For the latter, Core Web Vitals started a more nuanced conversation about making sure users can complete their key action quickly.

Google's engineering culture

Osmani worked on both developer-facing and consumer-facing projects, such as Chrome performance. When a change reaches billions of users, Osmani says, engineering velocity and experimentation work very differently than at a fast-moving startup. A change may need several solutions for different markets, and success has to be measured while 20 or even 100 other experiments are running at once. Osmani describes Chrome's A/B testing process as stable and rigorous.

Osmani also says many people at Google cared about developer goodwill, even if that didn't always show from outside, and admits that in a company that large, not every group can talk to every other group. Asked to name their main contribution to Chrome's culture, Osmani says it was "meeting developers where they are at": accepting that people will use whatever tech they want, and helping them succeed on the platform. In practice that meant working with framework teams and taking their feedback on which APIs to build, instead of guessing what the community needed.

Osmani also valued how Google shared learnings across teams, pointing to the book Software Engineering at Google and similar internal write-ups. Osmani liked comparing their team's views on testing or user experience with, for example, YouTube's. The Chrome team did help YouTube improve its Core Web Vitals, which Osmani describes as very nuanced, very educational, and very time-consuming. The host notes that this kind of cross-org collaboration isn't a given at large companies, where orgs can be focused on their own goals. Osmani attributes it to people on both sides with enough agency to make it happen and who saw mutual value.

From DevRel to director

Osmani joined Google in the UK at level 4, a mid-level engineer, as a developer relations engineer. Over time they were promoted to L5 and L6 and became a manager within DevRel. About five or six years in, Osmani felt that, despite loving developer relations, they were "a builder at heart." Having been an engineer before Google, Osmani moved back to software engineering as an engineering manager, a role that allowed both engineering work and managing teams.

The team started small and grew to about 45–50 people at one point. Osmani's goal, also described in the book Leading Effective Engineering Teams, was an organization that mostly runs itself, so the leader only needs to check in occasionally and correct course, and can focus on the next important problems. For Osmani, that meant thinking through what improving model quality meant for developers, developer tooling, benchmarks, and partnerships with third parties, then bringing those ideas back to help the team make DevTools and Chrome more useful for agents.

Osmani stresses that getting there takes a lot of work: building a team structure with managers of managers, and handling time zones and coordination across a global team. Osmani then helped other managers make similar space for themselves. Osmani went from L6 to L7 to director, which is L8 at Google. For a long time the focus was the work itself, but once the org was healthy, Osmani wanted the next challenge and aimed for director for a while. As with any promotion, Osmani notes, you have to do the job before you get it, and what got you to your current level won't get you to the next one.

What changes at the director level

The host calls director the first executive level at many companies and asks what changes. Osmani recalls that when they were coming up, the director was the first executive contact. Directors held teams to their annual and quarterly goals, sponsored large programs and new projects, and ran regular reviews when things went off track. The role carries more accountability, and Osmani says you can't succeed in it if you let go of the details. A self-running org doesn't mean letting go. It means having systems that bring information, decisions, and blockers to you quickly. A central part of the job is helping people who don't always see how their technical work connects to business goals to see that link clearly.

Osmani held the director role while working on Gemini and Cloud AI. They were responsible for one of the organization's top goals for the year and had to report on it every week or two. Osmani also highlights a recent change: as models and tools improved, many directors, VPs, and SVPs started building things themselves. Every week there were conversations about what people built on the weekend, which models they were trying, and where they hit friction. Osmani says that didn't happen before, because executives usually focused on big company problems.

Cognitive debt and cognitive surrender

Osmani separates two ideas. Cognitive debt is the gradual loss of your memory and understanding of the problems you work on as you rely more on AI. Cognitive surrender follows from it: you accept whatever the AI says, so "its answer becomes your answer," and critical thinking and problem-solving fall away. Osmani is enthusiastic about harness engineering, loop engineering, and software factories. Even so, Osmani wants engineers to understand enough to fix things when they break, instead of hoping the agent figures it out.

The host notes that about a year ago Osmani advised reading an agent's reasoning and reviewing its code. Now agents are much faster and people run several at once. Osmani says their view has changed. A year ago you might see one "thinking" message, expand it, and follow the trajectory at a readable pace. Now, with Claude Code or Codex, 20 or 30 subagents may have run, and Osmani won't click through 30 trajectories. Instead, Osmani does two things.

First, Osmani reads the final summary of decisions from start to finish. If there isn't one, they ask for it, while staying aware that a model can make up decisions. The host adds that this isn't deliberate and can come from context-window limits.

Second, Osmani relies on what they call mutual amplification: working so that both the agent and the engineer get better every day. That can be as simple as asking the agent to log what it learned in a session, the decisions made, the friction encountered, and anything unusual about the approach. Osmani calls this intentionality. As long as you stay a little curious about how things work underneath, Osmani believes you can keep some of your understanding while working with models.

Loop engineering and software factories

The host brings up "loop engineering," which people including Peter Steinberger and Boris Cherny have written about, and asks what loops really are. Osmani sees loops as part of the move toward software factories. Instead of prompting toward an outcome yourself, you build a system that does the prompting, produces the outcome, and handles testing and verification. Osmani calls this the next step in a "rising tide of abstractions."

Osmani acknowledges the obvious question experienced engineers will ask: what about quality? You have to decide deliberately where humans stay in the loop. For example, the system can flag when a change touches a critical part of the codebase and needs human review. Letting loops build everything without guardrails on blast radius and quality, Osmani says, is "a recipe for disaster."

The host challenges the factory analogy. A factory produces a finished car or screw, but software, especially SaaS, isn't finished at release. Production is where it crashes and bugs appear, so a factory that doesn't connect to how the software runs in production is a different kind of factory. Osmani says this is exactly the next phase. A system that can decide what to build and how to verify it can also connect to telemetry, user feedback, and the product backlog, and might eventually become proactive. The host gives an example: an automation that triggers a coding agent when an existing error recurs in production, which attempts a one-shot fix and sends it for review. Letting it merge automatically is possible, the host says, but sounds like a bad idea today. On whether "loop" is the right word, as opposed to "workflow" or "feedback loop," Osmani expects new terms to appear every month. Some will fit and some won't. "Workflow" works too, but Osmani personally pictures it as a loop.

Osmani's concrete example is an app of their own where users can submit bug reports. Osmani used to go through them manually when time allowed and could only address a few. Now Osmani connects other data sources, such as Google Analytics and hosting provider logs, so the system can set priorities and implement fixes based on more than one signal. Suppose a view is very slow for users in India and the app gets heavy traffic from India. That raises the priority. Osmani asks whether priority still matters when an agent can work through the whole backlog, and answers that it does. Every change still has to be checked: what the agent actually changed, and how much manual testing on real devices is needed beyond emulated testing. For Osmani, the benefit is making sharper product decisions without sorting through every signal by hand.

What remains of the engineer's job

The host quotes Ryan Dahl, the creator of Node.js: "The era of humans writing code is over." The host recalls telling Uber candidates that at least half the job was writing code, and notes that this is disappearing. What replaces it?

Osmani frames the answer around "alpha," meaning your advantage, or what models still can't do well. Alpha shrinks with each model release, so it changes over time. Right now, Osmani says, engineers' alpha is taste: are we building the right thing, and is it good? Osmani pushes back on the claim that an agent can judge quality. An agent can tell whether something looks correct or matches a spec, but "good" can mean delightful, something people want to come back to. Osmani thinks it will take time for models to fully catch up on that.

Even if models catch up on judgment and verification in a year or two, Osmani argues that engineers will still need to be answerable for systems, and that kind of trust comes from understanding a system and building expertise over time. Osmani points to Chromium, one of the largest codebases in the world, where key directories have OWNERS files listing a few people accountable for that area. Those people haven't written all the code, just as engineers won't write all the code agents produce. They are responsible for understanding it and deciding what ships, what's blocked, and what's deferred. The host compares this to lawyers and to hiring a professional for a major home renovation.

Osmani adds two points. First, every time software has become easier to create, far more of it has been created. The host notes that iOS app releases and new websites are rising sharply. Osmani acknowledges that not every app has the same value and that an app one prompt away from being copied faces a different market. Still, many more people can now build, which means more potential businesses. Second, historically automation has eliminated some jobs and created others. Osmani says a big open question is what the new jobs in this knowledge economy will be. We may not yet know what they'll look like, but Osmani believes they will come.

Writing with AI, and the pull toward sameness

Osmani says they have published about 18 books, many with O'Reilly, including Software Engineering: The Soft Parts, Leading Effective Engineering Teams, and Vibe Coding, and writes regularly on social media, a blog, and a newsletter. Now that anyone can generate text with an agent, Osmani thinks it matters more than ever that published ideas are worth reading. If you ask someone for 5–15 minutes of their time, you should put real effort in.

Agents help Osmani most with research. For the loop engineering piece, Osmani sent deep-research agents to Hacker News, Twitter, and other sites to find what people had tried, where opinions were strong, what was contested, and what excited or confused people. Osmani says the goal isn't to have agents write the text. It is to form a thesis about what people are struggling with and what educational content would help.

For drafting, Osmani often writes their own version while having agents or different models write theirs, then compares them. Did the models take the thesis somewhere different, or did everyone arrive at roughly the same place, in which case the models add little? Osmani then often runs even handwritten drafts through a model for readability. This is where it gets hard. Osmani says they once spent about three hours trying to improve the workflow, but one model kept producing triads and other telltale patterns of AI writing, which made Osmani wonder whether it was worth the effort.

The host raises the loop engineering article directly. Navi from NeetCode read parts of it in a video, including a section called "Automation: this is the heartbeat," and said it felt abstract and likely AI-generated or AI-polished. The host says they also felt it lacked specifics like the ones Osmani gave in this conversation, and found it wordier than necessary, though they acknowledge that many readers appreciated it and its structure was clear. Osmani explains the process: a handwritten draft, several self-edits, then a model pass for readability. Osmani likes highly structured writing. Ten years ago, Osmani often wrote articles in the 15 minutes before a meeting, adding paragraphs without the structure they wanted. Osmani felt the earlier version of the loop engineering piece probably lacked a clear through-line and felt better about the reworked version, but recognizes that some readers would have preferred something rawer. Osmani says they genuinely struggle with the trade-off between polish and authenticity. The host mentions Michael Novati, who was criticized for an AI-sounding post and said the fix was to edit the model's output much more heavily.

Osmani says a published article usually takes three to seven days of work, and a fast one means they had an unusually clear vision. Osmani usually reviews every line several times before publishing. Osmani also admits to being in the middle on this: models may push writing toward a uniform style, and Osmani sometimes wonders, "wait, what was my writing style?" Osmani rejects the idea of training a custom model on their old writing, because they were a different person then, with different perspectives. Osmani also tested AI detectors like Pangram and was frustrated when paragraphs they had typed themselves were flagged as not human-written. Osmani says this isn't a criticism of Pangram, but sees an opportunity for tools that flag such patterns and help writers find their way back to a human voice.

What's next, and advice for engineers

Osmani recently left Google after 14 years. They say they want to help developers and businesses adapt to how software engineering is changing, since every company they talk to has many questions about the future. Osmani plans to share their next step in the coming months, but will stay in this space and in a role that involves working with developers and the ecosystem.

Asked what experienced engineers and managers should invest in, Osmani predicts that engineering, product, and other roles will increasingly converge: engineers with product sense, product managers with engineering or UX sense, and UX people who care about product. Osmani's advice is to look beyond engineering. People who haven't yet thought about product, technical evangelism, or go-to-market, the other pieces of how businesses succeed, should start. As these role boundaries blur, being able to show employers that you are more than a builder will matter. Osmani's summary: "Don't just be an engineer." Asked whether this comes back to curiosity, Osmani agrees: be a lifelong learner, stay endlessly curious, and there will be roles for you in the future.