At Artificial Intelligence Park, I improved sinatech.ai's Lighthouse score from about 40 to 92+ by replacing CPU-heavy canvas animations with WebGL and adopting Next.js SSR and ISR. I configured Strapi editor access and webhook-based revalidation to allow content updates without developer intervention.
I built the frontend of AI Studio, a Persian- and English-language audio analysis app featuring transcripts, speaker profiles, search, dashboards, and interactive pipeline and speaker-network graphs. I implemented WebSocket job updates with reconnect backoff and TanStack Query cache invalidation, used OpenAPI specifications for API types, and contributed to a codebase with 60+ test files.
For Sanjava, I wrote the WebSocket session design, REST specifications, and 20+ TypeScript types used by the backend team. I delivered four analytics dashboards with PDF export, a live transcript, and an identity-verification interface supporting video recording and administrative review. I also turned the Isargaran veteran-services portal into an offline-capable PWA, including multi-step forms, a D3 map of all 31 provinces, and an admin panel.
Previously at Diaco AI Group, I built a bilingual Next.js social media analytics dashboard with live Highcharts updates over SSE. React Query caching reduced redundant API calls by about 60% and page load time from approximately 3 seconds to 1.4 seconds. I also built a virtualized folder tree handling 10,000+ URL nodes at 60fps and integrated Monaco Editor with SSE token streaming for an AI chatbot.
At Paya, I virtualized a table containing more than 15,000 rows, reducing initial rendering from around 4 seconds to under 400 milliseconds. I also implemented retries, error boundaries, and optimistic updates with React Query and documented shared components in Storybook.

