Live portfolio data

A portfolio you can query.

Explore the work through live signals, career evidence, client exposure, and the same kinds of filters and drilldowns I build for decision-makers.

Auto-refresh: 60sUpdated Loading
8+

Years in enterprise conversational AI

8

Selected past client organizations

Loading

GitHub repositories, public + private

Tracked site interactions, last 7 days

Live data Public GitHub data refreshes automatically

First-party site activity

What people do on here

Choose up to three events to compare.

View daily activity as a table
Selected activity over the last 7 days, in UTC
DatePage viewsHigh-intent actionsExploration
2026-09-01000
2026-09-02000
2026-09-03000
2026-09-04000
2026-09-05000
2026-09-06000
2026-09-07000
Page viewsHigh-intent actionsExploration

Conversations & curiosity

How people use chat

Explore the questions people choose, the conversations they open, and the next steps they take.

Loading chat activity…

Chat launcher clicks

Unavailable

Clicks on the floating “Let’s chat!” button.

Chat opens

Unavailable

Each opening of the chat window, including reopens.

Guide button clicks

Unavailable

Selections of the four prepared-answer topics.

AI messages sent

Unavailable

Visitor messages with a successful AI reply received.

Which guide buttons get clicked?

Exact selections, ranked by count.

  • Discuss a projectUnavailable
  • Experience & backgroundUnavailable
  • Book & writingUnavailable
  • Pricing & availabilityUnavailable

Chat activity over time

Daily counts will appear when chat data is available.

What happens next?

AI view opens
Unavailable
Text Neal clicks
Unavailable
Contact form clicks
Unavailable
Message send attempts
Unavailable
AI fallbacks
Unavailable

Text and contact clicks show intent. They do not confirm a sent text or submitted inquiry.

What these counts mean

These are recorded actions, not unique people or a conversion funnel. One visitor can open chat or choose a guide more than once. Page and device describe where each action occurred. Device is based on viewport width. Opt-outs, blocked analytics, and interrupted requests can leave activity unrecorded. Chat content and visitor identifiers are never included.

AI messages sent counts visitor messages after the browser receives a successful AI response. Attempts also include unsuccessful sends. Historical launcher counts before this update cover the initial click only; subsequent reopen clicks are now recorded. Guide totals exclude overview navigation.

The last 30 days are available for segmentation. Saved counts retain their original observation time when refresh is unavailable.

GitHub / the work in motion

What I’m shipping

Every repository. A closer look at the rhythm behind the work.

GitHub profile

Loading repository activity…