Tworzenie oprogramowania na zamówienie
Usługi i integracje pisane na zamówienie w TypeScripcie, dostarczane w Twoim repozytorium, z dokumentacją do przejęcia.
Nie każde wymaganie mieści się w gotowej platformie. Kiedy potrzebna jest osobna usługa, warstwa integracyjna, narzędzie wewnętrzne albo backend marketplace’u, budujemy to od podstaw w TypeScripcie, ze spisanym zakresem, w Twoim repozytorium i z dokumentacją na tyle dobrą, że po nas przejmie to każdy kompetentny zespół.
Co budujemy
- Niestandardowe integracje między e-commerce a systemami ERP / PIM / WMS, kiedy gotowy konektor pokrywa 80% przepływu, a brakujące 20% obejmuje procesy kluczowe dla Twojego biznesu
- Narzędzia wewnętrzne, które nie mieszczą się w panelu sklepu: silniki cenowe, obsługa zwrotów, dashboardy magazynowe, konsole obsługi klienta
- Marketplace’y, backendy multi-tenant SaaS i usługi domenowe, w których logika domenowa jest produktem
- Migracje ze starszych systemów pisanych na zamówienie, w których połowa wymagań jest udokumentowana, a pozostała część nie jest nigdzie spisana; pierwszym rezultatem jest wtedy udokumentowanie tego, co dotychczasowy system faktycznie robi
Kilka realizacji tego typu z minionych lat, w wersji zanonimizowanej: automatyczny silnik przecen dla katalogu 123 000 produktów, sterowany przewidywaną z danych ERP liczbą dni do wyprzedania, z pasmami reguł, śladem audytowym i mechanizmami zabezpieczającymi tam, gdzie wynik automatu różni się od decyzji człowieka; przeliczanie historii sprzedaży, które trwało 14 godzin, zrównoleglone do 2,5 godziny, z ostatnio sprzedawanymi produktami na początku kolejki, aby najnowsze dane były dostępne w pierwszej kolejności; oraz migracja klientów między platformami bez maila o resecie hasła, z weryfikacją względem starego hasha przy pierwszym logowaniu i przezroczystym przehashowaniem do nowego formatu, bez zapisywania hasła jawnym tekstem gdziekolwiek po drodze.
Jak budujemy
Każdy backend, który dostarczamy, stoi na tym samym szkielecie:
- strukturalne moduły z jawnie zadeklarowanymi zależnościami,
- dependency injection, z możliwością podmiany zależności w testach i per środowisko,
- lifecycle hooks, dzięki którym podsystemy uruchamiają się i zatrzymują we właściwej kolejności,
- walidacja kontraktów przy starcie: aplikacja z niekompletną konfiguracją zależności w ogóle się nie uruchomi. Błąd konfiguracji ujawnia się w kilka sekund przy starcie, a nie jako null-pointer exception trzy tygodnie po wdrożeniu.
Trzymamy się tej struktury, bo kod oparty na ukrytych założeniach maskuje też scenariusze awarii, a nam zależy na oprogramowaniu, które rok po uruchomieniu nadal daje się zrozumieć.
Jak wygląda realizacja
- Praca odbywa się w Twoim repozytorium, w Twojej organizacji; kod jest Twój od pierwszej opłaconej faktury
- Testy i weryfikacja kontraktów działają w CI od pierwszego tygodnia, a nie jako faza stabilizacji na końcu
- Każdy deploy ma ścieżkę wycofania, a system rusza z podpiętymi logami, metrykami i alertami (jak operujemy tym, co budujemy, opisuje DevOps i infrastruktura)
- Dokumentacja przekazania jest częścią dostawy, a nie uprzejmością: runbooki, notatka o architekturze i log decyzji
Kiedy trudniejsze od budowania jest zdecydowanie, co w ogóle zbudować, to już projektowanie systemów i architektura. Realizujemy jedno i drugie razem albo osobno. Projekty o stałym zakresie trwają zwykle 4–16 tygodni, fakturowane co tydzień; systemy przewidziane na wieloletnie utrzymanie przechodzą potem na miesięczny retainer.
Powiązane usługi
- Integracje (ERP, PIM, WMS, płatności)Łączymy sklep z systemami, na których faktycznie opiera się biznes. Idempotentnie, obserwowalnie i odpornie na awarie zewnętrznych API.
- Projektowanie systemów i architekturaDecyzje, które później drogo zmieniać: granice usług, przepływ danych, wybór platform i scenariusze awarii, których nikt nie wycenił.
- DevOps i infrastrukturaOgraniczamy liczbę nocnych incydentów na produkcji. Pragmatyczna infrastruktura, CI/CD, observability i on-call, zwymiarowane pod e-commerce.