SyCraft

Aleksey Zhadan · fullstack developer, DevOps · Head of TechPlatform

Systems engineering: infrastructure, AI‑agents, in-house services

I design and deliver systems that keep running for years: an estate of forty hosts, eight products in production and LLM pipelines, all built and maintained by one pair of hands. Available for private contracts.

  • Infrastructure and DevOps
  • LLM-based AI agents
  • Turnkey web services
  • Mail and networks
  • 20 years in engineering and operations
  • 731 Ansible playbooks and 154 roles in the live estate
  • 98 services with their own written spec
  • 8 own web and mobile products in constant production use
  • ≈40 hosts and network nodes across three countries, plus a k3s cluster

Services

What clients order and what they get

Not "consulting hours", but a working system with documentation and a proven deployment.

Infrastructure and DevOps

Servers, virtualisation, Kubernetes, deployment as code. An estate that can be rebuilt from scratch with one command instead of from memory.

  • Proxmox, k3s, Podman: from a single box to a cluster
  • Ansible playbooks and roles for every service
  • Backups, metrics, on-call and alerting

AI agents and LLM automation

Pipelines where the model does the routine work and passes acceptance against written criteria. Runs on free models too.

  • Multi-agent setups: planner, workers, verifier
  • Processing of mail, documents, bank statements, tickets
  • Chat front end in Mattermost and Telegram

Turnkey web services

From the data schema to deployment and a mobile client. My own products have been in production for years; yours will be built the same way.

  • Python/FastAPI, PostgreSQL, Valkey
  • TypeScript/Vue front end, Android in Kotlin
  • Single sign-on via OIDC from day one

Mail systems

Your own mail server instead of somebody else's cloud: domain migration without losing a single message, reputation kept, LLM-based anti-spam.

  • Stalwart: JMAP, IMAP, SMTP, webmail
  • DKIM/SPF/DMARC published from the zone automatically
  • Large mailboxes sorted out by models

Networking and access from any country

A private network spanning several countries: services reachable from any device, and a broken link never cuts off management.

  • MikroTik, WireGuard, per-domain routing
  • Backup management channel
  • Self-service allow lists through a bot

Single sign-on and secrets

One account for every service in the estate and a secret store the deployment reads passwords from by itself.

  • Own OIDC provider, with Forgejo, Nextcloud and mail connected
  • OpenBao: secrets out of the repository and out of people's heads
  • Role-based access, revoked with a single edit

Products already in production

Eight systems in constant production use

Not demos and not prototypes: each one handles live data every day.

LiveMail

Own webmail on Stalwart/JMAP: millions of messages, search, rules, meta folders for SMS and calls.

Built withStalwart, JMAP, Valkey cache, OIDC sign-in

ResultReplaced a paid Zimbra panel

Anti-spam and mailbox sweep

An LLM pipeline: mail and SMS are grouped by contact, each item gets a model verdict and a decision.

Built withSeveral models, batches with a daily cap

ResultClean-up runs by itself, with an emergency stop

LiveFinance

Bank statement collection and bookkeeping: automatic parsing of PDFs and APIs, balance history.

Built withPDF and bank API parsers, PostgreSQL

ResultSpending analytics without manual entry

LivePhotos

Media library: photos and video with people recognition and shot scoring.

Built withImport from external sources, recognition models

ResultBest shots surface by themselves, people are found by face

LiveHistory

A chronicle of movement and presence: phone, car, geodata.

Built withPhone, StarLine, geodata

ResultOne source of events instead of scattered logs

SyCraft IdP

Own OIDC provider: single sign-on for every service in the estate.

Built withOIDC, with Forgejo, Nextcloud and mail connected

ResultOne account for everything, access managed in one place

SyCraft Control

Android app: contact storage, synchronisation of SMS, call log and calendar.

Built withKotlin, server synchronisation

ResultRemote administration of the phone

AI agent orchestrator

A multi-agent system on Kubernetes: task assignment, workers, and a verifier for answer quality.

Built withk3s, free models under acceptance, Mattermost and Telegram

ResultTasks are solved in batches without spending the paid subscription

Architecture cases

Problem → solution → result

Four problems usually written off as "too hard, let's leave it as it is".

Mail moved out of someone else's cloud
01

Mail moved out of someone else's cloud

  • 15,000 messages in the archive
  • 41 addresses recovered
  • 2 domains with 20 years of history

Problem

Two domains with twenty years of history lived on an external mail service. The provider would not hand over the list of mailboxes, so there was nothing to migrate "as is".

Solution

The address list was reconstructed from the mail archive: 15 thousand messages, 41 addresses. The domains moved to a self-hosted Stalwart, addresses recreated as aliases and lists. DKIM/SPF/DMARC are published automatically from the zone the server itself serves.

Result

Migration without losing a single message, domain reputation intact. New domains are now added with one command.

AI sorting the mailbox instead of manual clean-up
02

