Open for job offerings, and freelance projects

I build software
you can use.

Full-stack Software Engineer & Developer

I’m Daniel. I build interactive web apps, desktop tools and the systems behind them—from a usable interface to data, real-time connections and deployment.

WHAT I WORK WITH

  • TypeScript
  • React
  • Bun & Node.js
  • Rust & Tauri
  • SQLite
  • PixiJS

01 / FLAGSHIP PROJECT

A SHARED MUSIC ROOM

QueueMaster

One room.
Everyone's music.

Beta · active development / Web & Android

A shared music room, in beta.

Find a track, add your pick and listen together, with a shared queue and room chat.

  • Next.js / React
  • React Native
  • Socket.IO
  • PostgreSQL
QueueMaster desktop browser room: song discovery, room chat, playback controls and the shared queue
THE WEB ROOM Find a track. Add your pick. Listen together. See it on more screens
  1. 01

    Start with your picks

    Search for songs or paste a music link to build your personal queue.

  2. 02

    Bring them into the room

    Listen alone or invite friends by link or QR code.

  3. 03

    Keep the conversation going

    Chat, see what's next and use the room's shared controls.

BEHIND THE INTERFACE

A full stack around
a shared listening session.

I started QueueMaster by coding it manually. It now spans web and Android, shared queues and self-hosted services.

Back to the screens
  • Room state that travels

    Socket.IO carries live room updates and a server playback clock.

  • Media and persistence

    Node.js / Express handles audio; PostgreSQL stores room data and chat.

  • Controls for the group

    Hosts can seek; members suggest and vote on skips or seeks.

  • Web and Android, still evolving

    Separate browser and Android releases, in beta and active development.

Beta for web and Android. In active development. Step into QueueMaster

02 / MORE LIVE PROJECTS

Open a project.
See what it does.

Real interfaces from deployed websites.
Every image links to the live app.

  • Screenshot of InstaSharer running in a browser

    01 / Full-stack file sharing

    InstaSharer

    A personal file space for uploads, return links, public releases and private collections. Resumable transfers keep progress through dropped connections.

    Built the upload and sharing flows, access controls, owner workspace and animated interface.

    • TypeScript
    • Bun
    • SQLite
    • Google sign-in
    share.danielsite.com
  • Screenshot of Dominions Atlas running in a browser

    02 / Searchable game encyclopedia

    Dominions Atlas

    A browsable reference for Dominions 6: search across game data, compare entries, save favorites and explore connections between items, spells and units.

    Built the interface around game data from the Dom6 Inspector, with sources credited in the app.

    • TypeScript
    • Data interfaces
    • Search
    • Cloudflare
    dom6.danielsite.com
  • Screenshot of Kashka Barber running in a browser

    03 / Appointment booking

    Kashka Barber

    A Hebrew booking website for a barber: choose an appointment or check an existing booking through a focused customer flow.

    A deployed appointment interface with a clear route from the landing page to booking.

    • Booking flows
    • Hebrew / RTL
    • Responsive UI
    kashkabarber.com
  • Screenshot of Hatber running in a browser

    04 / A playful personal website

    Hatber

    A multilingual playground with draggable widgets, small interactive toys, color themes and an effects lab. Built for touch as well as a mouse.

    A modular collection of little tools and visual experiments, with a persistent browser layout.

    • TypeScript
    • Interactive widgets
    • English / Hebrew / Russian
    hatber.lol
  • Screenshot of Daniel’s Chat running in a browser

    05 / Real-time conversations

    Daniel’s Chat

    Public and direct conversations with persistent message history, nicknames and an optional message map. Part of the InstaSharer system.

    A separate chat entry point using the same personal sharing platform.

    • Real-time UI
    • Persistent history
    • Responsive design
    chat.danielsite.com
  • Screenshot of Menu Drill running in a browser

    06 / A practical learning app

    Menu Drill

    A multilingual study tool for learning a restaurant menu: flashcards, price practice, dish descriptions and a searchable reference.

    A focused interface that starts with a small working set and expands as recall improves, with a knowledge map to show progress.

    • Adaptive learning
    • Progress tracking
    • English / Hebrew / Russian
    menu.danielsite.com

03 / SOFTWARE YOU CAN PLAY WITH

A little of the engine.
Right here.

Two small demos, using code from my projects.
Try them on your phone, too.

VISUALENGINE

Motion that understands
the interface.

My VisualEngine work powers the animated UI surfaces in the live showcase and InstaSharer.

It also runs the background of this page: rain in PixiJS, a crystal and sparks in Three.js, one shared simulation. The lab lets you switch each effect on and off and play with it.

ANTI-ENTROPY ENGINE

Change the words.
Keep the history.

An editor built around an append-only event log. A change records what was inserted and removed, so an earlier version can be reconstructed.

This demo runs the app’s actual TypeScript diff and reconstruction functions. Type something, rewind, then play your edits back.

Your demo text stays in this page’s memory. The desktop app’s Rust journals and disk recovery are outside this browser demo.

See the engine source

              

04 / HOW I BUILD

Curiosity, carried
through to a working app.

I work across frontend interfaces, application logic and the services that keep them running. I use AI coding tools as part of an iterative workflow: inspect the code, build a small working version, test the behavior and refine it.

My projects span file transfer, shared music rooms, searchable data interfaces, desktop tooling and interactive graphics. I care about touch interactions, recoverable state and making software understandable to the person using it.

Open full size