Aleksey Zhadan · fullstack developer, DevOps · Head of TechPlatform
Inżynieria systemów: infrastruktura, agenci‑AI, własne usługi
Projektuję i wdrażam systemy, które działają latami: czterdzieści hostów, osiem produktów w produkcji i potoki LLM, wszystko zbudowane i utrzymywane przez jedną osobę. Przyjmuję zlecenia prywatne.
Od schematu danych po wdrożenie i klienta mobilnego. Moje własne produkty działają w produkcji od lat; Twój powstanie tak samo.
Python/FastAPI, PostgreSQL, Valkey
Front-end w TypeScript/Vue, Android w Kotlinie
Jednolite logowanie przez OIDC od pierwszego dnia
Systemy pocztowe
Własny serwer poczty zamiast cudzej chmury: migracja domeny bez utraty ani jednej wiadomości, zachowana reputacja, antyspam oparty na LLM.
Stalwart: JMAP, IMAP, SMTP, poczta w przeglądarce
DKIM/SPF/DMARC publikowane automatycznie ze strefy
Duże skrzynki porządkowane przez modele
Sieć i dostęp z każdego kraju
Prywatna sieć obejmująca kilka krajów: usługi dostępne z każdego urządzenia, a awaria łącza nigdy nie odcina zarządzania.
MikroTik, WireGuard, routing według domen
Zapasowy kanał zarządzania
Samoobsługowe listy dostępu przez bota
Jednolite logowanie i sekrety
Jedno konto do wszystkich usług w infrastrukturze i magazyn sekretów, z którego wdrożenie samo pobiera hasła.
Własny dostawca OIDC, podłączone Forgejo, Nextcloud i poczta
OpenBao: sekrety poza repozytorium i poza głowami ludzi
Dostęp oparty na rolach, odbierany jedną zmianą
Produkty już działające w produkcji
Osiem systemów w stałym użyciu
Nie dema i nie prototypy: każdy z nich codziennie obsługuje żywe dane.
LiveMail
Własna poczta w przeglądarce na Stalwart/JMAP: miliony wiadomości, wyszukiwanie, reguły, metafoldery na SMS-y i połączenia.
Zbudowane naStalwart, JMAP, cache Valkey, logowanie OIDC
EfektZastąpił płatny panel Zimbra
Antyspam i porządkowanie skrzynki
Potok LLM: poczta i SMS-y są grupowane według kontaktu, każda pozycja otrzymuje werdykt modelu i decyzję.
Zbudowane naKilka modeli, partie z dziennym limitem
EfektSprzątanie działa samo, z awaryjnym zatrzymaniem
LiveFinance
Zbieranie wyciągów bankowych i księgowość: automatyczne parsowanie PDF i API, historia sald.
Zbudowane naParsery PDF i API banków, PostgreSQL
EfektAnaliza wydatków bez ręcznego wprowadzania
LivePhotos
Biblioteka mediów: zdjęcia i wideo z rozpoznawaniem osób i oceną ujęć.
Zbudowane naImport z zewnętrznych źródeł, modele rozpoznawania
EfektNajlepsze ujęcia wypływają same, osoby są odnajdywane po twarzy
LiveHistory
Kronika ruchu i obecności: telefon, samochód, dane geograficzne.
Zbudowane naTelefon, StarLine, dane geograficzne
EfektJedno źródło zdarzeń zamiast rozproszonych logów
SyCraft IdP
Własny dostawca OIDC: jednolite logowanie do każdej usługi w infrastrukturze.
Zbudowane naOIDC, podłączone Forgejo, Nextcloud i poczta
EfektJedno konto do wszystkiego, dostępem zarządza się w jednym miejscu
SyCraft Control
Aplikacja na Androida: przechowywanie kontaktów, synchronizacja SMS-ów, rejestru połączeń i kalendarza.
Zbudowane naKotlin, synchronizacja z serwerem
EfektZdalne zarządzanie telefonem
Orkiestrator agentów AI
System wieloagentowy na Kubernetesie: przydział zadań, wykonawcy i weryfikator jakości odpowiedzi.
Zbudowane nak3s, darmowe modele z odbiorem, Mattermost i Telegram
EfektZadania rozwiązywane są partiami bez korzystania z płatnej subskrypcji
Realizacje architektoniczne
Problem → rozwiązanie → efekt
Cztery problemy, które zwykle się odpuszcza jako "za trudne, zostawmy jak jest".
01
Poczta wyprowadzona z cudzej chmury
15,000 wiadomości w archiwum
41 odtworzonych adresów
2 domeny z 20-letnią historią
Problem
Dwie domeny z dwudziestoletnią historią działały na zewnętrznej usłudze pocztowej. Dostawca nie chciał wydać listy skrzynek, więc nie było czego przenieść "jak jest".
Rozwiązanie
Listę adresów odtworzono z archiwum poczty: 15 tysięcy wiadomości, 41 adresów. Domeny przeniesiono na własny Stalwart, adresy odtworzono jako aliasy i listy. DKIM/SPF/DMARC publikowane są automatycznie ze strefy, którą obsługuje sam serwer.
Efekt
Migracja bez utraty ani jednej wiadomości, reputacja domen nienaruszona. Nowe domeny dodaje się teraz jednym poleceniem.
02
AI porządkuje skrzynkę zamiast ręcznego sprzątania
47,000 wiadomości w skrzynce
Kilka modeli na wiadomość
Awaryjne zatrzymanie i dzienny limit
Problem
Czterdziestu siedmiu tysięcy wiadomości nie da się posortować ręcznie, a błędnego usunięcia nie da się cofnąć. Automatyka musiała być na tyle wiarygodna, żeby jej powierzyć usuwanie.
Rozwiązanie
Potok: deduplikacja, grupowanie według kontaktu, werdykty kilku modeli i decyzja tylko wtedy, gdy się zgadzają. Praca idzie partiami z dziennym limitem i awaryjnym zatrzymaniem.
Efekt
Skrzynka porządkuje się sama. Sporne przypadki trafiają do człowieka jako jedna lista, a nie wiadomość po wiadomości.
03
Wieloagentowe programowanie na darmowych modelach
275,000 tokenów na partię
0 wydatków na płatną subskrypcję
Odbiór według spisanych kryteriów
Problem
Praca z LLM uderza w dwie ściany naraz: cenę płatnych modeli i jakość odpowiedzi darmowych.
Rozwiązanie
Zadania dzielone są na części i przekazywane darmowym modelom. Wynik przechodzi przez niezależnego weryfikatora i odbiór według kryteriów spisanych z góry.
Efekt
Jedna partia daje 275 tysięcy tokenów pracy darmowych modeli i zero wydatków na płatną subskrypcję, a odbiór dalej obowiązuje.
04
Prywatna sieć w trzech krajach
3 kraje w trzech strefach czasowych
2 kanały zarządzania
Proxy z routingiem według domen
Problem
Dostęp do usług i zasobów zewnętrznych z trzech krajów. Część zasobów ma ograniczenia geograficzne, inne są dostępne tylko z wnętrza infrastruktury.
Rozwiązanie
MikroTik i WireGuard, proxy z podziałem ruchu i routingiem według domen oraz zapasowy kanał zarządzania na wypadek awarii głównego. Samoobsługowe listy dostępu przez bota w Telegramie.
Efekt
Usługi są dostępne z każdego urządzenia klienta. Utrata głównego łącza nie odcina zarządzania.
Więcej realizacji
Autonomiczny wykonawca z recenzentem
Zbudowałem agenta-wykonawcę, który bierze zadania z kolejki, opisuje kroki w czacie i przekazuje pracę do odbioru według spisanych kryteriów. Drugi agent sprawdza wynik i prowadzi imienny dziennik nieodwracalnych działań.
Boty Telegram i most czatu
Zbudowałem boty Telegram na Bot API oraz klientów MTProto, jeden proces na konto. Potrafią czytać i eksportować historię. Do tego most do czatu roboczego i bot samoobsługowych list dostępu.
Klaster Kubernetes na własnych maszynach
Utrzymuję klaster k3s na własnych maszynach z dziesiątkami usług. Konfiguracja to kod, wdrożenie idzie host po hoście, więc reszta działa dalej.
Playbooki Ansible z dowodem na żywo
Napisałem około 200 playbooków Ansible. Każde wdrożenie sprawdza składnię, idzie host po hoście i jest potwierdzone wynikiem polecenia, a nie słowem "gotowe".
Monitoring, który podnosi milczące hosty
Zbudowałem monitoring na Grafana i VictoriaMetrics. Strażnik wykrywa milczące hosty i przywraca leżącą maszynę przez sąsiadów i hiperwizor.
Strona wizualnych duplikatów z oznaczeniem źródła
Zbudowałem stronę wizualnych duplikatów: podobne kadry są grupowane, oznaczane według źródła i można je odznaczyć. Backend i interfejs działają; zestaw kontrolny setek kadrów zgrupował się czysto, bez utraty kluczy.
Automatyczne zgłoszenie tunelu, gdy strona jest blokowana geograficznie
Zbudowałem diagnostykę blokad geograficznych: domeny są brane ze strony i skryptów, każda jest sprawdzana z dwóch regionów, a pasujące wzorce stają się gotowym zgłoszeniem tunelu. Na żywej stronie wykrycie blokady z jednego regionu i OK z drugiego automatycznie utworzyło zgłoszenie.
Automatyczne rozgrzewanie cache: zimny start z sekund do ułamków
Zbudowałem automatyczne rozgrzewanie danych, których brakuje w cache: pętla w tle rozgrzewa potrzebne wycinki z wyprzedzeniem. Po pełnym wyczyszczeniu główne strony są znów gotowe w ułamku sekundy zamiast długiego zimnego budowania.
Ostatnie prace
Strona wizualnych duplikatów z oznaczeniem źródła. Zbudowałem stronę wizualnych duplikatów: podobne kadry są grupowane, oznaczane według źródła i można je odznaczyć. Backend i interfejs działają; zestaw kontrolny setek kadrów zgrupował się czysto, bez utraty kluczy.
Automatyczne rozgrzewanie cache: zimny start z sekund do ułamków. Zbudowałem automatyczne rozgrzewanie danych, których brakuje w cache: pętla w tle rozgrzewa potrzebne wycinki z wyprzedzeniem. Po pełnym wyczyszczeniu główne strony są znów gotowe w ułamku sekundy zamiast długiego zimnego budowania.
Automatyczne zgłoszenie tunelu, gdy strona jest blokowana geograficznie. Zbudowałem diagnostykę blokad geograficznych: domeny są brane ze strony i skryptów, każda jest sprawdzana z dwóch regionów, a pasujące wzorce stają się gotowym zgłoszeniem tunelu. Na żywej stronie wykrycie blokady z jednego regionu i OK z drugiego automatycznie utworzyło zgłoszenie.
Porządki na lokalnym serwerze LLM. Usunąłem 176 GB nieużywanych wag modeli bez zatrzymania żadnego działającego modelu: główna usługa LLM i embedder działały cały czas. Sprzątanie to playbook Ansible, powtarzalny na każdej maszynie, a konfiguracje i dokumentacja odpowiadają teraz rzeczywistemu stanowi. Zajętość dysku spadła z 87% do 50%.
Migracja infrastruktury pocztowej dwóch domen na dedykowany serwer. Przeniosłem skrzynki i listy mailingowe z zewnętrznego hostingu na własny serwer pocztowy. Utworzyłem 2 domeny, 10 aliasów i 47 list mailingowych; odtworzyłem rekordy MX, SPF, DMARC i DKIM. Wszystkie 57 adresów przyjmuje pocztę, wiadomości testowe doszły, a dostarczanie sprawdzono z zewnętrznych hostów.
Strojenie okna kontekstu: użycie cache spadło o około 75%. Zbadałem, dlaczego cache rósł przy długich sesjach. Niewielka część długich sesji generowała większość obciążenia, więc przycinanie dostroiłem pod ten kształt. Przy tym samym obciążeniu użycie cache spadło o mniej więcej trzy czwarte.
Technologie
Narzędzia, na których to wszystko stoi
Platforma
Linux
Proxmox
Kubernetes (k3s)
Podman / Docker
Ansible · 731 playbooków
Dane
PostgreSQL
Valkey / Redis
RAG i wyszukiwanie wektorowe
Programowanie
Python / FastAPI
TypeScript / Vue
Android / Kotlin
Poczta, dostęp, web
Stalwart (JMAP / IMAP / SMTP)
OIDC / OpenBao
Nginx / Caddy
Sieć
MikroTik
WireGuard
LLM
Claude
Qwen
Modele lokalne na llama.cpp
Obserwowalność i CI
Grafana / VictoriaMetrics
Forgejo / CI
Jak pracuję
Cztery kroki od pierwszego maila do oddania
Każdy wynik jest potwierdzony uruchomieniem i logami, a nie słowami "to działa".
1
Zrozumienie zadania
Jaki ma być efekt, co przeszkadza, gdzie są dane i kim są użytkownicy. Pracujemy na Twoich materiałach, a nie na ogólnikach.
2
Architektura i wycena
Schemat rozwiązania, lista prac i kryteria odbioru są spisane, zanim cokolwiek się zacznie. Wycena jest powiązana z etapami, a nie z godzinami.
3
Praca z dowodami
Każdy etap kończy się uruchomieniem: wynik poleceń, logi, zrzuty ekranu. Widzisz, co zrobione, zanim zdążysz zapytać.
4
Przekazanie i wsparcie
Dokumentacja, dostępy, powtarzalne wdrożenie. System żyje beze mnie, a jeśli chcesz, zostaję przy wsparciu.
FAQ
Krótkie odpowiedzi na częste pytania
Te same liczby i kroki co na stronie, łatwe do zacytowania w wyszukiwarce lub dla asystenta.
Czym zajmuje się SyCraft?
Inżynierią systemów od początku do końca: infrastruktura i DevOps, agenci AI oparci na LLM, usługi webowe, poczta i sieci. Każdy wynik jest potwierdzony uruchomieniem i logami, a nie deklaracjami.
Jakie doświadczenie i co już działa w produkcji?
20 lat w inżynierii, 731 playbooków Ansible i 154 role, 98 udokumentowanych usług, 8 własnych produktów w ciągłej produkcji oraz około 40 hostów w trzech krajach plus klaster k3s.
Jak wygląda współpraca?
Cztery kroki: określenie zadania, architektura i wycena z kryteriami odbioru, praca z dowodami na każdym etapie, a na koniec przekazanie z dokumentacją i powtarzalnym wdrożeniem.