Freelance · Iran
Web development with WordPress, Next.js and a bias for speed
I build sites and make them fast: custom WordPress plugins, WooCommerce stores at scale, and Next.js applications. Every project ships with a number you can check, not a feeling.
What I work with daily
- WordPress
- WooCommerce
- PHP
- Next.js
- React
- TypeScript
- Python
- MySQL
- PostgreSQL
Services
Six things I do well and do often.
Site speed optimisation
Finding what is actually slow and getting LCP, INP and CLS into the green — reported as a before and after number, not a Lighthouse screenshot.
WordPress development
A WordPress site on a bespoke theme with no page builder — light, maintainable, and structured for search from the first commit.
WooCommerce development
Building, extending and rescuing WooCommerce stores — particularly once the catalogue passes a few thousand products and the site has slowed to a crawl.
Custom WordPress plugin development
For when no off-the-shelf plugin does quite what you need — or one does, but brings ten times the surface area you asked for.
Next.js and React development
Web applications in Next.js and TypeScript — from a fast content site to an internal dashboard, deployable on ordinary Node hosting.
Chrome extension development
Browser extensions that automate repetitive work in web panels — for the cases where the target service has no API, or will not give you one.
Selected work
Every case study starts with a problem and ends with a number you can see before and after.
Healthcare2026A medical website for orthopaedic surgeon Dr Kamran Kordi
The site needed to build trust, explain orthopaedic services for different age groups, and make booking or direct contact easy without overwhelming patients with generic medical copy.
- Service groups with their own path
- 4
Read the case study
3D printing and product manufacturing2026A 3D-printing store with transparent price estimation
Customers wanted an early estimate of print cost and material before submitting a custom file. A catalogue alone was not enough for a business combining ready-made products with bespoke printing.
- Ordering paths: ready-made and custom print
- 2
Read the case study
Radiation technology and medical equipment2026A corporate and commerce website for IPAPDA
IPAPDA needed one coherent platform for engineering services, specialist products, training courses and project work, without making visitors choose between corporate content and commerce.
- Value-chain sections
- 5
Read the case study
How I work
Three rules that keep projects finishing.
- 1
Measure first
Before touching code I record the current state: LCP, INP, CLS, transfer size, database queries. Without a baseline, "it got faster" is a claim, not a result.
- 2
Smallest change, largest effect
A full rewrite is usually the most expensive and least effective option. I find the actual bottleneck first — it is often a handful of bad queries, a 400 KB slider and one plugin loading on every page.
- 3
Handover with documentation
Code without explanation is technical debt. Every project ships with a short document: what changed, why, and where to look when you want to touch it later.
Recent writing
Things I learn on the job that are worth writing down.
- 2 min read
Deploying Next.js to ordinary Node hosting, without Vercel lock-in
Many Next.js projects drift into depending on platform-specific features and then will not run on a normal server. Four decisions that prevent it from the start.
- #Next.js
- #deployment
- #Node.js
- 2 min read
Why WooCommerce product filtering slows down on large catalogues
The wp_postmeta table is excellent at storing arbitrary data and terrible at filtering on it. An explanation of the root cause and three fixes, cheapest first.
- #WooCommerce
- #MySQL
- #performance
- 2 min read
Reducing LCP in WordPress: the right order of work
Most speed guides hand you a list of twenty tasks without saying which ones matter. This one orders the work by impact-to-effort ratio.
- #performance
- #WordPress
- #Core Web Vitals
Got something in mind?
Send a short description. If I'm a fit I'll say so, if I'm not I'll say that too, and if I know someone better suited I'll point you to them.