Skip to content
HR
Senior Software Engineer
4+ years5 systems5.5M+ redemptions3 countries

The interesting problems were never about the feature. They were about the system underneath it.

Most frontend problems eventually become communication problems.

The first time a production deployment broke something I didn't expect, I realized architecture decisions are really communication decisions — between you and the engineer who reads your code two years later.

Selected work

Nine systems built. Five documented here — from first frontend role to technical lead. Real constraints, honest tradeoffs, what they taught me. No screenshots, no client logos — engineering decisions speak louder than design covers.

A map of the things I think about, and the convictions that pull them together.

PerformanceArchitectureStateUXScalabilityCommunicationLongevity

The connections between the things I think about. Not a hierarchy. A map of how one decision pulls on another.

Tap or hover a node

Each one connects to the others. Each one has a thought behind it.

Principles
  • 01

    Performance is a feature.

  • 02

    State complexity should match business complexity — nothing more.

  • 03

    The best component is the one your team can delete safely.

  • 04

    Architecture decisions are really communication decisions.

Notes from production

Short reflections. Not polished. Real things I learned by building systems that other people had to live with.

When you inherit a system, the first instinct is to rewrite. The second instinct — earned painfully — is to understand.
Shipping features is easy. Keeping systems understandable after two years is the harder part of the work.
Performance optimization taught me restraint more than speed. Most of what I removed mattered more than most of what I added.
Working across three timezones taught me to write code the way I'd write a letter — assuming the reader won't be in the room to ask questions.
The best architecture decisions look obvious in retrospect. The bad ones do too.
Some systems failed quietly before they failed visibly.
  1. Event
    user action
  2. Async
    network · queue
  3. State
    invariants
  4. Derive
    selectors
  5. View
    render layer

Every visible change is the tail of an invisible flow.

Complexity accumulates silently.

The work is to keep noticing.

Things I changed my mind about

The work changes you. These are some of the ways it changed me.

01
Before

I used to build shared utilities the moment I saw a second use case. Clean interface — good abstraction.

Now

The abstraction that cost the most wasn't wrong. It was just used by enough engineers that removing it took months. Replaceability matters more than reusability. I design for deletion now.

02
Before

I thought state management was a frontend problem — something you solved by choosing the right store.

Now

The worst state bugs I've debugged had nothing to do with the store. They were synchronization gaps between what the server knew and what the client assumed. The state model you pick is a statement about where you trust the server — and most of the time, that conversation hasn't happened yet.

03
Before

I used to measure performance by what I could control: bundle size, render count, query time.

Now

The system that held under 3,000 concurrent users held because concurrency shaped the architecture from the start. Performance constraints that arrive late don't just slow you down — they constrain what you're allowed to redesign.

What’s open in my mind right now.

Some of this is active learning. Some of it is unresolved thinking I haven’t finished yet. Both belong here.

Last updated · Jun 2026
Active
  • React Server Components at scale
  • Multi-tenant architecture without tenant-specific code paths
  • AI-assisted engineering workflows beyond autocomplete
  • Architectures that survive team turnover
Unfinished thinking
  • Where product thinking should influence architecture decisions — and where it shouldn't.
  • How frontend systems stay maintainable as teams and business complexity grow in opposite directions.

Three countries. Real production systems, not freelance side projects.

Israel

4
Production systems

Long-running engagements. Consumer scale and university platforms — stewardship across years, not handoffs.

  • Consumer Coupon Platform5.5M+ redemptions
  • Provider Campaign PortalCRM · 156k+ consumers
  • B2B Multi-tenant SystemAI-layered · in production
  • University Learning Platform3,000 concurrent · exam system

California, USA

2
Production systems

Full Stack Developer on both. AI features layered on B2B SaaS and regulated e-commerce.

  • AI Proposal IntelligenceB2B SaaS · PEO services
  • Regulated E-commerceCannabis delivery · POS + admin

India

3
Production systems

First production roles. Enterprise systems serving internal teams across the supply chain.

  • Enterprise ERPJewelry · 600,000+ SKUs
  • Distributor CatalogueStructured product data
  • Employee ManagementHR + order coordination

Async-first · Cross-timezone · International delivery standards

The tools, grouped by what they actually do.

Core Frontend
  • React
  • Next.js
  • TypeScript
  • JavaScript
  • HTML
  • CSS
  • Tailwind
  • Redux
Backend & Systems
  • Node.js
  • Express
  • MongoDB
  • PostgreSQL
  • Supabase
AI Workflow
  • Claude Code
  • Cursor
  • OpenAI API
  • GitHub Copilot
  • v0
  • MCP
Engineering & Delivery
  • Git
  • GitHub
  • Vercel
  • Docker
  • Postman
UI & Interaction
  • Figma
  • Framer Motion
Build Tooling
  • Vite

One company. Trainee to Senior Engineer. Nine production systems. Three countries.

Most engineers change companies for variety. I changed domains — LMS, consumer, enterprise, AI. The scope kept expanding. So did the depth.

Nov 2025 — Present

Senior Software Engineer

Current
Tuvoc Technologies

Leading full-stack engineering across Israel, California, and India. The decisions made here — what gets abstracted, where contracts live, how state flows — are the ones other engineers on the system build on.

Dec 2022 — Oct 2025

Software Engineer

Tuvoc Technologies

Designed the pre-production environment that bridged a silent staging/production divergence — zero impact on 156k live consumers and 5.5M+ redemptions. Built and shipped production systems across LMS, ERP, AI SaaS, and consumer platforms. Became the engineer called when a deployment decision affected everyone.

Sept 2022 — Nov 2022

Trainee

Tuvoc Technologies

Three months of hands-on React training with senior developers. Foundations before moving to live production work.

A few notes on how the work happens.

Async first

Good engineering survives sleep. Documentation, commit history, and clear decisions scale better than meetings.

Full stack, frontend-first

I start at the user boundary and work backward. Frontend decisions become API decisions, API decisions become system decisions.

Product before pattern

I reach for an abstraction the third time, not the first. Premature systems are how production becomes painful in eighteen months — for everyone who has to maintain them.

The longer a system lives, the more it remembers.

Build like someone will read your code in five years. They will.

Let’s build something
that lasts.

Open to Senior Frontend, Frontend Systems, and Full Stack Engineering roles with teams shipping production across timezones. The systems that have to keep working two years from now.

Based in

Ahmedabad, India

Senior Software Engineer · React · Next.js · TypeScript · Production Systems · AI Products