InnoLearn
An LMS for a team in Melbourne, in a Turborepo monorepo it shares with InnoMeet. Courses, assignments, exams and the landing pages.
EdTech · Monorepo · Next.js, TypeScript, Turborepo, pnpm
Four years of React, Next.js and TypeScript on real products, under real load. Right now I’m one of two engineers building InnoMeet, a live-class app for a team in Melbourne, and I still ship for Armani English here in Tehran. I live on Linux, let Claude and Cursor do the typing, and read every line before it ships.
Download my resume
Software engineer
An all-in-one learning platform: an LMS plus InnoMeet, a live online meeting app built for classes. Both live in one Turborepo monorepo.
Software engineer
An English-learning company: a big store for courses and educational products, plus a student portal with exams, study clubs and live webinars.
armanienglish.commy.armanienglish.com
Stuff I built or helped build. Most of it is still online, so go poke it.
An LMS for a team in Melbourne, in a Turborepo monorepo it shares with InnoMeet. Courses, assignments, exams and the landing pages.
EdTech · Monorepo · Next.js, TypeScript, Turborepo, pnpm
A live-class app where students and teachers actually see each other. Chat, live video, audio and image streaming, plus quizzes and polls in the middle of a class.
Real-time · Live classes · Next.js, TypeScript, Turborepo, pnpm
A large, multi-page store for educational products, kept on the latest framework versions. SEO improved significantly.
E-commerce · SEO · Next.js, TypeScript, Tailwind CSS, Zustand
Student portal with real-time exams, AI scoring, a smart study planner, study clubs and live webinars.
EdTech · AI · React, TypeScript, Chakra UI, Shadcn UI
My personal site and "comfort space", built with Astro's island architecture to stay fast. A radio and pomodoro timer are on the way.
Personal
An interactive landing page for a financial-analysis startup that explains the product clearly and helps win B2B clients and investors.
Fintech
Most of my first drafts aren’t typed by me anymore. I plan, an agent writes, and I read the diff like a stranger wrote it, because one did. The loop looks like this:
I plan itthe what and the why
I read every linelike a stranger wrote itnot right? againFour keys I press every day. Tap one to meet the tool.
My main agent. It lives in the terminal: plans the change, writes it, refactors it.
The editor I read diffs in, with quick inline edits and tab completions.
Google’s agent-first IDE, for when a few agents work side by side.
Nous Research’s open-source agent: my sidekick for research and side chores.
What I actually use, grouped. No made-up percentages.
A real little shell I wrote in about 4KB of TypeScript. Type the command «help» to see what it can do, or just press one of the keys under the screen.
$ neofetch

type help, or press a key under the screen

Things I figured out and wrote down, mostly about the web, Linux and AI.
I rebuilt this site three times this month. Here's the version I kept, why the hero is a git branch, and how it stays fast.
Hiring, a freelance project, or just a Linux question? Call me or send an email. I answer both.
I post the technical bits on my Telegram channel and on X: web tricks, Linux, AI tools, and the things I broke and then fixed. Come hang out there.