Przejdź do treści
BigTree108

Usługi tworzenia oprogramowania w Scala

Usługi tworzenia oprogramowania w Scala dla potoków danych Apache Spark, backendów fintech i handlowych, platform adtech i analitycznych, usług sterowanych zdarzeniami na Akka, Apache Pekko, ZIO lub Cats Effect, aplikacji Play oraz przejścia ze Scala 2 na Scala 3, z dedykowanymi programistami Scala w Państwa zespole lub projektem w Scala realizowanym od A do Z.

Co budujemy w Scala

  • Zadania Apache Spark w Scala

    Zadania wsadowe i strumieniowe na Spark 4 w Scala 2.13, z typowanymi Datasets i Spark SQL nad tabelami Delta Lake lub Apache Iceberg na Databricks, Amazon EMR lub Kubernetes, partycjonowane i dostrojone tak, aby każde uruchomienie mieściło się w swoim oknie i budżecie.

  • Usługi handlowe, płatnicze i ryzyka

    Usługi płatności, księgi, wyceny i ryzyka z niezmiennymi modelami domenowymi, typami sealed i wyczerpującym dopasowaniem wzorców dla każdego stanu, do jakiego może dojść transakcja, BigDecimal dla pieniędzy i ścieżką audytu dla każdej zmiany.

  • Systemy Akka i Apache Pekko

    Usługi oparte na aktorach, klastry, event sourcing i strumienie z back-pressure na Akka na jej licencji komercyjnej albo na Apache Pekko, forku Akka 2.6 na licencji Apache, z persystencją na PostgreSQL lub Cassandra.

  • Usługi funkcyjne na ZIO i Cats Effect

    Usługi HTTP i gRPC na ZIO 2 lub Cats Effect 3 z http4s, Tapir lub ZIO HTTP, Doobie lub Skunk nad PostgreSQL oraz fs2 lub ZIO Streams, z efektami, błędami i zasobami śledzonymi w typach.

  • Strumieniowanie Kafka w Scala

    Producenci, konsumenci i procesory strumieni na fs2-kafka, zio-kafka, Kafka Streams lub Pekko Connectors, z kontraktami Avro lub Protobuf w schema registry, idempotentnymi zapisami, ponowieniami i tematami dead-letter.

  • Potoki licytacji i atrybucji adtech

    Potoki licytacji w czasie rzeczywistym, atrybucji i odbiorców, które przyjmują zdarzenia w dużej liczbie, z agregacją w Spark lub ClickHouse i API odpowiadającymi w czasie, jaki dopuszcza żądanie licytacji.

  • Aplikacje Play Framework

    Aplikacje webowe i API na Play 3, który działa na Pekko, oraz aplikacje Play 2 na Akka przeniesione na niego, ze Slick lub Anorm do dostępu do danych oraz szablonami Twirl lub osobnym frontendem dla stron.

  • Przejście ze Scala 2 na Scala 3

    Kod Scala 2.12 i 2.13 przenoszony na Scala 3.9, aktualne wydanie z długoterminowym wsparciem, moduł po module z trybem migracji kompilatora i przepisywaniem przez Scalafix, podczas gdy zadania Spark pozostają na Scala 2.13 tak długo, jak Spark jest na niej zbudowany.

  • Buildy, testy i aktualizacje zależności w Scala

    Buildy sbt 2 lub Mill odtwarzalne z czystego checkoutu, zestawy testów MUnit lub ScalaTest z właściwościami ScalaCheck, Scalafmt i Scalafix w pipeline oraz Scala Steward otwierający pull request przy każdej aktualizacji zależności.

Zatrudnienie: programiści Scala

  • Dedykowani programiści Scala

    Programiści Scala dołączają do Państwa zespołu na pełny etat, pracują w Państwa repozytoriach, trackerze i na spotkaniach oraz podlegają Państwa liderowi. Państwo przeprowadzają rozmowy kwalifikacyjne, a my bierzemy na siebie ukraińską umowę, wynagrodzenia, fakturowanie i urlopy.

  • Realizacja projektów w Scala

    Zespół, który prowadzi projekt w Scala od zakresu do wydania: wycena, wytworzenie, testy i wdrożenie, z liderem technicznym po naszej stronie, który odpowiada za plan i jakość.

  • Utrzymanie i przejmowanie systemów w Scala

    Istniejący system w Scala, przejęty od innego zespołu lub utrzymywany w działaniu: najpierw przegląd bez zmian w systemie i pisemna lista ryzyk, następnie poprawki i nowe funkcje w kolejności według wpływu.

