Scala-розробка
Послуги з розробки на Scala: пайплайни даних на Apache Spark, бекенди для фінтеху й торгівлі, платформи ad tech та аналітики, подієво-орієнтовані сервіси на Akka, Apache Pekko, ZIO або Cats Effect, застосунки на Play і перехід зі Scala 2 на Scala 3, із виділеними Scala-розробниками для вашої команди або Scala-проєктом, виконаним від початку до кінця.
Що ми створюємо на Scala
Завдання Apache Spark на Scala
Пакетні та потокові завдання на Spark 4 у Scala 2.13, з типізованими Dataset і Spark SQL поверх таблиць Delta Lake або Apache Iceberg на Databricks, Amazon EMR чи Kubernetes, розбиті на партиції й налаштовані так, щоб кожен запуск вкладався у свій часовий проміжок і бюджет.
Сервіси для торгівлі, платежів і ризиків
Сервіси для платежів, головної книги, ціноутворення та ризиків з незмінними доменними моделями, sealed-типами й вичерпним зіставленням за зразком для кожного стану, якого може набути транзакція, BigDecimal для грошей і журналом аудиту для кожної зміни.
Системи на Akka та Apache Pekko
Сервіси на основі акторів, кластери, event sourcing і потоки з back-pressure на Akka за її комерційною ліцензією або на Apache Pekko, форку Akka 2.6 під ліцензією Apache, зі збереженням даних у PostgreSQL чи Cassandra.
Функціональні сервіси на ZIO і Cats Effect
HTTP- і gRPC-сервіси на ZIO 2 або Cats Effect 3 з http4s, Tapir чи ZIO HTTP, Doobie або Skunk поверх PostgreSQL та fs2 чи ZIO Streams, де ефекти, помилки й ресурси відстежуються на рівні типів.
Потокова обробка Kafka на Scala
Продюсери, споживачі та обробники потоків на fs2-kafka, zio-kafka, Kafka Streams чи Pekko Connectors, з контрактами Avro або Protobuf у schema registry, ідемпотентними записами, повторними спробами й dead-letter-топіками.
Пайплайни біддингу й атрибуції для ad tech
Пайплайни real-time bidding, атрибуції та аудиторій, що приймають події у великих обсягах, з агрегацією в Spark або ClickHouse та API, які відповідають у межах часу, дозволеного запитом на біддинг.
Застосунки на Play Framework
Вебзастосунки та API на Play 3, що працює на Pekko, і застосунки на Play 2 з Akka, перенесені на нього, зі Slick або Anorm для доступу до даних та шаблонами Twirl чи окремим фронтендом для сторінок.
Перехід зі Scala 2 на Scala 3
Код на Scala 2.12 і 2.13 переходить на Scala 3.9, актуальний реліз із довгостроковою підтримкою, модуль за модулем у міграційному режимі компілятора та з переписуванням через Scalafix, тоді як завдання Spark залишаються на Scala 2.13, доки Spark побудовано на ній.
Збірки, тести й оновлення залежностей на Scala
Збірки на sbt 2 або Mill, що відтворюються з чистого чекауту, набори тестів MUnit чи ScalaTest з властивостями ScalaCheck, Scalafmt і Scalafix у пайплайні та Scala Steward, який відкриває pull request для кожного оновлення залежності.
Наші Scala-розробники для вашої команди
Виділені Scala-розробники
Scala-розробники, які приєднуються до вашої команди на повний робочий день, працюють у ваших репозиторіях, трекері й на ваших зустрічах і звітують вашому керівнику. Співбесіду проводите ви, а український договір, зарплата, рахунки й відпустки на нас.
Проєкти на Scala під ключ
Команда, яка веде проєкт на Scala від визначення обсягу до релізу: оцінка, розробка, тести й розгортання, а технічний лідер з нашого боку відповідає за план і якість.
Підтримка і прийняття проєктів на Scala
Наявна система на Scala, яку ми приймаємо від іншої команди або підтримуємо в роботі: спершу огляд без змін у коді й письмовий перелік ризиків, далі виправлення і нові функції в порядку їхньої користі.
На сторінці виділеної команди пояснено, як фахівці приєднуються до вашої команди, а на сторінці аутсорсингу описано реалізацію проєктів, прийняття систем від інших команд і те, як ми беремо оплату.
Хто працює над вашим проєктом на Scala
Scala-розробники
Завдання Spark і сервіси на Akka, Pekko, ZIO або Cats Effect
Data-інженери
Таблиці lakehouse, оркестрація та якість даних
Java-інженери
JVM-сервіси поруч зі Scala-кодом
Інженери з хмари та DevOps
Kubernetes, кластери Spark і пайплайни
QA-інженери
Автоматизація тестування API, даних і навантаження
Як ми працюємо зі Scala
Незмінні дані та вичерпний pattern matching, тож компілятор називає випадки, які зміна забула; помилки й ефекти в типах, а не у викинутих винятках; Scalafmt і Scalafix у пайплайні та збірка, що завершується без жодного попередження; актуальні залежності, а повідомлення про вразливість безпеки означає безумовне оновлення.
У наявній кодовій базі ми дотримуємося її стилю, чи то функціональний Scala на Cats Effect або ZIO, чи актори на Akka або Pekko, чи Scala, написана близько до Java, і піднімаємо планку по одній зміні. Розробники працюють у ваших репозиторіях, вашому трекері й за вашим процесом, а все, що вони пишуть, передається вам.
Інші мови, з якими ми працюємо
Розробка на Java
Розробка на Java: мікросервіси на Spring Boot, банківські та платіжні системи, бекенд для e-commerce і SaaS, інтеграції з Kafka та модернізація legacy-систем. Виділені Java-розробники або реалізація проєкту.
Розробка на Node.js
Розробка на Node.js: API на TypeScript, бекенд для e-commerce і SaaS, фінтех-інтеграції, функції реального часу та потокової передачі даних, serverless-функції. Виділені Node.js-розробники або реалізація проєкту.
Розробка на PHP
Розробка на PHP: застосунки на Laravel і Symfony, e-commerce на Magento, Shopware і WooCommerce, API, WordPress і Drupal, оновлення версій PHP. Виділені PHP-розробники або реалізація проєкту.
Розробка на C і C++
Розробка на C і C++: прошивки для вбудованих систем, десктопне ПЗ на Qt, мережеве та телеком-ПЗ, системи з малою затримкою, ПЗ для безпеки та модернізація коду на C++. Виділені розробники на C++ або реалізація проєкту.
Розробка на Go
Розробка на Go: мікросервіси та API на Golang, бекенд для фінтеху і SaaS, оператори Kubernetes, пайплайни подій, мережеве ПЗ і ПЗ для безпеки. Виділені Go-розробники або реалізація проєкту.
Розробка на Kotlin і Android
Розробка Android-застосунків на Kotlin і Jetpack Compose: застосунки для банків, медіа, онлайн-покупок і здоров'я, а також Kotlin Multiplatform і бекенд на Ktor. Виділені Kotlin-розробники або реалізація проєкту.
Розробка на Rust
Розробка на Rust: бекенд-сервіси та API, блокчейн і Web3, системне та інфраструктурне ПЗ, інструменти безпеки, прошивки для вбудованих систем і WebAssembly. Виділені Rust-розробники або реалізація проєкту.
Розробка на Swift та iOS
Розробка iOS-застосунків на Swift і SwiftUI: застосунки для банків, онлайн-покупок, медіа та здоров'я, застосунки для Apple Watch і Vision Pro, підтримка коду на Objective-C і релізи в App Store. Виділені iOS-розробники або реалізація проєкту.
Розробка на TypeScript
Розробка на TypeScript: фронтенд на Angular, React і Vue, бекенд на Node.js, full-stack застосунки, монорепозиторії та міграція з JavaScript на TypeScript. Виділені TypeScript-розробники або реалізація проєкту.
Питання про розробку на Scala
Для яких галузей ви створюєте системи на Scala?
Платформи даних і аналітики (пайплайни Spark, lakehouse та звітність), фінтех, банки й торгівля (сервіси платежів, ризиків і ціноутворення), e-commerce і маркетплейси (рекомендації, пошук і сервіси замовлень), ad tech і маркетинг (біддинг, атрибуція та дані аудиторій), корпоративне ПЗ і SaaS, а також промислові й енергетичні компанії, що обробляють дані сенсорів і лічильників.
Akka чи Apache Pekko?
Можливий будь-який варіант. Apache Pekko є форком Akka 2.6 під ліцензією Apache та основою Play 3; Akka розвивається далі за комерційною ліцензією. Перехід з Akka 2.6 на Pekko здебільшого зводиться до зміни назв пакетів, ключів конфігурації та залежностей, яку виконують модуль за модулем із запуском тестів після кожного.
Чи можете ви перевести наш код зі Scala 2 на Scala 3?
Так. Бібліотеки та сервіси переходять модуль за модулем: механічні переписування виконують міграційний режим компілятора і Scalafix, implicits перетворюються на given-екземпляри та extension-методи, а макроси переписуються під метапрограмування Scala 3. Код, який виконує Spark, залишається на Scala 2.13, доки Spark побудовано на ній.
Як швидко можуть стати до роботи Scala-розробники?
Якщо відповідний Scala-розробник вільний, старт залежить лише від вашої співбесіди, NDA і передачі прав на інтелектуальну власність. Інакше ми проводимо пошук, який зазвичай дає профілі кандидатів за два-три тижні, і ніхто не починає роботу, доки ви не скажете «так».
Як найняти фахівців через BigTree108, якщо вам потрібні Scala-розробники?
Розкажіть про роботу, рівень і години, які вам потрібні. Ми пропонуємо одну-двох людей з їхніми профілями, ви проводите з ними співбесіду так, як зі своїм власним кандидатом, підписуєте один договір із ТОВ «БІГ ТРІ 108» і отримуєте один рахунок на місяць.
Кому належать результати їхньої роботи?
Вам. Кожен фахівець має підписаний із BigTree108 договір, за яким усі результати роботи передаються компанії, а наш договір із вами передає їх далі. Код, дизайн-макети та документи постачаються у ваші власні репозиторії та інструменти, а не зберігаються там, де змінити їх можемо лише ми.
Потрібні Scala-розробники?
Розкажіть про систему, версію Scala і бібліотеки, на яких вона працює. Протягом одного робочого дня ви отримаєте відповідь: профілі кандидатів або план робіт.