AI sorting the mailbox instead of manual clean-up

  • 47,000 messages in the mailbox
  • Several models per message
  • Emergency stop and a daily cap

Problem

Forty-seven thousand messages cannot be sorted by hand, and a wrong deletion cannot be undone. The automation had to be trustworthy enough to delete.

Solution

A pipeline: deduplication, grouping by contact, verdicts from several models, and a decision only when they agree. Work goes in batches with a daily cap and an emergency stop.

Result

The mailbox sorts itself out. Disputed cases go to a human as one list instead of message by message.

Multi-agent development on free models
03

Multi-agent development on free models

  • 275,000 tokens per batch
  • 0 paid subscription spend
  • Acceptance against written criteria

Problem

Working with LLMs hits two walls at once: the price of paid models and the answer quality of free ones.

Solution

Tasks are split into parts and handed to free models. The result goes through an independent verifier and acceptance against criteria written down in advance.

Result

One batch delivers 275 thousand tokens of free-model work and zero paid subscription spend, with acceptance still in place.

A private network spanning three countries
04

A private network spanning three countries

  • 3 countries in three time zones
  • 2 management channels
  • Proxy with per-domain routing

Problem

Access to services and external resources from three countries. Some resources are geo-restricted, others are reachable only from inside the estate.

Solution

MikroTik and WireGuard, a split proxy with per-domain routing, and a backup management channel in case the main one dies. Self-service allow lists through a Telegram bot.

Result

Services are reachable from any of the client's devices. Losing the main link does not cut off management.

Recent work

  • Visual duplicates page with origin labels. Built a visual-duplicates page: similar frames are grouped, tagged by origin, and can be unmarked. Backend and UI are live; a control set of hundreds of frames grouped cleanly with no key loss.
  • Cache auto-warm: cold start from seconds to fractions. Built auto-warming for data missing from cache: a background loop warms the needed slices ahead of time. After a full flush, main pages are warm again in fractions of a second instead of a long cold build.
  • Auto tunnel request when a site is geo-blocked. Built geo-block triage: domains are taken from the page and scripts, each is probed from two regions, and matching templates become a ready tunnel request. On a live site, block from one region and OK from the other produced the request automatically.
  • Migration of email infrastructure for two domains to a dedicated server. Migrated mailboxes and mailing lists from external hosting to a self-hosted mail server. Created 2 domains, 10 aliases, and 47 mailing lists; restored MX, SPF, DMARC, and DKIM records. All 57 addresses accept mail, test messages delivered, and delivery verified from external hosts.
  • Context window tuning: cache use down about 75%. Traced why cache grew on long sessions. A small share of long sessions drove most of the load, so pruning was tuned for that shape. Cache use dropped by about three quarters for the same workload.

Stack

The tools it all rests on

Platform

  • Linux
  • Proxmox
  • Kubernetes (k3s)
  • Podman / Docker
  • Ansible · 731 playbooks

Data

  • PostgreSQL
  • Valkey / Redis
  • RAG and vector search

Development

  • Python / FastAPI
  • TypeScript / Vue
  • Android / Kotlin

Mail, access, web

  • Stalwart (JMAP / IMAP / SMTP)
  • OIDC / OpenBao
  • Nginx / Caddy

Networking

  • MikroTik
  • WireGuard

LLM

  • Claude
  • Qwen
  • Local models on llama.cpp

Observability and CI

  • Grafana / VictoriaMetrics
  • Forgejo / CI

How I work

Four steps from first email to delivery

Every result is proven by a run and by logs, not by the words "it works".

  1. 1

    Understanding the task

    What the outcome must be, what is in the way, where the data lives and who the users are. We work through your material, not through generalities.

  2. 2

    Architecture and quote

    The solution diagram, the list of work and the acceptance criteria are written down before anything starts. The quote is tied to milestones, not to hours.

  3. 3

    Work with proof

    Every stage closes with a run: command output, logs, screenshots. You see what is done before you have to ask.

  4. 4

    Handover and support

    Documentation, access, reproducible deployment. The system lives without me, and if you want, I stay on support.

FAQ

Short answers to common questions

Same numbers and steps as on the page — easy to quote in search or for an assistant.

What does SyCraft do?

Systems engineering end to end: infrastructure and DevOps, LLM-based AI agents, web services, mail and networks. Every result is proven by a run and logs, not by claims.

How much experience and what is already in production?

20 years in engineering, 731 Ansible playbooks and 154 roles, 98 documented services, 8 in-house products in continuous production, and about 40 hosts across three countries plus a k3s cluster.

How does an engagement work?

Four steps: scope the task, architecture and estimate with acceptance criteria, work with proof at every stage, then handoff with documentation and reproducible deploy.

Contact

Describe the task and you will get a straight answer

WhatsApp, email or Telegram, no forms and no questionnaires. I reply fast, usually the same day.

WhatsApp