Skip to content
View Salama-Malek's full-sized avatar

Organizations

@nodemaven

Block or report Salama-Malek

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
salama-malek/README.md
SM4Tech mark

Salama Malek

Full-stack developer · infrastructure, developer tools and multilingual products · Moscow

I work on proxy and network infrastructure at NodeMaven, and I ship products in four writing systems.
The work I am proudest of measures something and then publishes what it measured, including the parts that did not go my way.

LinkedIn Email

23 projects shipped since 2022, 4 writing systems, 6 product domains, 50 tests in CI

Featured work

connection-checker · open source, MIT

Is your proxy actually hiding you? A leak-detection tool that catches what a proxy quietly fails to cover: WebRTC over STUN and TURN, HTTP/3 over QUIC, and addresses the browser reports but the network contradicts.

The design rule is that it never trusts the browser. Every channel also has a server-side observation, and a leak is defined as the disagreement between the two.

flowchart LR
    B["Browser<br/><i>claims an identity</i>"]

    subgraph SRV ["Server side: what is actually observed"]
        direction TB
        C["credentials<br/><i>mints 120s TURN creds</i>"]
        T["coturn + stun-observe<br/><i>records the real UDP source</i>"]
        R["turn-readback<br/><i>read-only view of the relay</i>"]
        H["http3-probe<br/><i>QUIC support and exit IP</i>"]
    end

    B -->|asks for credentials| C
    B -->|WebRTC / STUN / TURN| T
    B -->|HTTP/3 over QUIC| H
    T --> R
    R --> V{compare}
    H --> V
    V -->|they disagree| LEAK["Leak: a real address escaped"]
    V -->|they match| OK["Clean on the measured channels"]
Loading

Four containerised services behind one docker compose up, 50 tests across a CI matrix, self-hostable end to end. Observations are keyed to a random token and expire after 120 seconds, which the README states plainly, alongside the things the tool deliberately does not check. A leak-detection tool that only lists its wins is not one you should trust.

Python Flask coturn WebRTC QUIC Docker vanilla JS


An AI voice receptionist that answers calls, holds a conversation, and acts while the call is still in progress. The conversation module runs function-calling against a task layer, so a call can create a record or fire a notification before it ends, then hand off to a human when it should.

NestJS organised by domain rather than by file type: telephony (Twilio webhooks), conversation (AI client, prompts, function calls), tasks, calls, notifications (Telegram and email), database (Prisma over PostgreSQL). Every boundary has a class-validator DTO, so malformed telephony payloads are rejected at the edge rather than deep in a service.

NestJS TypeScript Prisma PostgreSQL Twilio


My most sustained project at 68 commits. Daily reading plans for a church youth group, with reminders, confirmations, streak history and analytics for the leader. Polyglot by necessity rather than fashion: TypeScript, PHP, Python and shell all earn their place in the delivery path.

TypeScript PHP Python Shell


Coptic Moscow parish platform private repository

Notification platform in Arabic, Russian and English, built as a monorepo. Clergy send announcements, voice messages and live-stream alerts to the congregation.

The real constraint is not translation, it is direction: Arabic flips the layout, and the same components have to hold in right-to-left and left-to-right without a separate codebase. 22 commits, and the reason I will argue about bidirectional CSS.

Source is private at the parish's request, so there is no link here rather than a link that 404s. Happy to walk through the architecture.

TypeScript monorepo RTL


Cinematic bilingual site for a Moscow photo and print shop trading since 2010. Pure black voids with CMYK glow accents, a printer and press that morph through the hero, and a GSAP-pinned showcase that walks a sheet of paper through every production stage.

TypeScript GSAP i18n


Also shipped

