Saeed Ghofrani
For RecruitersArchitectureCase StudiesProjectsExperienceSkillsBlogContact
Discuss a role
For RecruitersArchitectureCase StudiesProjectsExperienceSkillsBlogContact
  1. Home
  2. /Playground

Hiring for backend ownership?

The recruiter brief has my role fit, strongest production results, resume, and direct contact details.

Open recruiter briefEmail me

Saeed Ghofrani Ivari

I build backend systems, lead delivery, and stay close to production.

Focus

NestJS, data-heavy services, real-time products, and Linux operations.

Contact

sa.ghofraniivari@gmail.comTelegram
GitHubLinkedInStack OverflowDev.toRecruiter briefPlayground

Playground

Small things I built to work through an idea.

The WebRTC room is a deployed application. The rest are deliberately small browser demos: enough UI to make the backend idea visible without pretending each one is a finished product.

Demos

Change the inputs, break an assumption, or open the source.

Live deployment

WebRTC room

I built this to learn the awkward parts of browser-to-browser calls: signaling, room state, reconnects, chat, and getting the whole thing through Docker, Nginx, and HTTPS.

Open appClient repoServer repo

Room status

Deployed and tested

VideoVoiceChat

TypeScript utility

compare-guard path checker

I was tired of rewriting defensive checks for nested object paths. This is the small test bench I use for the utility, including missing values, arrays, and broken JSON.

Source

Result: true

API integration

Payload normalizer

A cut-down example from integration work: take somebody else’s payload, keep where it came from, and turn it into a shape the rest of the application can trust.

Source
{
  "source": "external-crm",
  "receivedAt": "2026-08-22T09:30:00.000Z",
  "customer": {
    "id": "cus_1024",
    "fullName": "Saeed Ghofrani",
    "tags": [
      "backend",
      "api-integration",
      "realtime"
    ]
  },
  "normalizedFields": 4
}

Elasticsearch

Elasticsearch query sketch

Type a phrase and this shows the query I would send instead of passing raw search input through to Elasticsearch. The stack filter stays fixed on purpose.

Source
{
  "index": "projects",
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "summary": "backend architecture"
          }
        }
      ],
      "filter": [
        {
          "terms": {
            "stack": [
              "nestjs",
              "postgresql",
              "redis"
            ]
          }
        }
      ]
    }
  },
  "highlight": {
    "fields": {
      "summary": {}
    }
  }
}

WebSocket pricing

Price tick shaper

The numbers here are generated locally, not pulled from an exchange. I use the demo to show the shape of ticks and spread data; the linked repository contains the real WebSocket client.

Source
T+0s642790.08%
T+1s643360.09%
T+2s642830.10%
T+3s641860.11%
T+4s641480.12%
T+5s642210.13%
T+6s643520.14%
T+7s644380.15%

Streaming backend

Chunked upload planner

Move the file-size slider to see the upload split into 8 MB chunks. It is a visual explanation of the streaming approach in the repository, not a fake upload progress bar.

Source
chunk 1chunk 2chunk 3chunk 4chunk 5chunk 6