Strona o dedykowanym zespole wyjaśnia, jak specjaliści dołączają do Państwa zespołu, a strona o outsourcingu opisuje realizację projektów, przejęcia i sposób rozliczania.

Kto pracuje nad Państwa projektem w Scala

  • programiści Scala

    Zadania Spark i usługi na Akka, Pekko, ZIO lub Cats Effect

  • Inżynierowie danych

    Tabele lakehouse, orkiestracja i jakość danych

  • Inżynierowie Java

    Usługi JVM obok kodu w Scala

  • Inżynierowie chmury i DevOps

    Kubernetes, klastry Spark i pipeline

  • Inżynierowie QA

    Automatyzacja testów API, danych i obciążeniowych

Jak pracujemy ze Scala

Niezmienne dane i wyczerpujące dopasowanie wzorców, tak aby kompilator wskazywał przypadki pominięte przez zmianę; błędy i efekty w typach, a nie w rzucanych wyjątkach; Scalafmt i Scalafix w pipeline oraz build kończący się bez ostrzeżeń; a także zależności utrzymywane na bieżąco, z poprawkami bezpieczeństwa traktowanymi jako bezwarunkowa aktualizacja.

W istniejącej bazie kodu stosujemy jej styl, czy to funkcyjna Scala na Cats Effect lub ZIO, aktory na Akka lub Pekko, czy Scala pisana blisko Javy, i podnosimy standard jedną zmianą naraz. Programiści pracują w Państwa repozytoriach, Państwa trackerze i Państwa procesie, a wszystkie prawa do tego, co napiszą, przechodzą na Państwa.

Pozostałe języki, w których pracujemy

Języki programowania: przegląd

Pytania o tworzenie oprogramowania w Scala

Dla jakich branż tworzą Państwo systemy w Scala?

Platformy danych i analityczne (potoki Spark, lakehouse i raportowanie), fintech, bankowość i handel (usługi płatności, ryzyka i wyceny), e-commerce i marketplace (rekomendacje, wyszukiwanie i usługi zamówień), adtech i marketing (licytacje, atrybucja i dane o odbiorcach), oprogramowanie korporacyjne i SaaS oraz firmy przemysłowe i energetyczne przetwarzające dane z czujników i liczników.

Akka czy Apache Pekko?

Jedno i drugie. Apache Pekko to fork Akka 2.6 na licencji Apache i podstawa Play 3; Akka rozwija się dalej na swojej licencji komercyjnej. Przejście z Akka 2.6 na Pekko to w większości zmiana nazw pakietów, kluczy konfiguracji i zależności, wykonywana moduł po module, z testami uruchamianymi po każdym z nich.

Czy mogą Państwo przenieść nasz kod Scala 2 na Scala 3?

Tak. Biblioteki i usługi są przenoszone moduł po module, z trybem migracji kompilatora i Scalafix wykonującymi mechaniczne przepisywanie, implicits zamienianymi na instancje given i metody rozszerzające oraz makrami przepisanymi pod metaprogramowanie Scala 3. Kod uruchamiany przez Spark pozostaje na Scala 2.13 tak długo, jak Spark jest z nią budowany.

Jak szybko mogą zacząć programiści Scala?

Gdy odpowiedni programista Scala jest dostępny, o terminie startu decydują wyłącznie Państwa rozmowa oraz NDA i przeniesienie praw własności intelektualnej. W przeciwnym razie prowadzimy poszukiwania, które zwykle dają profile kandydatów w ciągu dwóch do trzech tygodni, a nikt nie zaczyna pracy, dopóki Państwo nie powiedzą „tak”.

Jak wygląda zatrudnienie przez BigTree108: programiści Scala?

Prosimy o informację o zakresie pracy, poziomie doświadczenia i potrzebnych godzinach. Proponujemy jedną lub dwie osoby wraz z ich profilami, Państwo przeprowadzają z nimi rozmowy tak, jak z własnym kandydatem, podpisują jedną umowę z BIG TREE 108 LLC i otrzymują jedną fakturę miesięcznie.

Do kogo należy praca, którą wykonują?

Do Państwa. Każdy specjalista ma podpisaną z BigTree108 umowę, która przenosi wszystkie rezultaty pracy na spółkę, a nasza umowa z Państwem przenosi je dalej. Kod, projekty i dokumenty są przekazywane do Państwa własnych repozytoriów i narzędzi, a nie przechowywane tam, gdzie zmieniać je możemy tylko my.

Potrzebują Państwo programistów Scala?

Prosimy podać system, wersję Scala i biblioteki, na których działa. Odpowiedź otrzymają Państwo w ciągu jednego dnia roboczego: profile kandydatów lub plan prac.