Senior Frontend Software Engineer · May 2023 - Aug 2026
Merchant analytics platform
Dashboards and drill-down reports surfacing business metrics previously unavailable to 20,000+ merchants.
- React
- Remix
- TypeScript
- Python
- REST
- Snowflake
Recharge merchants could see that revenue moved. They could not see why. Answering questions like which products drove churn, or how a cohort’s retention compared to the rest of the category, meant exporting data and rebuilding it by hand in a spreadsheet.
I led frontend development of the analytics platform that closed that gap: dashboards and drill-down reports surfacing business metrics that had previously been unavailable to more than 20,000 merchants.

Two generations of the same product
I was the primary frontend engineer on the custom reports product across two distinct architectural generations.
The first generation shipped canned reports: a fixed catalog where each report paired pre-selected metrics with pre-selected dimensions. It answered the most common questions quickly and proved the demand was real. Its limit was structural — every new question a merchant asked meant engineering built another report.
The second generation inverted that. Instead of shipping reports, we shipped the building blocks: merchants compose their own metrics, dimensions, groupings and comparison windows, and the report is a saved configuration rather than a hardcoded view. The interesting frontend work was in the constraint layer, since not every metric is valid against every dimension, and a UI that lets you build an incoherent query produces a support ticket instead of an answer.

Working across the stack boundary
None of this is a frontend-only problem. Report configurations become queries against a warehouse, and the shape of what the UI allows is bounded by what the data layer can answer at acceptable latency. I worked closely with backend and data engineers on where that line sat, which is why the constraint rules live in one shared definition rather than being reimplemented in the client.
