Work, and the decisions behind it
Real builds, each with the problem, what I built, the stack and the decisions behind it. Clients are anonymized unless they've approved their name.
Fashion e-commerce brand
Live- Problem
- Messenger questions were answered slowly by hand.
- What I built
- Messenger chatbot built on n8n with an LLM agent.
- Outcome
- Live in production; Messenger questions are answered without waiting for someone to reply by hand.
- Problem
- Customer messages needed fast replies without losing control of orders.
- What I built
- Agent that answers customers, places orders as pending for staff review and hands off to a human with an issue ticket.
- Outcome
- Live in production; the agent answers customers, and every order it places waits for staff to confirm.
- Stack
- Claude
- MCP
- Chrome extension
US subscription supplement store
Live- Problem
- Customers bought once and weren't contacted again at the right time.
- What I built
- Lifecycle flows timed to the buying cycle (cart reminders, reorders, win-back, review requests), with holdout testing and batched sending.
- Outcome
- Live in production; every flow runs against a holdout group, so its effect can be measured.
- Stack
- FluentCRM
- Brevo
- WooCommerce
- GTM
US subscription supplement store
Building- Problem
- Repeat customers needed a faster way to reorder.
- What I built
- iOS and Android app with native cart and guest checkout.
- Outcome
- In build; one codebase for iOS and Android, running on the store's existing WooCommerce data.
- Problem
- Several storefronts had to share one stock pool and one order process.
- What I built
- Custom TypeScript platform with queues, order verification and courier integration.
- Outcome
- Live in production; several storefronts sell from one stock pool through one order process.
- Stack
- Node.js
- TypeScript
- Fastify
- PostgreSQL
- Redis
- BullMQ
- Next.js
- Hetzner
- Cloudflare
Israeli jewelry store (Hebrew, right-to-left)
Live- Problem
- Slow pages on mobile, heavy tracking scripts and a late-loading hero.
- What I built
- LCP and preload fixes, font and script cleanup, duplicate pixel removal, server-side profiling.
- Outcome
- Live in production; the hero image loads first and each tracking pixel fires once.
- Stack
- WordPress
- WooCommerce
- Cloudflare
Israeli WooCommerce stores
Building- Problem
- Stores needed to hold a payment and charge it later, including for workshops.
- What I built
- Hold-then-charge payment flow integrated into checkout and order handling.
- Outcome
- In build; orders and workshop bookings are authorized at checkout and charged once confirmed.
US subscription supplement store
Building- Problem
- Street marketing had no way to prove which flyers produced orders.
- What I built
- QR codes with post-scan tracking and first/last-touch order attribution, built to grow with more features.
- Outcome
- In build for a live store; each order will carry the first and last QR scan that led to it.
- Stack
- WordPress
- WooCommerce
- PHP
- React
Professional directory site (Israel)
Live- Problem
- The directory needed reviews submitted through custom forms.
- What I built
- REST endpoint and form hooks for a custom review system.
- Outcome
- Live in production; reviews arrive through the directory's own forms.
US subscription supplement store
Live- Problem
- Bots were testing stolen cards at checkout, creating failed orders and payment risk.
- What I built
- Firewall rules against bot traffic, forced card authentication, API user-enumeration block, fake-order filtering.
- Outcome
- Live in production; card-testing orders stopped reaching the gateway.
- Stack
- Cloudflare WAF
- WooCommerce
- PHP
- Problem
- Ad spend kept running while sites were down and nobody knew.
- What I built
- Self-hosted monitoring with response-time history and Telegram, SMS and email alerts.
- Outcome
- In build; checks, response-time history and alerts by Telegram, SMS and email.
- Stack
- React
- Tailwind CSS
- Node.js
- VPS