Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 2026-07-13: Portfolio leadership positioning and preview audit

- Repositioned the homepage and about copy around product, go-to-market, and engineering leadership for developer platforms, including the 20+ person Google Maps Platform Developer Experience Engineering team and manager-layer scope.
- Reordered featured work to lead with AI-native distribution after Code Assist, then agent skills, Voice of Developer, and evals, so the page reads more like a product growth system than a list of artifacts.
- Reordered writing to put weekly learnings first and Substack experiments second, and clarified thumbnail alt text where external preview image fetching is blocked by the environment.
- Tightened writing and talks section copy around shared learnings, team systems, and shipped product surfaces.
- Improved portfolio list thumbnails by emitting real image dimensions for row and work-card images and using a more stable grid row layout.

## 2026-07-13: Portfolio feedback readiness pass

- Compressed the portfolio header into a single-line shell on mobile and desktop, added Resume and Contact navigation, and added a manual light/dark theme toggle.
Expand Down
8 changes: 6 additions & 2 deletions portfolio/build.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -472,6 +472,8 @@ function getImageDimensions(imagePath) {

function workCard(entry) {
const { meta } = entry;
const imagePath = meta.image ? join(STATIC_DIR, meta.image.replace(/^\//, '')) : '';
const imageSize = meta.image ? getImageDimensions(imagePath) : null;
const url = hasDetailPage(entry) ? entryUrl('work', entry) : rebase(meta.links?.[0]?.url || `${BASE}work/`);
const external = !hasDetailPage(entry) && /^https?:/.test(url);
const cardMeta = `<p class="card-meta">${metaLine([meta.org, meta.period])}</p>
Expand All @@ -480,7 +482,7 @@ function workCard(entry) {
${meta.tags ? `<p class="card-tags">${meta.tags.map((tag) => `<span>${escapeHtml(tag)}</span>`).join('')}</p>` : ''}`;
if (meta.image) {
return `<a class="card work-card has-thumb" href="${url}"${external ? ' rel="noopener"' : ''}>
<img class="card-thumb" src="${rebase(meta.image)}" alt="${escapeHtml(meta.imageAlt || meta.title)}" loading="lazy" width="960" height="600" />
<img class="card-thumb" src="${rebase(meta.image)}" alt="${escapeHtml(meta.imageAlt || meta.title)}" loading="lazy" width="${imageSize.width}" height="${imageSize.height}" />
<div class="card-body">
${cardMeta}
</div>
Expand All @@ -499,8 +501,10 @@ function listRow(collection, entry) {
const title = clickable
? `<a href="${url}"${external ? ' rel="noopener"' : ''}>${escapeHtml(meta.title)}${external ? ' ↗' : ''}</a>`
: escapeHtml(meta.title);
const imagePath = meta.image ? join(STATIC_DIR, meta.image.replace(/^\//, '')) : '';
const imageSize = meta.image ? getImageDimensions(imagePath) : null;
const thumb = meta.image
? `<img class="row-thumb" src="${rebase(meta.image)}" alt="${escapeHtml(meta.imageAlt || meta.title)}" loading="lazy" width="192" height="120" />`
? `<img class="row-thumb" src="${rebase(meta.image)}" alt="${escapeHtml(meta.imageAlt || meta.title)}" loading="lazy" width="${imageSize.width}" height="${imageSize.height}" />`
: '';
return `<li class="row">
${thumb}
Expand Down
4 changes: 2 additions & 2 deletions portfolio/content/pages/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ image: /previews/portfolio.jpg
imageAlt: The home page of ryanbaumann-portfolio.com, the site this repo builds and serves
---

Engineer, builder, tinkerer. I have spent 15+ years building platforms at Google, Mapbox, Instabase, and Caterpillar. My lane is the seam between solution architecture, developer experience, and product growth. I set strategy, and I stay in the work: I dogfood products, review traces, write evals, ship reference apps, and show up where developers are. The proof lives on this site. [The lab](/demos/) is a set of live apps I build and run myself.
I lead product, go-to-market, and engineering work for developer platforms. Today that means Developer Experience Engineering for Google Maps Platform: a 20+ person team across engineering, product management, technical writing, developer relations, solution architecture, AI context, and developer growth, with multiple managers leading major lanes. I set strategy, and I stay in the work: I dogfood products, review traces, write evals, ship reference apps, and show up where developers are. The proof lives on this site. [The lab](/demos/) is a set of live apps I build and run myself.

My operating thesis: **developer experience is a growth discipline.** The platforms that win don't just write better docs. They work backwards from adoption and revenue goals to the product, architecture, context, distribution, and ecosystem investments that move them. That holds whether the platform sells maps, document AI, or anything else.

## Google, 2021 to present

**Head of Developer Experience, Google Maps Platform** (2022 to present). I lead Developer Experience Engineering for a platform that powers over 10 million websites and apps. The team spans engineering, product management, technical writing, and developer relations, and operates as one unit with Product and Engineering.
**Head of Developer Experience, Google Maps Platform** (2022 to present). I lead Developer Experience Engineering for a platform that powers over 10 million websites and apps. The org is 20+ people across engineering, product management, technical writing, developer relations, solution architecture, AI context, and developer growth, with multiple managers owning durable workstreams. We operate as one unit with Product, Engineering, Sales, and Marketing.

A lot of the work is forward-deployed incubation: sit with the field, find the repeated architecture or adoption blocker, build the smallest real artifact, then scale it through product, docs, partners, and distribution. The launches I led with this team, [Code Assist](https://developers.google.com/maps/ai/code-assist), [agent skills](https://github.com/googlemaps/agent-skills), the agentic eval suite, the Geo Architecture Center, and distribution into AI Studio, Replit, and Lovable, are detailed in [Work](/work/).

Expand Down
30 changes: 15 additions & 15 deletions portfolio/content/site.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"name": "Ryan Baumann",
"role": "Solution architecture, developer experience, and product growth leader",
"tagline": "Maps \u00b7 Solution Architecture \u00b7 Product Growth \u00b7 Agent-ready platforms",
"role": "Product, go-to-market, and engineering leader for developer platforms",
"tagline": "Maps \u00b7 Product GTM \u00b7 Developer Experience \u00b7 Agent-ready platforms",
"location": "San Francisco, CA",
"intro": "I lead Developer Experience for Google Maps Platform, grounded in solution architecture and forward-deployed incubation work. I have spent 15+ years turning field friction into shipped products, reference architectures, developer tools, and growth loops at Google, Mapbox, Instabase, and Caterpillar. This site stays synced to the places I actually publish: LinkedIn for weekly notes, Substack for longer experiments, X when it is useful, and GitHub for the code.",
"headline": "Selected work, written from the artifact back: the business goal, what shipped, and what I learned.",
"description": "Ryan Baumann leads solution architecture, developer experience, and product growth work for Google Maps Platform, with a focus on maps, agent-ready platforms, evals, and AI-native distribution.",
"aboutTeaser": "I operate where product, engineering, field reality, and growth meet. At Google Maps Platform, that means incubating tools, solution architectures, evals, and distribution partnerships that help developers and agents build correctly. Before Google, I grew Mapbox customer engineering from 1 to 15 as the company crossed $100M ARR, led solutions architecture at Series-B Instabase, and built industrial IoT systems at Caterpillar with 3 patents.",
"intro": "I lead Developer Experience Engineering for Google Maps Platform, a team of 20+ across engineering, product, technical writing, and developer relations, with multiple managers spanning product incubation, solution architecture, AI context, and developer growth. I have spent 15+ years turning field friction into shipped products, reference architectures, developer tools, and growth loops at Google, Mapbox, Instabase, and Caterpillar. This site is where I share the artifacts, lessons, and operating notes from that product go-to-market engineering blender.",
"headline": "Selected work from the artifact back: the market goal, the team system, what shipped, and what I learned.",
"description": "Ryan Baumann leads product, go-to-market, and engineering work for Google Maps Platform Developer Experience, with a focus on maps, agent-ready platforms, evals, and AI-native distribution.",
"aboutTeaser": "I operate where product, engineering, field reality, and growth meet. At Google Maps Platform, I lead a 20+ person Developer Experience Engineering team across managers and disciplines: engineering, product management, technical writing, developer relations, solution architecture, AI context, and developer growth. Before Google, I grew Mapbox customer engineering from 1 to 15 as the company crossed $100M ARR, led solutions architecture at Series-B Instabase, and built industrial IoT systems at Caterpillar with 3 patents.",
"sectionIntros": {
"work": "Selected solution architecture, product incubation, developer platform, and growth work. Each entry covers the goal it served, what actually shipped, and the lesson I took from it.",
"writing": "Notes on solution architecture, developer experience, applied AI, evals, maps, and building platforms agents can use. Claims point back to shipped work, talks, or weekly learning notes.",
"talks": "Talks and videos. I present demo-first: working product over slides, then how it's built, then why it matters.",
"work": "Selected product incubation, solution architecture, developer platform, and go-to-market engineering work. Each entry covers the goal it served, the team or system I led, what actually shipped, and the lesson I took from it.",
"writing": "Learnings and operating notes from the product go-to-market engineering blender: developer experience, applied AI, evals, maps, team systems, and building platforms agents can use.",
"talks": "Talks and videos. I present demo-first: working product over slides, then how the team and system shipped it, then why it matters.",
"demos": "Live apps I build and run myself: real OAuth, real quotas, real cold starts, and real architecture tradeoffs. One Cloud Run service, server-side secrets only, and no client JavaScript on the portfolio."
},
"links": {
Expand All @@ -26,20 +26,20 @@
"defaultShareImage": "/previews/portfolio.jpg",
"socialHandle": "@ryanbaumann",
"proofPoints": [
{
"label": "20+",
"text": "person Developer Experience Engineering team led across engineering, PM, technical writing, developer relations, and manager layers"
},
{
"label": "10M+",
"text": "websites and apps powered by Google Maps Platform, the platform where I lead Developer Experience"
},
{
"label": "$100M+",
"text": "ARR stage crossed while I grew Mapbox customer engineering"
},
{
"label": "3",
"text": "US patents from industrial IoT work at Caterpillar"
"text": "ARR stage crossed while I grew Mapbox customer engineering from 1 to 15"
}
],
"answerEngineSummary": "Ryan Baumann leads solution architecture, developer experience, and product growth work for Google Maps Platform. He focuses on maps, forward-deployed incubation, agent-ready documentation, evals, MCP tools, agent skills, and AI-native distribution. His portfolio is a zero-client-JavaScript static site plus live demo apps served from one Cloud Run container.",
"answerEngineSummary": "Ryan Baumann leads product, go-to-market, and engineering work for Google Maps Platform Developer Experience. He manages a 20+ person multi-disciplinary team across engineering, product, technical writing, developer relations, solution architecture, AI context, and developer growth. He focuses on maps, forward-deployed incubation, agent-ready documentation, evals, MCP tools, agent skills, and AI-native distribution.",
"profileImage": "/img/ryan-baumann-profile.jpg",
"profileImageAlt": "Ryan Baumann profile image"
}
2 changes: 1 addition & 1 deletion portfolio/content/talks/agent-skills-video.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ date: 2025-12-01
summary: Introducing portable skill modules that teach AI agents to ship production-ready platform code in one install.
links: [{"label": "Watch", "url": "https://youtu.be/NEk37sPlgaY"}]
image: /img/talks/agent-skills-video.svg
imageAlt: Card for the agent skills introduction video
imageAlt: Artifact card for the agent skills introduction video, used because YouTube thumbnail fetching is blocked
order: 2
---
4 changes: 2 additions & 2 deletions portfolio/content/talks/code-assist-video.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ title: Bring Google Maps Platform expertise to your AI coding assistant
venue: Google Maps Platform
type: video
date: 2025-11-01
summary: Launch walkthrough of Code Assist: what grounded code generation looks like in a real agent session.
summary: Launch walkthrough of Code Assist: how grounded code generation works in a real agent session, and how the team turned it into a product surface.
links: [{"label": "Watch", "url": "https://youtu.be/L2V58kKIHvc"}]
image: /img/talks/code-assist-video.svg
imageAlt: Card for the Code Assist launch video
imageAlt: Artifact card for the Code Assist launch video, used because YouTube thumbnail fetching is blocked
order: 1
---
4 changes: 2 additions & 2 deletions portfolio/content/work/agent-skills.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
title: Google Maps Platform Agent Skills
org: Google
role: Product & engineering lead
role: Product, GTM & engineering lead
period: 2025 – present
summary: Portable skill modules that teach AI agents how to build with the platform across Web, Android, iOS, and Web Services. Installed with one command.
tags: ["agent skills", "applied ai", "distribution"]
links: [{"label": "GitHub", "url": "https://github.com/googlemaps/agent-skills"}, {"label": "Docs", "url": "https://developers.google.com/maps/ai/agent-skills"}, {"label": "Video", "url": "https://youtu.be/NEk37sPlgaY"}]
image: /img/work/agent-skills.svg
imageAlt: Terminal panel showing the one-line install command npx skills add googlemaps/agent-skills
featured: true
order: 2
order: 3
---

## The goal
Expand Down
2 changes: 1 addition & 1 deletion portfolio/content/work/agentic-evals.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ tags: ["evals", "context engineering", "growth"]
image: /img/work/agentic-evals.svg
imageAlt: Panel showing the eval loop, from task to agent run to scored result to launch decision
featured: true
order: 3
order: 5
---

## The goal
Expand Down
4 changes: 2 additions & 2 deletions portfolio/content/work/agentic-growth.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
title: Agentic Growth & AI-Native Distribution
org: Google
role: Product growth strategy lead
role: Product growth & distribution lead
period: 2024 – present
summary: Platform tools shipped into the default connectors of AI Studio, Replit, and Lovable, plus OSS libraries that grew reach 300%+ with AI-native builders.
tags: ["growth", "distribution", "open source"]
image: /img/work/agentic-growth.svg
imageAlt: Panel listing the distribution surfaces, AI Studio, Replit, and Lovable, above the react-google-maps download stat
featured: true
order: 4
order: 2
---

## The goal
Expand Down
4 changes: 2 additions & 2 deletions portfolio/content/work/code-assist.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Google Maps Platform Code Assist
org: Google
role: Product incubation & engineering lead
role: Product incubation, GTM & engineering lead
period: 2024 – present
summary: A product incubation that turned field demand for accurate AI-generated Maps code into a Google-hosted MCP service grounded in official docs and samples.
summary: Led the cross-functional team that turned field demand for accurate AI-generated Maps code into a Google-hosted MCP service grounded in official docs and samples.
tags: ["mcp", "applied ai", "developer platforms"]
links: [{"label": "Docs", "url": "https://developers.google.com/maps/ai/code-assist"}, {"label": "Launch blog", "url": "https://mapsplatform.google.com/resources/blog/announcing-code-assist-toolkit-bring-google-maps-platform-expertise-to-your-ai-coding-assistant/"}, {"label": "GitHub", "url": "https://github.com/googlemaps/platform-ai"}, {"label": "Video", "url": "https://youtu.be/L2V58kKIHvc"}]
image: /img/work/code-assist.svg
Expand Down
2 changes: 1 addition & 1 deletion portfolio/content/work/geo-architecture-center.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ tags: ["technical writing", "solution architecture"]
links: [{"label": "Architecture Center", "url": "https://developers.google.com/maps/architecture"}]
image: /img/work/geo-architecture-center.svg
imageAlt: Panel showing the Geo Architecture Center stat of 40+ published solution architectures
order: 7
order: 6
---

## The goal
Expand Down
2 changes: 1 addition & 1 deletion portfolio/content/work/intelligent-product-essentials.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ links: [{"label": "Launch blog", "url": "https://cloud.google.com/blog/products/
image: /img/work/intelligent-product-essentials.svg
imageAlt: Panel showing the Intelligent Product Essentials launch facts, zero to launch in nine months with GE Appliances
featured: false
order: 6
order: 7
---

## The goal
Expand Down
2 changes: 1 addition & 1 deletion portfolio/content/work/mapbox-oss-datascience.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ tags: ["open source", "developer advocacy", "data science"]
links: [{"label": "mapboxgl-jupyter", "url": "https://github.com/mapbox/mapboxgl-jupyter"}, {"label": "mapboxgl-powerbi", "url": "https://github.com/mapbox/mapboxgl-powerbi"}]
image: /img/work/mapboxgl-jupyter.jpg
imageAlt: A Jupyter notebook rendering a Mapbox circle visualization of US healthcare charges with mapboxgl-jupyter
order: 10
order: 11
---

## The goal
Expand Down
2 changes: 1 addition & 1 deletion portfolio/content/work/trails-ninja.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ tags: ["side project", "self-hosted", "reference apps"]
links: [{"label": "The demos", "url": "/demos/"}, {"label": "Source", "url": "https://github.com/ryanbaumann/ryanbaumann-portfolio"}]
image: /previews/strava-explorer.jpg
imageAlt: The Strava 3D Explorer flying a route through Chamonix in Photorealistic 3D, with photos anchored along the path
order: 11
order: 12
---

## What it is
Expand Down
4 changes: 2 additions & 2 deletions portfolio/content/work/voice-of-developer.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
title: AI-Driven Voice of Developer
org: Google
role: Product signal program creator & lead
role: Product signal program lead
period: 2023 – present
summary: An AI-driven product signal program that turns unstructured developer friction from Discord, Stack Overflow, issues, and support into ranked roadmap priorities.
tags: ["product", "applied ai", "developer research"]
image: /img/work/voice-of-developer.svg
imageAlt: Panel showing developer signal sources flowing into ranked roadmap priorities
featured: true
order: 5
order: 4
---

## The goal
Expand Down
2 changes: 1 addition & 1 deletion portfolio/content/writing/code-assist-launch.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ tags: ["code assist", "mcp", "developer experience"]
external: https://mapsplatform.google.com/resources/blog/announcing-code-assist-toolkit-bring-google-maps-platform-expertise-to-your-ai-coding-assistant/
image: /img/writing/code-assist-launch.svg
imageAlt: Card for the Code Assist launch post on the Google Maps Platform blog
order: 2
order: 3
---
4 changes: 2 additions & 2 deletions portfolio/content/writing/this-weeks-learnings.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: #ThisWeeksLearnings
summary: The weekly series. What shipping developer experience and applied AI actually taught me that week: traces read, evals written, products dogfooded, opinions revised.
summary: The weekly series where I share what leading developer experience, applied AI, and platform growth work taught me that week: traces read, evals written, products dogfooded, opinions revised.
date: 2026-07-12
canonical: https://www.linkedin.com/in/ryanbaumann/recent-activity/all/
tags: ["developer experience", "weekly notes", "applied ai"]
external: https://www.linkedin.com/in/ryanbaumann/recent-activity/all/
image: /img/writing/this-weeks-learnings.svg
imageAlt: Card for the #ThisWeeksLearnings weekly series on LinkedIn
imageAlt: Artifact card for the #ThisWeeksLearnings weekly series on LinkedIn, used because LinkedIn preview image fetching is blocked
order: 1
---
2 changes: 1 addition & 1 deletion portfolio/content/writing/vibing-with-maps.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ tags: ["applied ai", "maps", "vibe coding"]
external: https://ryanbaumann.substack.com/p/vibing-with-maps-practical-experiments
image: /img/writing/vibing-with-maps.svg
imageAlt: Card for the Vibing with Maps post on Substack
order: 3
order: 2
---
Loading
Loading