Szukasz wybitnych specjalistów IT, którzy dowiozą projekt?
AICrowd - Case study hero desktop

AICrowd: dbamy o kod startupu z YCombinatora

Jak poprawiliśmy jakość kodu, zmniejszyliśmy dług techniczny i wzmocniliśmy bezpieczeństwo marketplace'u dla ekspertów AI.

W skrócie:

  • Klient

    AIcrowd

    Kraj

    Szwajcaria

  • Zakres projektu i technologie

    Development w Ruby on Rails

    Branża

    Marketplace, edukacja

  • Skład zespołu

    1 programista Ruby on Rails

    Czas trwania

    10 miesięcy (w toku)

AICrowd to marketplace, który pomaga firmom znaleźć ekspertów od machine learningu do swoich projektów. Startup przeszedł przez akcelerator YCombinator.

Wyzwanie:

Klient przyszedł do nas z gotowym produktem: platformą dla ekspertów data science, którzy rozwiązują realne problemy. Była już uruchomiona, ale kod wymagał porządków. Czekało nas sporo refaktoryzacji i code review.

Mieliśmy usunąć błędy techniczne i zbudować architekturę, w której łatwiej o kod wysokiej jakości. Musieliśmy wprowadzić wiele poprawek, m.in. związanych z cross-site scriptingiem, czyli klasyczną techniką ataku w JS.

Pracy było dużo, bo przez długi czas projekt rozwijała tylko jedna osoba, od koncepcji do wdrożenia. Zespół urósł później do trzech osób, ale nowe funkcje, jak łatwo zgadnąć, miały pierwszeństwo przed refaktoryzacją. Właśnie dlatego klient zgłosił się do nas.

Proces:

Po przejrzeniu kodu ustaliliśmy plan działania. Postawiliśmy na klasyczny agile z dwutygodniowymi sprintami, a jako technologię wybraliśmy Ruby on Rails.

Szybko okazało się, że w repozytorium jest sporo martwego kodu podatnego na ataki. Usunęliśmy te fragmenty i wdrożyliśmy bezpieczne rozwiązania, dzięki czemu kod łatwiej było przeglądać.

Platforma działa już od kilku lat, więc większość decyzji o architekturze i technologii zapadła dawno temu. Zmieniliśmy za to framework JS na StimulusJS, a zadania w tle obsługują Sidekiq i Redis. Do hostingu wykorzystaliśmy Heroku.

Największym wyzwaniem był dług techniczny aplikacji. Zrobiliśmy, co w naszej mocy, żeby go zmniejszyć. Staramy się dostarczać oprogramowanie wysokiej jakości, które łatwo utrzymać i modyfikować.

Piotr Paściak

Programista Ruby on Rails

Po drodze wciąż pojawiały się nowe problemy, np. zużycie pamięci na serwerze, które optymalizowaliśmy na bieżąco. Przeszliśmy też na webpacka, żeby łatwiej zarządzać JS-em.

Poprawiliśmy również synchronizację danych, tak aby wielu użytkowników mogło pracować nad jednym wyzwaniem w czasie rzeczywistym.

Rezultat:

Udało nam się znacząco poprawić jakość kodu w repozytorium i wyeliminować większość błędów. Po zmianach i wprowadzeniu nowej architektury platforma jest stabilniejsza i zużywa mniej zasobów. Dodaliśmy moduł komunikacji, więc organizatorzy wyzwań piszą teraz bezpośrednio do uczestników. Wcześniej musieli prosić AICrowd o adres e-mail każdego z nich. 

Refaktoryzacja uporządkowała istniejący kod i oczyściła go z martwych fragmentów. Dzięki temu kolejne zmiany da się wprowadzać szybciej i skuteczniej.

Usprawniliśmy też proces code review dzięki statycznej analizie kodu. Komentarze trafiają teraz do repozytorium automatycznie.

Nadal pracujemy z klientem i rozwijamy produkt. Pokazaliśmy, że potrafimy skutecznie wprowadzać usprawnienia, dzięki czemu projekt przerodził się w długofalową współpracę.

Szukasz ekspertów od Ruby on Rails, którzy zbudują Twój system rezerwacji?

Daj nam znać, czego dokładnie potrzebujesz. Skompletujemy dla Ciebie zespół specjalistów idealnie dopasowany do Twojej branży, technologii i kultury organizacji.

Pomogliśmy firmie AICrowd i dziesiątkom innych. Napisz do nas i sprawdź, co nasza sieć specjalistów IT może zrobić dla Twojej firmy.