How I structure a frontend that owns almost no truth
Frontend architecture is not a folder layout or a state library. It is deciding which kind of state each piece of data is, giving it exactly one owner, and making the second owner hard to create.
Ali Pajand
Senior Software EngineerBased in Montreal, Quebec, Canada
Nine-plus years building production web applications, most recently in React, TypeScript, and Next.js, mostly on SaaS, analytics, and marketplace products. I own frontend architecture and the standards around it: component APIs, accessibility, rendering performance, and review conventions, written up as design docs, taught through mentoring, and enforced in CI. When a product needs more than the interface, I build the Node.js APIs, data models, auth, and background workers behind it.
Two projects that show the range: one product I own end to end, and one shared frontend system four product surfaces were built on.
A multi-tenant contract-intelligence SaaS I designed and built alone: Next.js App Router product, Node.js/Fastify API, PostgreSQL data model, authentication, billing, and a queue-backed document pipeline.
The hard part wasn't the model call. It was keeping probabilistic extraction from ever becoming confirmed contract data without a human reviewing the evidence.
Built and owned the React and TypeScript component library four product surfaces were built on, documented in Storybook, while shipping marketplace, authentication, and account workflows in Next.js.
Component APIs, accessibility, TypeScript and code-review conventions, and CI gates that kept the four surfaces from drifting apart.
I started out doing frontend work and kept going deeper into the hard parts of it: component architecture, design systems, accessibility, and keeping dense interfaces fast on the devices people actually use.
The scope widened from there. Owning an interface properly means owning what it depends on, so I took on API contracts, data models, testing strategy, CI, and the async workflows sitting behind the screens. LedgerGuard is the clearest version of that: I built the product, the API, the schema, and the queue-backed document pipeline myself.
Frontend architecture is still where I'm strongest. What changed is that I can follow a feature past the browser when the product needs it.
Technical leadership, for me, is mostly unglamorous work: making the architecture explainable in design docs before it gets expensive, mentoring engineers on the patterns, cutting accidental complexity, turning one-off patterns into shared ones, reviewing the decisions that are expensive to reverse, and still writing production code.
6 roles
Designed and built a multi-tenant AI contract-intelligence SaaS alone: Next.js App Router frontend, Node.js/Fastify API, PostgreSQL, Redis/BullMQ jobs, and a Python extraction worker, with human review before any extracted value becomes confirmed data.
Built and owned the shared React and TypeScript design system four product surfaces were built on, wrote the design docs for its changes, drove adoption with the engineers building those surfaces, mentored through pairing and code review, and shipped marketplace and authentication flows in Next.js.
Built React, TypeScript, and D3.js analytics dashboards for desktop, embedded, and mobile-webview contexts, profiled and reduced rendering cost on the mobile-webview path, traced production issues with Sentry and Hotjar, and mentored one to two engineers through the formal mentoring program.
Delivered PWAs, dashboards, and workflow-heavy interfaces across concurrent startup products from MVP to production, worked through API contracts with backend engineers, and protected core flows with Jest, React Testing Library, Cypress, Playwright, and CI checks.
Built web applications with Nuxt.js and Vue.js.
UI/UX design, information architecture, and Vue.js frontend work for Rayvarz's financial accounting software and company website.
Allameh Tabataba'i University · 2014–2017
Allameh Tabataba'i University · 2010–2014
5 areas
Repository audits across CLIs, CI, MCP, and editor skills and plugins, alongside my Agent Readiness Doctor contribution to the GitBot Library. The audit engines use deterministic rules; host clients have their own data handling.
Repository readiness and context audits through a local MCP server, published as @alipajand/agent-readiness-mcp 0.1.2.
Integration release 0.1.2 brings the audit engines to a portable skill and Claude Code and Cursor plugins.
A GitBot Library contribution for keeping repository instructions useful.
GitHub Action v1.2.0 runs agent-readiness-kit and agent-context-doctor on pull requests; published in the Actions Marketplace with the v1 tag.
Notes on frontend architecture, design systems, trustworthy AI interfaces, developer experience, and shipping software that holds up.
These are the closest thing to watching me think: how I reason about architecture, product constraints, data integrity, performance, and where automated systems should stop and a person should decide.
Frontend architecture is not a folder layout or a state library. It is deciding which kind of state each piece of data is, giving it exactly one owner, and making the second owner hard to create.
What I changed in Agent Readiness 0.1.2 to prepare for directory review: plugin documentation, schema validation, honest failure behavior, coordinated versions, and tests of the installed artifact.
A refactor can leave the code healthy and its instructions wrong. How I would use Agent Readiness Doctor to make instruction maintenance part of the development workflow.
Use this for a role, contract work, or a specific technical problem you want a second opinion on. Hiring managers and technical interviewers: happy to go deep on any case study here.
Open to senior software engineer, senior frontend, and senior full-stack roles in Montreal or remote within Canada. See what I'm working on now.