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
Programowanie Java
Usługi programowania Java: mikroserwisy Spring Boot, systemy bankowe i płatnicze, backendy e-commerce i SaaS, integracje Kafka i modernizacja systemów legacy, z dedykowanymi programistami Java lub realizacją projektu.
Programowanie Node.js
Usługi programowania Node.js: API w TypeScript, backendy e-commerce i SaaS, integracje fintech, funkcje czasu rzeczywistego i strumieniowania oraz funkcje serverless, z dedykowanymi programistami Node.js lub realizacją projektu.
Programowanie PHP
Usługi programowania PHP: aplikacje Laravel i Symfony, e-commerce na Magento, Shopware i WooCommerce, API, WordPress i Drupal oraz aktualizacje PHP, z dedykowanymi programistami PHP lub realizacją projektu.
Programowanie C i C++
Usługi programowania C i C++: firmware wbudowany, oprogramowanie desktopowe Qt, oprogramowanie sieciowe i telekomunikacyjne, systemy o niskich opóźnieniach, oprogramowanie bezpieczeństwa i modernizacja C++, z dedykowanymi programistami C++ lub realizacją projektu.
Programowanie Go
Usługi programowania Go: mikroserwisy i API w Golang, backendy fintech i SaaS, operatory Kubernetes, potoki zdarzeń oraz oprogramowanie sieciowe i bezpieczeństwa, z dedykowanymi programistami Go lub realizacją projektu.
Programowanie Kotlin i Android
Usługi tworzenia aplikacji na Androida w Kotlin i Jetpack Compose dla aplikacji bankowych, medialnych, zakupowych i zdrowotnych, a także backendy Kotlin Multiplatform i Ktor, z dedykowanymi programistami Kotlin lub realizacją projektu.
Programowanie Rust
Usługi programowania Rust: usługi backendowe i API, blockchain i Web3, oprogramowanie systemowe i infrastrukturalne, narzędzia bezpieczeństwa, firmware wbudowany i WebAssembly, z dedykowanymi programistami Rust lub realizacją projektu.
Programowanie Swift i iOS
Usługi tworzenia aplikacji iOS w Swift i SwiftUI: aplikacje bankowe, zakupowe, medialne i zdrowotne, aplikacje na Apple Watch i Vision Pro, utrzymanie kodu Objective-C i wydania w App Store, z dedykowanymi programistami iOS lub realizacją projektu.
Programowanie TypeScript
Usługi programowania TypeScript: frontendy Angular, React i Vue, backendy Node.js, aplikacje full-stack, monorepozytoria i migracje z JavaScript do TypeScript, z dedykowanymi programistami TypeScript lub realizacją projektu.
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.