Senior Frontend Engineer (React / React Native) · Full-Stack with Node.js & NestJS · AI-powered engineering
I build fast web and mobile products, ship open-source React Native libraries, and answer questions on Stack Overflow when I should be sleeping.
Senior Frontend Engineer at Altex (Tehran, since 12/2025), frontend owner of a cryptocurrency exchange:
- Exchange web app with React, TypeScript, TanStack Query, Zustand, real-time Socket.IO market data and TradingView charts
- B2B platform in an Nx monorepo, MUI admin panel with full RTL, landing site and blog on Next.js 16 + Payload CMS 3
- AI agent delivery flow with Claude Code and MCP: chat → Jira ticket → branch → merge request → review → merge
Before that: XOLAB (React Router v7 + NestJS), Peykan, TRIBES, Lobox (frontend team lead), Sibche, Sheypoor, Digikala. Full story at amerllica.ir.
| Package | What it does |
|---|---|
| rn-vlc-plyr | VLC player for React Native on Nitro Modules (Kotlin, Swift, C++). MKV, HEVC, AV1, HLS, RTSP, subtitles, background audio. |
| react-native-tinode | React and React Native hooks for Tinode chat on iOS, Android and web, with offline cache. |
| expo-google-tag-manager | Expo config plugin for Google Tag Manager (Firebase). No Xcode, no native folders. |
| react-native-painting-example | Painting app with React Native Skia. |
| react-native-config-fixed-android | react-native-config with the New Architecture Android fix, later merged upstream. |
Upstream pull requests
react/react-native #59447 (open) · tinode/tinode-js #103 · hyodotdev/openiap #561 · react-native-config #811 · TanStack/query #4064 · DefinitelyTyped #48885
- Tinode chat for React Native and web, the react-native-tinode · Oct 2026
- A VLC player for React Native with Nitro Modules, from scratch to 1.0.1 · Oct 2026
- Google Tag Manager in Expo apps, without touching the native folders · Oct 2026
- Zero runtime dynamic CSS, using var() · Apr 2025
- Laravel/Lumen CI/CD with Github Actions on cPanel shared hosting; WITHOUT SSH · Aug 2023
- ▲ 129 An index signature parameter type cannot be a union type. Consider using a mapped object type instead
- ▲ 103 How can I pass parameters with history.push/Link/Redirect in React Router v4?
- ▲ 101 Types from both keys and values of object in Typescript
TypeScript React React Native Next.js Expo Nitro Modules Zustand TanStack Query Tailwind CSS Storybook Node.js NestJS PostgreSQL Redis Docker Playwright Vitest GitHub Actions Claude Code MCP
root@amerllica:~$ exit





