ViktorVokh

Computer Science student who learns by shipping — I write the whole stack, then run it on real infrastructure.

Backend & systems Warsaw, Poland

Selected work

HostOpenhop · hopd

Type
Tunnelling daemon + CLI
Runs on
Self-hosted, Docker
Stack
Go, TLS, binary protocol, SSE

A self-hosted, open-source alternative to ngrok: it puts a server on your laptop at a public HTTPS address. Designed and built solo in Go.

How it works

The daemon handles the certificates and hands each subdomain to whichever agent has claimed it. Agents connect over their own binary protocol rather than HTTP, so the auth token never travels as a web request, and a built-in inspector can replay any request that came through the tunnel.

Shipped as versioned releases — Homebrew or a one-line install script on the client, a single Docker container on the server. On first start the daemon creates its own DNS records and wildcard certificate through any of 14 DNS providers, and client and server check protocol versions at the handshake so they can be upgraded independently.

Diagram: a local development server on port 3000 connects through the hop agent, over an encrypted tunnel, to the hopd server, which serves it publicly at a wildcard hop.dev subdomain over HTTPS. Each layer can be dragged to stretch the tunnel.

hostopentunnel established

PkpWays

Type
Web app
Runs on
VPS, docker-compose
Stack
Next.js 16, Leaflet, Python, Postgres, Redis, Docker

A live map of every train moving across the Polish railway network, positioned from timetable and delay data, not GPS.

How it works

The PKP PLK open-data API publishes station-by-station timetables, not GPS — so positions are interpolated from schedule and delay data, then moved along route geometry generated from OpenStreetMap railway tracks.

A Python worker is the only thing that calls the PKP API, polling into Postgres for warm storage and Redis as the hot cache — so any number of visitors read from the cache, never the upstream. Worker, database, map and TLS are one docker-compose stack on a VPS.

2,953/ 2,967
Stations geocoded
7,985
Route segments

VERSED

Type
Mobile app
Runs on
iOS & Android
Stack
Flutter, Riverpod, Supabase, PL/pgSQL

A 1v1 outfit-battle app: two fits go head to head, you pick the better one, and every fit builds its own record of wins and streaks.

How it works

Flutter on iOS and Android, Riverpod for state, and Supabase behind it for auth, Postgres and photo storage. The scoring sits in Postgres functions rather than the client — matchmaking and votes settle in one server-side transaction, and grants keep win counts out of the app's reach. No Realtime subscriptions; the arena runs on its own prefetched queue.

The VERSED versus screen: two outfit photos pitted against each other under a VS badge, with category tabs — Formal, Casual, Y2K, Techwear — across the top
Versus screen

AmIDown

Type
Web app
Runs on
AWS Lambda, 3 regions
Stack
FastAPI, AWS Lambda, React 19

Is a site down, or down for you? Three regions answer at once, so you can tell “unreachable” apart from “reachable but refusing you”.

How it works

One FastAPI app runs as a Lambda in each region through Mangum, behind API Gateway with a key per region. Nothing runs between checks, so an idle region costs nothing and a fourth one would be a deploy rather than another machine to keep alive.

3
Regions: Frankfurt, Singapore, N. Virginia

Hackathons

3 in 2026

deVoda

22–23 Jun

Day One Ukraine Hackathon, Warsaw

Team lead · backend

1st — water & sanitation

The deVoda map on iOS: drinking-fountain and water-pump filter pills over a map of Kharkiv, pins marking each water point, and an Add button for reporting a new one
Live map

Won the water & sanitation challenge in the Digital Public Infrastructure track with a Flutter app that maps drinking-water sources in real time, for when the mains go down.

What I did
  • Sourced, parsed and normalised scattered water-point and resilience-point records into a single queryable dataset the app could serve live.
  • Pitched the solution on stage to the judging panel.
1st
of the track
100+
participants
36
hours
5
on the team

Palladion

3–4 Oct

HackYeah 2026, Kraków

Team lead · backend · mobile

Reputation-threat monitoring for banks and high-trust brands: it catches viral rumours in real time, fact-checks them against the company's own documents with pgvector, and drafts a rebuttal for legal sign-off.

What I did
  • Led the team and owned the backend: Supabase schema, Google-only auth with org-scoped access, the FastAPI layer, and document upload with AI summaries.
  • Built the Expo mobile app with Google sign-in and push alerts for critical mentions.
  • Enterprise-safe by design: confidential documents are routed only to local LLMs, never cloud APIs, and scraped posts are screened for prompt injection before any model sees them.
The Palladion live feed: a Needs attention row of flagged posts about a tracked company, each with risk signals, reach, an AI manipulation warning where hidden instructions were found, and a Create counter-post button, above a filterable list of all mentions
Live feed
3,000+
participants
24
hours
4
on the team

DefiWawa

17–18 Oct

Warsaw Open Data Hackathon, 42 Warsaw

Supabase · edge functions · Mapbox

Finds the nearest defibrillator that is open right now and walks you to it, then shows the city where a new one would reach the most residents. Built on Warsaw's open AED data.

What I did
  • Ran the Supabase backend: PostgreSQL with PostGIS holding ~900 AEDs, their photos and user reports.
  • Wrote the Edge Functions (Deno) that pick the closest AED open at this moment and compare real walking times to find the fastest one.
  • Integrated Mapbox for the map, walking routes, arrival times and address search.
  • Frontend tweaks on the React web app.
~900
AEDs mapped
24
hours
100
participants
23
teams

Stack

What I actually ship with
Languages
Python TypeScript Go SQL Dart Shell
Backend
FastAPI Next.js SSE TLS / ACME protocol design stream multiplexing DNS reverse proxying
Frontend
React Flutter Riverpod Leaflet
Data
PostgreSQL Redis Supabase
Infrastructure
Linux VPS Docker systemd Caddy Nginx AWS Lambda
CI & delivery
GitHub Actions GoReleaser multi-arch images (GHCR)
AI & APIs
Vercel AI SDK OpenAI API Google Cloud Vision

About

I'm a Computer Science undergraduate at PJATK in Warsaw, studying in English. I don't stop at a local demo: I take ideas end-to-end, handle the operational edge cases, and keep services running in production. Hackathons are where I stress-test that against the clock.

Based in
Warsaw, Poland
Studying
BSc Computer Science · PJATK Warsaw (English track)
Timeline
Oct 2025 – Feb 2029 (expected)
Languages
English (C1) · Ukrainian (native) · Polish (B1)

Building something? I'd like to hear about it.

Open to internships, backend and infrastructure work, and hackathon teams that intend to win. Fastest way to reach me is email.