Square Public Web
Role: Senior Design Technologist

Square’s public web (squareup.com) is a Contentful and SvelteKit app that delivers dynamic CMS-driven content to 17,000+ pages across 11 locales. Powering the experience is a suite of custom components and platform tooling. I worked across the platform delivering rapid prototypes in close collaboration with Design and Engineering, contributing a wide range of custom and design-system level components that reduced overhead and enabled design to deliver more bespoke experiences without reinventing the wheel for every project.
I worked in close collaboration with design, jumping into code as early as possible to validate interactions live on screen. The work was dynamic based on what each project needed, with code written in TypeScript, thoroughly covered by end-to-end testing, and made production-ready in Storybook. For more bespoke components, I created tools like a Rive renderer to empower designers to more closely convey their vision on public web.
Interactive motion at scale using Rive

One foundation, many expressions
A Content Explorer component I built flexed to many different use cases, all using the same portable, extensible API that made it easy to fold into the design system later. It was later upgraded to render Rive animations, putting two foundational components I built side by side on the Square homepage today.


In another case, Feature Log and Roadmap, two highly trafficked Square pages that were part of the larger Fall Releases launch, share a single FeatureList component internally, with Roadmap fed by Contentful and Feature Log by an internal API. I worked closely with design to shape dense information into something scannable, with engineering to bridge the Feature Log data onto public web, and with marketing partners on localization. Both surfaces shipped the same component with no special-casing or one-off changes, just a clean component API contract.


Improving the components everyone uses
Tooltip and icon support extended the design system Select so it could carry richer context wherever it appeared, from pricing disclosures to the Business type filter on Feature Log and Roadmap.

