Danylo Sakhnodaan1kdeveloper

Specialising in building Telegram bots, websites and software of any kind.

View work
  • Python
  • Node.js
  • React
  • Vite
  • WebSocket
  • TypeScript
  • FastAPI
  • PostgreSQL
  • Redis
  • Docker
  • Next.js
  • Three.js
  • GSAP
  • Tailwind
  • aiogram
  • REST API
  • Nginx
  • Linux

Four things running in production

Not prototypes. Each one has real users, a real data source and a server I keep alive.

Browse all projects

CyBus

Live bus tracking for Cyprus.

Real-time vehicle positions, nearby stops, route search and timetables across Nicosia, Limassol, Larnaca, Paphos and Famagusta. Static GTFS builds the route and stop index; GTFS-Realtime feeds are decoded on demand and served as compact JSON to a full-screen map.

stops indexed
5,601stops indexed
routes
860routes
live vehicles
350+live vehicles
  • Next.js
  • TypeScript
  • PostgreSQL
  • Redis
  • Nginx
  • Docker
The CyBus live map showing Cyprus with numbered bus route markers near Larnaca and Nicosia.

Fishing Cyprus Wiki

A practical guide to fishing in Cyprus.

An interactive map of fishing spots, a species database with seasons and bait notes, plus licence rules and gear guides in one place. The whole reference ships in three languages, so a visitor reads it in Russian, English or Greek without leaving the page.

fish species
51fish species
mapped spots
30mapped spots
languages
3languages
  • Next.js
  • TypeScript
  • PostgreSQL
  • Tailwind
  • REST API
The Fishing Cyprus Wiki home page, a dark underwater scene with counters for spots, fish and freshwater species.

Crown Aero Group

The official ANG dealer site for Cyprus.

A marketing site for an aircraft dealership, built around one honest comparison: the aircraft set against the six machines buyers actually cross-shop, using published manufacturer figures rather than selective ones. Ships in English and Russian, with a demo flight booking flow.

languages
2languages
aircraft compared
7aircraft compared
site sections
4site sections
  • Next.js
  • React
  • Vercel
  • i18n
The Crown Aero Group home page: a light aircraft banking over open sea, with cruise speed, range and cost per hour listed beneath.

Receipt Manager

A Telegram bot that reads your receipts.

Photograph a receipt and the bot extracts the line items, files the spend against a category and keeps a running total. No app to install and no spreadsheet to maintain, because the interface is a chat the user already has open.

bot framework
aiogrambot framework
receipt parsing
OCRreceipt parsing
containerised
24/7containerised
  • Python
  • aiogram
  • FastAPI
  • PostgreSQL
  • Redis
  • Docker
A phone lying on a dark surface next to a paper receipt lit by a warm shaft of light.

What I build

Five things I do repeatedly, rather than a list of everything I have ever opened. Each one has shipped to production and stayed there.

Telegram bots

Conversational tools built on aiogram, from receipt scanning to booking flows and admin panels. Webhooks behind Nginx, state in Redis, everything containerised so a bot survives a reboot without losing a conversation.

Web applications

React and Next.js front ends on FastAPI or Node services, typed end to end.

Real-time data

WebSocket streams and polled transit feeds, normalised and cached before they reach a client.

A hand-painted 2D platformer scene: a lone cloaked figure on a ledge in a vast grey cavern, lit by a red lantern and drifting embers.

Unity game builds

Gameplay systems and tooling in C#, built and profiled for real hardware.

A turbine impeller rendered half in brushed steel and half as an amber wireframe mesh.

3D modelling

Hard-surface modelling and product visualisation, taken through to web-ready assets.

How a build actually runs

The same four moves every time, whether it is a bot for one person or a transit map for an island.

  1. Scope

    I read the domain before I write the schema. On CyBus that meant working through the GTFS and GTFS-Realtime specs and every operator feed before a single screen existed, because the data shape decides what the product can honestly promise.

  2. Model the data

    Schema first, in PostgreSQL, with the awkward cases written down rather than discovered later. Stops that move, routes that only run in summer, feeds that go quiet at midnight.

  3. Build

    Typed end to end, so a rename in the database surfaces in the editor rather than in production. Interfaces get built against the real feed, never against a fixture that always succeeds.

  4. Operate

    Docker, Nginx and a Linux box I actually maintain. A project is not finished when it deploys, it is finished when it keeps running and I can tell you why it broke.

bus stops indexedCyBus
5,601
routes coveredCyBus
860
fish species cataloguedFishing Cyprus Wiki
51
transit operators mergedCyBus
8

Custom PCs, built in Cyprus

I build machines to order and hand them over ready to work. Parts chosen for the job rather than the benchmark, assembled and cable-managed by hand, then tuned where it actually matters: BIOS, memory timings, fan curves and a Windows install stripped of the things that slow it down.

Tell me what the machine is for, whether that is a workstation, an editing rig, a gaming build or an office fleet, and I will spec it to that and nothing else.

Tech focused developer specialising in Telegram bots, websites, web apps and custom software.

I work with startups and digital products, with a strong focus on B2C, SaaS, automation and modern web technologies.

I enjoy turning ideas into real products, from the first line of code to launch.

Open to collaboration

Working together

What I take on
Telegram bots, web applications and the services behind them. Greenfield builds where I own the stack, or a defined piece of something larger.
How a project starts
A call about the domain, then a written scope with the data model sketched out. You see the shape of the thing before anyone commits to a timeline.
Where I work from
Cyprus, remote. Most of what I have shipped is built for people on this island, which is why the transit and fishing data is first-hand rather than scraped.
What you get at handover
Source, a Docker setup that runs the whole stack, and documentation written for whoever picks it up next. No single point of failure wearing my name.

Tell me what you are building

I read everything that arrives here. If the project is not a fit I will say so quickly rather than leave you waiting.

However you would like me to address you.

Where the reply should land.

The problem, roughly when you need it, and any constraint that matters.

Opens in your mail app, nothing is stored here.

Order project

Describe the task and I will reply on Telegram.

One line is enough.

Where I will reply.

What it should do, and any deadline that matters.