Jakie narzędzia i technologie wybrać do projektu fintechowego?
Są jeszcze miejsca na świecie, gdzie posiadanie własnego rachunku bankowego nie jest oczywistością. Wynika to często z wysokich kosztów utrzymania infrastruktury dla płatności elektronicznej. Są też regiony, w których koszt wydruku każdego dolara stanowi 20% jego kosztu - co w oczywisty sposób obciąża cały region i jego mieszkańców. Powstają jednak projekty fintechowe, mogące zmienić tę sytuację. To nad jednym z takich projektów rozpoczynamy niedługo pracę.
Nasz klient to firma istniejąca od czterech lat, której produkt został wdrożony dziesięć miesięcy temu i zdążył już zebrać kilka tysięcy użytkowników. Niedawno uzyskał wsparcie ministerstwa finansów swojego kraju, przeznaczone na system płatności oparty o technologie blockchain i distributed ledger. Ten sankcjonowany rządowo system ma pozwolić regionowi zaoszczędzić na wydruku pieniądza i dać dostęp do płatności elektronicznej obywatelom, którzy nie mieli wcześniej takiej możliwości ze względu na małą dostępność i wysoki koszt posiadania rachunków bankowych.
Wzrost projektu może mieć pozytywny wpływ na cały region, np. przez zmniejszenie obciążeń podatkowych - koszt ponoszony przez państwo rozkłada się w końcu na obywateli. Zmiany ułatwią też rozwój wielu osobom prowadzącym małe, rodzinne biznesy. W tej chwili częstą sytuacją jest brak konta bankowego dla firmy, co oznacza, że nie może ona otrzymywać płatności elektronicznie i jest zdana na gotówkę. We współczesnym świecie taki stan rzeczy może być poważną przeszkodą w rozwoju.
Plan pracy nad projektem
Aktualnie projektem zajmuje się bardzo ambitny zespół naszego klienta. Ma duże doświadczenie w pracy nad aplikacjami bankowymi, ale niestety doświadczenie każdego z tych ekspertów jest dość wąskie. Stanowi to największe wyzwanie w projekcie. Kilku programistów specjalizujących się w tym samym języku - ale innych jego zastosowaniach - musi brać udział we wprowadzaniu nawet drobnych zmian w produkcie, jeśli zmiany te obejmują kilka obszarów. Zespołowi projektowemu brakuje elastyczności i doświadczenia w prowadzeniu różnorodnych projektów, a zespół iRonin może doskonale uzupełnić ich kompetencje, obejmując rolę konsultantów w projekcie.
Kolejnym wyzwaniem, tym razem wynikającym ze strategii klienta, jest przejście lokalnego zespołu na pracę zdalną. Ta zmiana będzie potrzebna dla całej firmy i musi objąć wszystkie jej procesy. Tu też iRonin może służyć pomocą - nasz zespół, od początku budowany na schemacie pracy zdalnej, ma z tym duże doświadczenie. Wesprzemy klienta organizacyjnie i weźmiemy udział w budowaniu zdalnej kultury. Pomożemy też zespołowi klienta w przejściu na mniejsze zespoły scrumowe, dostarczające nowe funkcjonalności szybciej, w ciągu dni, a nie tygodni. W ten sposób zwiększymy elastyczność firmy klienta. Klient ma do zespołu iRonin duże zaufanie. Zostaliśmy poleceni do tego projektu ze względu na nasze doświadczenie we wcześniejszych projektach fintechowych oraz wysoką jakość wykonywanych usług i poziom umiejętności naszych developerów. Chcemy przekazać zespołowi klienta nasze podejście do korzystania z dobrych praktyk programowania, organizacji pracy w małych zespołach, dobrej komunikacji i dopasowywania stosowanych technologii do potrzeb produktu.
Technologie, które wybraliśmy
Go
Znany jest jako najczęściej wykorzystywany język w startupach pracujących z technologią Blockchain, Go jest też często wybierany w sektorze bankowości. Główną przyczyną popularności Go jest jego natywne wspieranie concurrency oraz fakt, że napisane w nim programy są bezpieczniejsze niż np. te napisane w C++. Go pozwala też na szybką pracę, pozytywnie wpływa na produktywność zespołu, jest wydajny i łatwy w testowaniu. Został wybrany do projektu, ponieważ jest prostym, ale bardzo wydajnym językiem do implementacji logiki biznesowej i mikroserwisów w aplikacji.
Elixir
Ten funkcyjny język pozwala na tworzenie wielu procesów małym kosztem. Jest prosty w nauce i usprawnia pracę developerów. API do aplikacji mobilnej klienta zostało napisane w Elixirze, który uważamy za dobrą technologię do tego zastosowania. W projekcie wykorzystywany jest też GraphQL - nowoczesny, elastyczny standard API. Jako framework do aplikacji webowych i API zastosujemy Phoenix.
React Native
Aplikacja mobilna klienta oparta jest o React Native - jedną z najbardziej nowoczesnych technologii mobilnych, pozwalającą na szybkie tworzenie natywnych aplikacji na wiele platform. Nie tylko przyspiesza to pracę nad nowymi funkcjonalnościami, ale też znacznie ułatwia utrzymanie i rozbudowę aplikacji, co prowadzi do niższych kosztów. Do tego aplikacje napisane w React Native są wydajne i łatwe w integracji z innymi technologiami.
SRE
Site Reliability Engineering to metodologia pozwalająca na niezwykle efektywną współpracę zespołów developmentu i operations nad utrzymaniem produktu. W ostatnich czasach dużo więcej można było usłyszeć o DevOps, które niesie ze sobą bardzo podobną filozofię, ale nie podpowiada jak wprowadzić ją w życie. Naszym zadaniem w tym przypadku jest zbudowanie podwalin SRE pod cały projekt i przyszłe jego wcielenia. Chcemy ulepszyć istniejące procesy i wprowadzić brakujące elementy.
Wykorzystamy do tego odpowiednio dobrany zestaw narzędzi:
- Platformy cloud computing AWS i Google Cloud;
- Produkty Hashicorp, czyli Terraform, Consul, Nomad i Vault;
- Narzędzia do monitoringu, takie jak Prometheus i Grafana;
- Narzędzia do CI i CD (Continuous Integration i Continuous Delivery), czyli GitLab, Jenkins, CircleCI i Groovy.
Współpraca
Wciąż budujemy zespół, który weźmie udział w pracy nad projektem. Jesteśmy przekonani, że dołączenie do nas to szansa na szybki rozwój, zdobycie wartościowego doświadczenia i budowanie produktu, który zmieni świat na lepsze. Potrzebujemy przede wszystkim osób z doświadczeniem w pracy z wymienionymi wyżej technologiami, potrafiących pokazać wszechstronność i umiejętność pracy zdalnej - oraz zainteresowanych fintechem. Jeśli interesuje Cię praca nad projektem razem z zespołem iRonin, dołącz do nas! Zobacz nasze oferty pracy pod tym artykułem lub napisz na adres: [email protected]