From 197db752db0032edc126e6726099db2014122303 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 6 May 2026 05:03:35 +0000 Subject: [PATCH] feat: PR preview deployments + tone down copy GitHub Actions: - deploy.yml: push to main deploys to gh-pages branch (production) - preview.yml: PRs deploy to gh-pages/previews/pr-{N}/, bot posts URL as comment; on PR close the preview directory is cleaned up Copy edits: - Remove superlatives ("building the future of", "prestigious", "the core engine", "algorithmic elegance", "intelligence layer for 21st-century", etc.) - Shorter, flatter descriptions throughout hero, about, experience, and research sections https://claude.ai/code/session_01Y8g3FHp9dy1wN86ThR4hYp --- .github/workflows/deploy.yml | 25 +++++++++++ .github/workflows/preview.yml | 81 +++++++++++++++++++++++++++++++++++ index.html | 62 +++++++++++---------------- 3 files changed, 132 insertions(+), 36 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 .github/workflows/preview.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..52a8938 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,25 @@ +name: Deploy + +on: + push: + branches: [main] + +# NOTE: After this workflow runs for the first time, go to: +# Settings > Pages > Source > Deploy from a branch > gh-pages / (root) + +permissions: + contents: write + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: . + exclude_assets: '.github,README.md' + keep_files: true # preserve previews/ directory written by PR workflow + commit_message: "deploy: ${{ github.sha }}" diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml new file mode 100644 index 0000000..6b4be34 --- /dev/null +++ b/.github/workflows/preview.yml @@ -0,0 +1,81 @@ +name: PR Preview + +on: + pull_request: + types: [opened, synchronize, reopened, closed] + +permissions: + contents: write + pull-requests: write + +jobs: + deploy-preview: + if: github.event.action != 'closed' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: . + exclude_assets: '.github,README.md' + destination_dir: previews/pr-${{ github.event.number }} + keep_files: true + commit_message: "preview: PR #${{ github.event.number }} @ ${{ github.sha }}" + + - uses: actions/github-script@v7 + with: + script: | + const pr = context.payload.pull_request.number; + const sha = context.payload.pull_request.head.sha.slice(0, 7); + const url = `https://a20r.github.io/previews/pr-${pr}/`; + const body = [ + `**Preview:** ${url}`, + ``, + `Commit: \`${sha}\` — updates automatically on new pushes.`, + ].join('\n'); + + const { data: comments } = await github.rest.issues.listComments({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: pr, + }); + + const existing = comments.find( + c => c.user.login === 'github-actions[bot]' && c.body.startsWith('**Preview:**') + ); + + if (existing) { + await github.rest.issues.updateComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: existing.id, + body, + }); + } else { + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: pr, + body, + }); + } + + cleanup-preview: + if: github.event.action == 'closed' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: gh-pages + + - name: Remove preview directory + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + if [ -d "previews/pr-${{ github.event.number }}" ]; then + git rm -rf "previews/pr-${{ github.event.number }}" + git commit -m "preview: remove PR #${{ github.event.number }}" + git push + fi diff --git a/index.html b/index.html index 53e034d..afb0948 100644 --- a/index.html +++ b/index.html @@ -1117,10 +1117,10 @@

// Senior Data Scientist // Zoox

- Building the future of autonomous fleet orchestration at Zoox. + Senior Data Scientist at Zoox, working on R&D fleet orchestration. Previously co-founded The Routing Company out of MIT CSAIL — - deploying on-demand mobility algorithms for public transit across three continents. - Named Forbes 30 Under 30 Europe 2024. + on-demand mobility algorithms for public transit agencies across the UK, US, and UAE. + Forbes 30 Under 30 Europe 2024.

@@ -1157,26 +1157,21 @@

Replicant Profile

Alex Wallar is a Senior Data Scientist at Zoox, - working on R&D fleet orchestration — the algorithms and - systems that coordinate autonomous vehicle fleets at scale. + working on R&D fleet orchestration.

- He previously co-founded The Routing Company out of MIT CSAIL, - serving as CTO from 2018 through 2025. TRC built on-demand mobility algorithms - for public transit agencies — replacing fixed-route buses with responsive, - data-driven networks deployed across the UK, US, and UAE. + Previously co-founded The Routing Company (MIT CSAIL spinout), + serving as CTO from 2018 to 2025. TRC built on-demand routing algorithms for + public transit agencies in the UK, US, and UAE.

