Hi, I'm Patrick, a product manager on the Edge web platform team at Microsoft. I'm responsible for developer relations, which means you'll typically find me publicly talking about the good work which our team is doing in Chromium and for the web.
Previously, I worked at Mozilla, on the Firefox DevTools team.
I'm part of the Open Web Docs governing committee and a co-chair of the W3C WebDX community group. I also run DevTools Tips.

I have 20+ years of working experience with the web and have worked as a designer, web developer, software engineer, browser engineer, engineering manager, and product manager.

Get in touch with me

My signature

Fun never gets old: 30 years of creative constraints on the web

The early web was a playground. We hacked table layouts, sliced images, and spent hours on rounded corners. The tools were limited, but we made things anyway. Constraints fueled our creativity. That spirit is the web's most important legacy. In this talk, we'll trace an arc from Netscape-era hacks to modern web techniques, showing how creative abuses of technology can become the standards of the era. Along the way, we'll push today's newest features in ways they probably weren't designed for. Because it's fun and fun is how we learn, but more importantly, because that's how we make the web better together.

My speaker banner for the conference, with my face and the title of the talk on it.

WebMCP: Stop scraping the web, start calling it (W3C TPAC developer meetup, Dublin)

Back to WebMCP, this time for the W3C developer meetup alongside TPAC in Dublin. Fitting, since WebMCP is being standardized at the W3C. Agentic browsing today works despite websites, not with them: agents scrape the DOM, guess where to click, and break when the UI changes. In this short talk, I argue that agentic browsing should be built by web developers, and show how WebMCP lets websites expose tools, where it shines compared to server-side MCP, and how to try it in Edge today. Come join the community group and help shape it!
Slides.

The audience at the W3C developer meetup in Dublin, seated around long tables in a large room, with the stage and screen in the background.

Dashboard layout using CSS Grid Lanes and align-self:stretch

CSS Grid Lanes supports stretch alignment along the stacking axis, allowing items to fill any remaining space left between other items, and avoid a jagged end edge. See Aligning items within their lanes to learn more.

A dashboard UI, for illustration purposes only. It contains about 10 different boxes, some with graphs, others with numbers, or tables, etc. They're all of different widths and heights, but the resulting layout is still a regular rectangle, with boxes filling all of the empty space.

Help us shape device audio capture on the web

Capturing device audio only on the web today isn't great. getDisplayMedia doesn't only share audio, and forces users to select a screen to share. We want to improve this experience, and we have a proposal for a new API. Let us know what you think!

An abstract illustration showing thing wiggly lines, covered in little colored dots, converging to a central dot, with a single line coming out the other side.

Opening the can of tooltips

Tooltips seem simple, until you look closer. The title attribute can't be styled and isn't accessible to everyone, while custom tooltips come with plenty of complexity. What would it take to build a native tooltip that's customizable, accessible, and easy to use, from plain text to rich HTML?

Drawing of a can labelled tooltips, with the lid partially open and a bunch of tooltips coming out of it.

My favorite Interop 2027 proposals

About 40 of the Interop 2027 proposals which I think are of particular importance to the web developer community right now. Check it out, and show your support by voting for the ones you like.

39 colored squares containing the names of my favorite interop proposals.

Blurry before beautiful: image previews for the web

Showing blurry previews while images are loading on the web is a very common pattern which we'd love to standardize at the browser level, so that all developers can use it with very little code and complexity. Let us know what you think!

Abstract illustration of a multi-color blur with a line passing through it, extending past the blur, with colored dots along it.

Get in touch with me