Project What it is Stack
ReqFlow Requirements and project tracking with Kanban, Gantt, reporting and live notifications React · Express · MongoDB · Socket.IO
marmarkos-shamamsa Deacon roster and liturgy assignments with Excel and PDF export, Arabic RTL Expo Router · SQLite
moneymate-mini Lending and borrowing tracker, multi-currency, entirely on-device React Native · Zustand
IntervueAI Voice-first mock interviews with heuristic scoring and an optional REST backend React · Web Speech API · Express
taskflow-manager Kanban board with drag-and-drop, statistics and three-language UI dnd-kit · i18next · Tailwind
sa-online-school Online school site in Arabic, English and Russian, with persistent theme and consent state React · Vite · Tailwind
image-color-extractor Dominant palette from any image, sampled on canvas, no server React · Canvas
RetroHack-Salama-Edition CRT-style typing game with randomised pop-up distractions React · Vite
MySilentPlan Productivity app foundation: Expo Router shell, SQLite with versioned migrations React Native · Expo

Breadth

Projects by domain: developer utilities 7, business and commerce sites 6, mobile and productivity 4, community platforms 3, AI and conversational systems 2, infrastructure and networking 1

Counts show range, not weight. The single infrastructure project is the one I would put in front of an interviewer first.

Delivery in four writing systems

Localisation is usually where a codebase's assumptions break. These shipped in more than one:

Project Languages The hard part
Coptic Moscow private Arabic · Russian · English RTL and LTR sharing one component tree
sa-online-school Arabic · English · Russian Direction flip plus persisted theme and consent
astoria Russian · English Copy length changes breaking a pinned scroll animation
NodeMaven platform English · Russian · Chinese CJK metrics overflowing boxes tuned for Latin capitals

Trajectory

2022 ITI diploma, 2023 first production work, 2024 Assistant PM at ITSPORTS, 2025 Frontend Team Leader at Informa Core Technologies, 2026 full stack at NodeMaven

Full-Stack Developer, NodeMaven · 2026 to present Proxy infrastructure and open-source measurement tooling, plus a large WordPress platform: custom widgets, structured data, performance and trilingual delivery.

Frontend Team Leader, Informa Core Technologies · Feb 2025 to Jan 2026 Led frontend delivery for scalable web platforms and coordinated with backend teams.

Assistant Project Manager, ITSPORTS · Nov 2024 to Jan 2025  ·  Freelance Coach, EYouth · Oct 2024 to Dec 2024

Education: MSc Communication and International PR, MISIS (2023–2025) · Diploma in Open Source Applications Development, ITI (2022–2023)


Stack

I have shipped in more languages than this. These are the ones I would defend in an interview:

Core TypeScript · React · Node.js · Python
Frontend Next.js · Vite · Tailwind · React Native / Expo · GSAP
Backend NestJS · Flask · Express · Prisma · PostgreSQL · MongoDB
Platform Docker · Linux · Nginx · GitHub Actions · WordPress

Production work also in PHP, Java and C++, and comfortable in Bash and on Red Hat, but I would not claim those as current strengths.


What I care about

  • Measurement over assertion. If a tool makes a claim, the run behind it should be public.
  • Documenting limits. The section listing what a tool cannot do is the one that earns trust.
  • Quickstarts that actually run. A README whose first command fails costs more than a missing README.

Pinned Loading

  1. AI_RECEPTIONIST AI_RECEPTIONIST Public

    AI voice receptionist: NestJS backend, WebSocket STT/LLM/TTS gateway, and React dashboard for calls

    TypeScript

  2. astoria astoria Public

    Cinematic bilingual React/Three.js site for a Moscow print shop: 3D hero, GSAP scroll, real gallery

    TypeScript

  3. bible-reading-companion bible-reading-companion Public

    Daily Bible reading tracker for youth groups: Expo mobile app, React admin dashboard, PHP/MySQL API

    TypeScript

  4. connection-checker connection-checker Public

    Forked from nodemaven/connection-checker

    Is your proxy actually hiding you? Open-source tool that detects connection & identity leaks across WebRTC, STUN/TURN and HTTP/3 (QUIC), comparing what your browser reports with what the server act…

    JavaScript

  5. IntervueAI IntervueAI Public

    Voice-first mock interview practice app. React/TypeScript, heuristic scoring, optional REST backend

    TypeScript

  6. ReqFlow ReqFlow Public

    Full-stack requirements and project management platform with Kanban, Gantt, reporting, and real-time notifications

    TypeScript