- Before TRC, Alex was a PhD researcher at - MIT CSAIL's Distributed Robotics Lab under - Daniela Rus, working on optimization algorithms for - mobility-on-demand systems, vehicle rebalancing, and autonomous fleet coordination. - Three prestigious fellowships. Left in 2019 to pursue TRC full-time. + Before TRC, PhD researcher at MIT CSAIL (Distributed Robotics Lab) + under Daniela Rus, working on mobility-on-demand optimization, + vehicle rebalancing, and fleet coordination. Left in 2019 to found TRC.

- Lemelson Presidential Fellow. MIT Diversity Fellow. - Shell-MIT Energy Fellow. 10 research publications. - 1,611 citations and counting. + Lemelson Presidential Fellow. MIT Diversity Fellow. Shell-MIT Energy Fellow. + 10 publications. 1,611 citations.

@@ -1239,10 +1234,8 @@

Experience Log

Fleet Orchestration

- Building R&D fleet orchestration systems for autonomous vehicles at Zoox — - the algorithms and data pipelines that coordinate and optimize autonomous fleets in - dense urban environments. Joined alongside co-founders Menno van der Zee and Daniel - following TRC's technology license agreement with Zoox. + R&D fleet orchestration for autonomous vehicles. Joined alongside + Menno van der Zee and Daniel following TRC's technology license agreement with Zoox.

@@ -1257,10 +1250,9 @@

Experience Log

MIT Spinout

- Built the intelligence layer for 21st-century public transit from the ground up. - TRC's algorithms replace fixed-route buses with responsive, on-demand networks — - Uber-style pickups within the public transport system. Deployed across the UK, - United States, and UAE. Left MIT PhD program in May 2019 to build TRC full-time. + On-demand routing algorithms for public transit agencies — replacing fixed-route + bus service with demand-responsive networks. Deployed in the UK, US, and UAE. + Left MIT PhD program in 2019 to build TRC full-time.

@@ -1275,10 +1267,9 @@

Experience Log

Daniela Rus

- Researched mathematical optimization for mobility-on-demand systems — real-time vehicle - rebalancing, dynamic trip-vehicle assignment, and autonomous fleet coordination at urban scale. - Collaborated with Javier Alonso-Mora, Samitha Samaranayake, and Emilio Frazzoli. Three - prestigious fellowships. Left to found The Routing Company. + Mobility-on-demand optimization: vehicle rebalancing, trip-vehicle assignment, and + fleet coordination. Advised by Daniela Rus. Collaborated with Javier Alonso-Mora, + Samitha Samaranayake, and Emilio Frazzoli. Left to found The Routing Company.

@@ -1290,8 +1281,7 @@

Experience Log

Robotics Research Intern

Amazon Robotics

- Applied multi-robot path-planning and coordination algorithms in warehouse automation - environments at Amazon scale. Real-world deployment of research-grade systems. + Multi-robot path-planning and coordination in warehouse automation environments.

@@ -1318,21 +1308,21 @@

Research Domains

// 001

🚖

Mobility on Demand

-

Mathematical optimization for real-time ride-sharing dispatch. Maximizing vehicle utilization while minimizing wait times across city-scale networks — the core engine behind TRC.

+

Optimization algorithms for real-time ride-sharing dispatch: vehicle utilization, wait time minimization, and dynamic trip assignment at city scale.

// 002

🤖

Autonomous Vehicles

-

Predictive routing and fleet control for robo-taxi systems. 2026 publication in IEEE Robotics and Automation Letters on accelerating high-capacity ridepooling in robo-taxi systems.

+

Predictive routing and fleet control for autonomous taxi systems. 2026 publication in IEEE Robotics and Automation Letters on high-capacity ridepooling.

// 003

🔁

Vehicle Rebalancing

-

Proactively repositioning idle vehicles to meet predicted demand — the unsolved problem at the heart of efficient autonomous mobility. Covered in CNN for its implications on ride-sharing efficiency.

+

Proactively repositioning idle vehicles to match predicted demand. Related MIT research on ride-sharing efficiency was covered by CNN.

@@ -1346,14 +1336,14 @@

Research Domains

// 005

📡

Sensor Networks

-

Sound source localization in reconfigurable wireless acoustic sensor networks — distributed signal processing at the intersection of hardware constraints and algorithmic elegance.

+

Sound source localization in reconfigurable wireless acoustic sensor networks. Distributed signal processing under real hardware constraints.

// 006

👁️

Computer Vision

-

In-browser eye tracking and gaze prediction — real-time computer vision running entirely client-side in the browser. Built camgaze.js: no server, no plugin, just JavaScript.

+

In-browser eye tracking and gaze prediction via camgaze.js — real-time computer vision running client-side without a server or plugin.