Aleksandr Baranov

Aleksandr Baranov

Full-stack engineer · Panama City · UTC−5

Six years in TypeScript: complex frontends, the backend behind them, integrations between systems, and LLM steps in production pipelines.

Work

K Health

integration with clinics' medical systemsNew York · contract · 2024 — now
  • AI
  • Healthcare
  • Integrations

An AI telehealth platform in the US. Building the service that links the company's internal systems to the external systems partner clinics run on, and automating the onboarding of new clinics. A help center for partners, with AI search.

Mapcreator

map editor for news and videoEindhoven · contract · 2022 — 2024
  • GIS
  • SaaS
  • Media
A 3D terrain map of the Grand Canyon with labelled viewpoints, made in the Mapcreator editor

Building a SaaS tool for making static, video and interactive maps for large news and broadcast companies.

Megacarwash

car-wash booking, design through releasecontract · 2020 — 2022
  • Mobile
  • Booking
  • Full-stack
Three Megacarwash app screens: home with loyalty counters, service selection, and the booking total

Full product build: the mobile app and the server side, the deployment, and the release on Google Play.

Projects

Business directory extractor

  • AI
  • Data collection
  • Human-in-the-loop
One review cell: an Instagram handle, the checklist of evidence the pipeline found, and the three buttons a reviewer presses to accept, doubt or reject it

The directory fills itself with business data from Instagram and other sources, and people check whatever looks doubtful. The data has to belong to that exact business, or it turns into a scandal.

In detail

The task

Take a list of business names and collect directory data for them from Instagram and other sources: phone, website, name, category, city.

The problem

You have to be sure the data belongs to that exact business, or you get a scandal.

How it works

  1. 1. Apify collects sources against set criteria.
  2. 2. An LLM parses the bio: phone, website, name, category, city.
  3. 3. Doubtful cases go out for a person to check.
  4. 4. Cases where every reviewer and the LLM agree are accepted automatically.
  5. 5. Cases where they disagree sharply go out for a second pass.

The review screen

  1. 1. Shows a link to the source.
  2. 2. Hides the other reviewers' votes and the LLM's, so it cannot prompt an answer.
  3. 3. Warns where an answer disagrees with the LLM's verdict.

Cost

Spend on Apify and the LLM is capped, and a local model on Ollama does the parsing instead of a paid one.

Review UI →

Catalogue scanner

  • AI
  • Mobile
  • Cost control
Two phone screens: a printed list framed by the scanner, and the catalogue cards it returns, each marked as coming from the catalogue or as a new item

Photograph a printed list of items and get catalogue cards back, with data and photos. Recognition runs on the phone, and the model is only called for what isn't in the catalogue already, which is what keeps it cheap.

In detail

The problem

The data for every item is out there on the internet, but looking it up one item at a time takes forever.

How it works

  1. 1. The photo is recognised on the device with iOS Vision, so nothing is sent to a server to be read.
  2. 2. A recognised item is looked up in the catalogue. If it is there, the data and the photo come from there; if it is not, the model or an external API is asked, and the answer is stored.

Cost

The model is only called for what the catalogue did not have. Anything found once is never asked for again.

Stack

React Native, iOS.

Life balance assistant

  • AI
  • Mobile
  • Wellbeing
The assistant's screen: six rings scoring work, family, health, friends, hobby and rest

A chat assistant for people who want to even out work, family, health and rest. It follows what you write, sees which areas of life have gone without time lately, and offers something specific in a free window in the calendar.

In detail

The task

An assistant for people who want to even out their life balance.

How it works

  1. 1. The user writes a message to the assistant.
  2. 2. The system reads the emotion and the intent behind it and works out the area of life: career, family, a hobby, friends.
  3. 3. It looks at the current balance, what has had little time and what has had too much, and offers to schedule something.
  4. 4. It looks for free slots in the calendar, allowing a sensible amount of time for that kind of activity and taking the day and the week into account.
  5. 5. The user gets a proposal for a specific time, and either takes it or keeps talking.

Stack

React Native; voice or text in.

Lead intake pipeline

  • AI
  • CRM
  • Automation
The pipeline holding an enquiry for a person: the missing contact field flagged, beside the CRM record it would have written

A free-text enquiry becomes a tidy CRM record: who, how to reach them, what they need. An LLM reads the text, ordinary code checks the result, doubtful cases go to a person, and spend on the model has a hard ceiling.

In detail

The task

Turn the free text of an enquiry (“hello, we need…”) into a CRM record with fields: who, how to reach them, what they need.

The problem

The model can miss a field or invent one, and every call to it costs money.

How it works

  1. 1. An LLM reads the enquiry and pulls out the fields.
  2. 2. Ordinary rule-based code checks the result and catches what the LLM dropped.
  3. 3. Doubtful enquiries are held and shown to a person: which field is missing, and what record would be written.
  4. 4. A checked record goes into the CRM.

Cost

A hard ceiling on model spend, and the pipeline stops when it is reached.

Code →Demo →

Waypoint

  • Maps
  • OpenStreetMap
  • Search
Waypoint: the filtered results list beside the map, pins clustered over Irkutsk

A city map of 199 places: search, filters, opening hours, photos and reviews. It runs on open maps, with no paid Google key behind it.

In detail

The task

A map of Irkutsk where you can find a place by name or category and see its hours, photos and reviews straight away.

How it works

  1. 1. The open-source Leaflet engine and OpenStreetMap data, so there is no paid Google Maps key.
  2. 2. A results list beside the map, with the pins clustering as you zoom out.
  3. 3. Started on Firebase, rebuilt on React 19.

Code →Open it →

About

I've always liked making things with my hands, and programming ended up being another way to do that. Python was my first language, and I got to it through machine learning rather than the web.

I taught the advanced Python course at Yandex Lyceum to school students. Somewhere in there I was handed the backend for someone else's frontend project and found out I could carry a whole application on my own, which is how I've wanted to work ever since. When I moved countries, what got me hired was work I could show end to end. I've been remote since, now from Panama City.

Languages

🇬🇧 English (advanced) · 🇪🇸 Spanish (professional)

Education

BSc Software Engineering, Irkutsk National Research Technical University (2018–2022)

Stack

Backend

Node.js, TypeScript, NestJS, PostgreSQL, Redis, BullMQ

Frontend

React, Next.js, Vue / Nuxt (SSR/ISR), React Native

AI

Production LLM pipelines: evals, RAG, structured output, cost control

Geo

MapLibre GL (with renderer patches), vector tiles, SVG map export

Infra

Docker, GitLab CI/CD, AWS, GCP

Away from the keyboard

I run, ski and ride bikes, and I mostly plan trips around where I can do that. I've drawn since I was a kid, Adobe Illustrator included. Most of these are from Siberia, where I lived before, and from the coast here in Panama.

  • At a mountain marathon, still wearing the race bib
  • Looking down at skates on clear black ice
  • On a bike at a road sign in the Tunka valley, Siberia
  • Ski touring on a ridge, mountains and a frozen lake below
  • Sitting on lava rock in a volcanic caldera
  • A single ski track climbing through snowed-in forest
  • At a viewpoint facing a hilltop palace across the valley
  • Skiing an open slope above the treeline
  • Carrying a surfboard up the beach at dusk
  • A sand sculpture built on an empty beach