# Ali Pajand > Senior software engineer in Montreal with 9+ years in React, TypeScript, and Next.js. Frontend architecture and design systems for complex SaaS, with the Node.js APIs, data models, and async workflows behind them. Ali Pajand is a Senior Software Engineer. Based in Montreal, Canada. English: professional. French: intermediate. Focus areas: Frontend architecture, React, Next.js, TypeScript, Design systems, Senior Software Engineer, Lead Frontend Engineer, Full-Stack Engineer, Node.js, Web accessibility, Data visualization, Developer experience, AI-assisted software engineering. ## Pages - [Home](https://alipajand.com/): I build product systems from the interface down: frontend architecture, design systems, and the APIs behind them. - [Portfolio](https://alipajand.com/portfolio): Case studies in frontend architecture, design systems, and end-to-end product delivery: React, Next.js, TypeScript, D3 analytics, Node.js APIs, PostgreSQL, and async AI workflows. - [Open source](https://alipajand.com/open-source): Open-source CLIs, a GitHub Action, MCP server, skill, plugins, and a GitBot contribution for repository readiness, instruction audits, and pull-request review. - [Engineering principles](https://alipajand.com/engineering-principles): How I set technical direction: product clarity first, explicit trade-offs, standards enforced by tooling, components as APIs, AI as acceleration rather than authority, honest interfaces, and maintainable systems. Ali Pajand. - [Writing](https://alipajand.com/writing): Notes on frontend architecture, design systems, trustworthy AI interfaces, developer experience, data integrity, performance, and reliable software delivery. - [Now](https://alipajand.com/now): Current focus: what’s shipping, what’s under study, tooling experiments, writing, and the stack in use. ## Case studies - [Full-Stack AI Contract Intelligence](https://alipajand.com/portfolio/ledgerguard): A multi-tenant contract-intelligence SaaS built alone across the Next.js App Router product, Fastify API, PostgreSQL schema, authentication, billing, and a queue-backed document pipeline. The design problem was keeping probabilistic extraction from becoming confirmed contract data without a human reviewing the evidence. - [Shared Design System & Frontend Standards](https://alipajand.com/portfolio/alwaysgeeky): Four product surfaces, one React and TypeScript component library. I built and owned it, documented it in Storybook, and shipped marketplace, authentication, and account workflows on top of it. The lasting part was the conventions: component APIs, accessibility defaults, TypeScript and code-review rules, and CI gates that caught drift before it shipped. - [Enterprise Analytics](https://alipajand.com/portfolio/emplifi): Data-heavy React and TypeScript analytics modules built on D3.js, assembled from shared accessible components and their documentation, running in both desktop browsers and embedded mobile webviews. Profiling the webview path led to an 80% reduction in unnecessary re-renders and chart-update paint cost on lower-powered devices. - [Deterministic AI-Agent Developer Tools](https://alipajand.com/portfolio/agent-tooling): Three TypeScript CLIs and a GitHub Action built out of the same frustration: teams adopt AI-assisted development before their conventions, agent settings, and review process can carry it. The tools make repository readiness, instruction and settings quality, and pull-request risk into things you can check in CI rather than assume. The work now includes Action v1.2.0 and integrations v0.1.2: an MCP server, a portable skill, and editor plugins. - [Privacy-first personal finance tracker](https://alipajand.com/portfolio/tallyfolio): Most personal finance apps make you choose between bank aggregation and a spreadsheet. TallyFolio is the third option: a full-stack PWA with deterministic money math, CSV import review, forecasting, and production auth, built without handing over bank credentials. - [Startup Studio Frontend Delivery](https://alipajand.com/portfolio/controltech): Four years across multiple early-stage SaaS products, dashboards, and PWAs, taken from MVP to production. Workflow-heavy interfaces built around multi-step processes, validation, async state, API integration, and the Playwright, Cypress, and Jest coverage that made repeated releases survivable. - [AI-Assisted Zoning Exploration](https://alipajand.com/portfolio/mapbylaw): An independent zoning and property-feasibility experiment for Montreal. Beyond the map-led exploration UI, the hard part was AI recommendations: one typed contract shared by the Fastify API, the React dashboard, and the React-PDF report, fed only inputs the product had already verified, with out-of-schema output rejected instead of cleaned up. ## Open source - [Agent Readiness MCP](https://github.com/alipajand/agent-readiness-action/tree/main/integrations/mcp-package): A local stdio MCP server that exposes repository readiness and agent-context audits to an editor or other MCP host. Published on npm and in the official MCP Registry. - [Agent Readiness skill and plugins](https://github.com/alipajand/agent-readiness-action/tree/main/plugins/agent-readiness): A portable agent-readiness-audit skill and plugins for Claude Code and Cursor, using the same bundled audit engines as the MCP server. - [Agent Readiness Doctor](https://github.com/gitbot-hq/Library/tree/main/bots/agent-readiness-doctor): My open-source contribution to the GitBot Library, available in its in-app Marketplace. - [agent-context-doctor](https://github.com/alipajand/agent-context-doctor): Audits the files that steer AI coding agents: AGENTS.md, CLAUDE.md, Cursor and Copilot rules, and committed Claude Code and MCP settings. Reports each problem with a severity and scores the repository from 0 to 100. - [agent-pr-reviewer-lite](https://github.com/alipajand/agent-pr-reviewer-lite): A deterministic risk pre-screen for pull requests. It reads the git diff and flags the files that deserve human review before merge: authentication, billing, migrations, CI pipelines, committed secrets, and agent permissions. - [agent-readiness-kit](https://github.com/alipajand/agent-readiness-kit): Scores how ready a repository is for AI coding agents, from 0 to 100 across 13 categories: instruction files, architecture docs, scripts, tests, safety boundaries, and more. - [agent-readiness-action](https://github.com/alipajand/agent-readiness-action): A GitHub Action that runs agent-readiness-kit and agent-context-doctor in CI. It scores the repository, checks its instruction files and agent settings, and reports the result on pull requests. ## Writing - [How to prepare integrations for the Anthropic and Cursor directories](https://alipajand.com/writing/preparing-integrations-for-anthropic-and-cursor-directories): Lessons from Agent Readiness PR #40: validate plugin manifests, document data handling, test denied execution, and separate a published release from directory approval. - [Keeping repository instructions useful with Agent Readiness Doctor](https://alipajand.com/writing/agent-readiness-doctor): Practical ways to use Agent Readiness Doctor after refactors, during onboarding, and when reviewing repository guidance. - [How I would design a document review workspace](https://alipajand.com/writing/how-i-would-design-a-document-review-workspace): How I would design a React document review workspace with server pagination, PDF-field selection, document leases, draft recovery, and keyboard accessibility. - [Designing a small library for logs too big to hold in memory](https://alipajand.com/writing/designing-a-small-library-for-logs-too-big-to-hold): A senior approach to a small TypeScript library: spec ambiguity, streaming parsing with fixed per-sensor state, Welford's algorithm, chunk-boundary tests, fail-fast errors, extensible rules, V8 sliced-string memory retention, and how AI fit into the work. - [Building CI tools for pull requests you don't trust](https://alipajand.com/writing/ci-tools-for-untrusted-pull-requests): Practical security lessons for CI tools and GitHub Actions that run on untrusted pull requests: npm name squatting, option injection, workflow command injection, config from the base branch, symlinks, ReDoS, and PR comment ownership. - [Which agent-written changes does a human need to read?](https://alipajand.com/writing/deterministic-review-triage-for-agent-prs): A practical approach to triaging AI-generated pull requests with deterministic path and diff rules: auth, billing, migrations, CI, agent permissions, skipped tests, and code owners. - [Agent instruction files are code. Lint them like code.](https://alipajand.com/writing/agent-instructions-are-code): Placeholders, risky directives, contradictions, stale commands, hidden Unicode, and risky agent settings: what goes wrong in AGENTS.md and CLAUDE.md files, and how to check them deterministically in CI. - [How I structure a frontend that owns almost no truth](https://alipajand.com/writing/how-i-structure-a-frontend-that-owns-almost-no-truth): A senior approach to frontend structure in React and Next.js: single-owner state, URL as the home for shareable UI state, server and client boundaries, component tiers, props as contracts, and what those boundaries cost. - [How I would approach building a real-time backgammon platform](https://alipajand.com/writing/how-i-would-build-a-real-time-backgammon-platform): A senior frontend architecture approach to a chess.com-style backgammon platform: real-time gameplay, SVG rendering, WebSockets, typed state, replay, analysis, accessibility, performance, observability, and entitlements. - [How I Use AI in My Frontend Engineering Workflow](https://alipajand.com/writing/how-i-use-ai-in-my-frontend-engineering-workflow): How I use AI tools, Cursor, model testing, and coding leaderboards in day-to-day frontend engineering work across architecture, product UX, refactoring, testing, and code review. - [How I approach senior frontend architecture](https://alipajand.com/writing/how-i-approach-senior-frontend-architecture): A practical view of senior frontend architecture: boundaries, state, API contracts, accessibility, performance, test strategy, and the review habits that keep product UI maintainable. - [The quiet failure mode in contract AI: when the UI believes the wrong row](https://alipajand.com/writing/ledgerguard-truth-between-extraction-and-finance): On LedgerGuard, the hard problem is not 'can we extract dates from a PDF?' It is making renewal and spend readouts stay honest when queues, idempotent workers, and humans disagree. - [Teaching MapBylaw to give honest AI recommendations](https://alipajand.com/writing/mapbylaw-ai-recommendations): How I moved from vague, ChatGPT-flavored suggestions to grounded, auditable AI recommendations inside a real zoning and feasibility product. - [Building tools that don't fight you](https://alipajand.com/writing/building-tools-that-dont-fight-you): A short framework for evaluating whether a design system, developer tool, or AI feature is actually helping the work instead of adding another layer around it. - [Moving deterministic checks into the editor with MCP](https://alipajand.com/writing/why-i-automate-code-review-with-mcp): Why I use MCP to run deterministic local checks in the editor, what that buys over scripts or hooks alone, and where human review still starts. - [Design systems that stick](https://alipajand.com/writing/design-systems-that-stick): How to get adoption and keep a design system useful with better component contracts, practical documentation, and lightweight governance. ## Contact - Email: mailto:alipajand@gmail.com - Book a call: https://calendly.com/alipajand/intro - LinkedIn: https://linkedin.com/in/alipajand - GitHub: https://github.com/alipajand ## Optional - [Full text for language models](https://alipajand.com/llms-full.txt): Case studies, open-source projects, principles, and every article in one plain-text file. - [RSS feed](https://alipajand.com/feed.xml): Writing feed. - [Sitemap](https://alipajand.com/sitemap.xml): Every indexable URL.