A Carpathian mountain lake: a summit and spruce trees above the water, a rocky bed dropping into the depths below
Summit · 2,061 m

From summits
to the depths of data

I build platforms that turn millions of raw records into maps, search and AI assistants — and large-scale e-commerce: catalogs with thousands of products, Google Ads feeds, Shopify apps and bid automation.

Symfony
Python
Next.js
React
Elasticsearch
Drupal
MapLibre
Claude

I turn millions of raw records into products people use every day: depth soundings, product catalogs and call recordings become maps, online stores, search and AI tools.

558 peaks
2,420 routes
3D map
2,338 stays

Karpaty.Rocks. A guide to the Carpathians

The most complete Carpathian platform — stays, routes, peaks and local crafts. Scroll to walk the Chornohora ridge with us.

  1. Stays2,338 staysStraight from the owners — no commission
  2. Routes2,420 GPS tracksElevation profiles, springs and shelters along the way
  3. Peaks558 peaks72 lakes · 79 waterfalls · 89 meadows
  4. 3D mapLive terrainRoutes, stays and peaks on one map
  5. AI guideSearch by meaning“Where can we go with kids near Yaremche for under ₴3,000?”

Technology already working in production

Not demos or prototypes: each one runs in a product people use every day.

01 · AI agent

An agent instead of search

People ask in plain language, and the agent calls the tools itself: water search in Elasticsearch, the bite forecast, the depth map and directions to the ramp. The server builds result cards from that data, so every answer is based on facts, not guesswork.

02 · RAG with verification

Answers only from your documents

The bot answers only from the client’s documents. Hybrid search (BM25 keywords plus bge-m3 vectors, merged with RRF) finds the right passages, and a verifier checks every claim. If a claim can’t be confirmed, there is no answer: the question and the customer’s contact details go to a manager on Telegram, WhatsApp or email.

03 · Data graph

The Carpathian data graph

Every place is linked to others: a peak to its routes, a route to springs and shelters, a guesthouse to its village and the nearest trails. It powers “Nearby”, the trip planner and the schema.org markup that search engines and AI assistants read.

04 · Semantic search

Search that understands meaning

“A quiet place with a hot tub for two near the forest” finds the right guesthouses even when the description shares none of those words. Keyword matches and meaning (e5 embeddings) are combined into a single ranking — search on Rybalka Club works the same way.

05 · Speech analytics

Every call — scored, with evidence

Each recording is split by speaker, then an LLM scores the sales manager against your criteria and backs every score with an exact quote from the call. All calls are searchable by meaning (pgvector).

06 · Depth maps

Depths you can’t see from the shore

Depth contours are built from official USACE, NOAA and state soundings at adaptive intervals and never show water deeper than was actually measured. Where there is no survey, the map stays empty instead of guessing. GraphHopper plots the route from the ramp to the right depth.

07 · Tile server

Our own tile server

A dedicated Python + PostGIS server downloads the raw sources itself (NHD outlines and eHydro soundings), builds depth contours and packs them into vector tiles with tippecanoe (PMTiles). nginx serves them as plain static files via Range requests: full detail up close, lightweight tiles when zoomed out, and no CDN or object storage.

08 · E-commerce

E-commerce at scale

Edit a whole Shopify store like a spreadsheet: thousands of products, warehouses and price rules, updated in minutes. The product feed drives a Google Ads automation engine, where bid rules protect the budget and Claude writes the ad copy.

09 · Stablecoin payments

A payment that confirms itself

A freelancer issues an invoice in USDC, USDT or DAI, and the client pays over a low-fee L2 network. A service that watches the blockchain marks the invoice as paid the moment the funds arrive and emails a PDF receipt.

10 · Generative content

Content that writes and translates itself

AI parsers collect the raw data, an LLM writes the descriptions, a pipeline translates them into other languages, and image models create the illustrations. An editor only reviews the result — that’s how the images and copy on this site were made.

TripsQuick. Ask the water.

TripsQuick turns government soundings into one answer: where, how deep and when to fish today.

9:41
Lake Tahoe
Depths Bite
Morning bite
November 4, 2026, 6:40 AM
Tahoma
Area
123k ac
Max depth
1,640 ft
Ramps
5
Fishing assistant

Pressure is falling and the water is 11 °C, so bass will move closer to shore. Try the 8–12 m drop-off near Tahoe Keys, 4.4 miles from the ramp.

Water temperature
11.4°C
Bite score
74/100
12%
78,208
waters in the database
lakes, rivers and bays · USGS NHD
12,945
depth maps
from official soundings · USACE · NOAA
40,204
ramps & piers
water access · FWC · RIDB
19.6M
water-quality measurements
temperature, oxygen, pH · USGS · EPA

The hard part —
invisible to the user.

Nine public sources in different formats are merged into one page per lake or river. Where there is no official survey, depth is left blank rather than invented.

01 · Sources
USGS NHDNOAA chartsUS Army CorpsFWCGeorgia DNRWater Quality PortalRIDBOpenStreetMapWikimedia
02 · Core
Symfony · 30+ CLI pipelinesETL
Elasticsearch · kNNsearch
Depth interpolation from soundingsGIS
PostgreSQL · Redis · GraphHopperdata
03 · Product
  • Next.js · ISR · JSON-LD
  • Our own MapLibre vector tiles
  • AI assistant instead of search
  • Route to the ramp
  • Expo mobile app

Every product has a business model. Here’s how they make money.

I don’t just write code — I design how a product makes money and build that into the architecture from day one.

A trail along a Carpathian ridge leads to a summit cairn above a sea of clouds at dawn

Got a complex product?
I’ll take it to the summit.

End-to-end delivery, an architecture audit or a senior engineer for your team. Working remotely from the EU (CET).