本文へスキップ
BigTree108

Scala開発サービス

Apache Sparkのデータパイプライン、フィンテックと取引のバックエンド、アドテックと分析のプラットフォーム、Akka、Apache Pekko、ZIO、Cats Effectによるイベント駆動型サービス、Playアプリケーション、Scala 2からScala 3への移行に向けたScala開発サービス。Scala開発者を専任チームとして御社に加えることも、Scalaプロジェクトを企画から納品まで一貫して請け負うことも可能です。

Scalaで開発するもの

  • ScalaによるApache Sparkジョブ

    Scala 2.13のSpark 4上のバッチおよびストリーミングジョブを、型付きDatasetとSpark SQLで、Databricks、Amazon EMR、Kubernetes上のDelta LakeまたはApache Icebergテーブルに対して実行し、パーティション分割とチューニングにより、各実行が時間枠とコストに収まるようにします。

  • 取引、決済、リスクのサービス

    決済、元帳、価格設定、リスクのサービスを、イミュータブルなドメインモデル、sealed型、取引が到達しうるすべての状態に対する網羅的なマッチ、金額用のBigDecimal、変更ごとの監査証跡で構築します。

  • AkkaとApache Pekkoのシステム

    アクターベースのサービス、クラスター、イベントソーシング、バックプレッシャー付きのストリームを、商用ライセンスのAkka、またはAkka 2.6のApacheライセンスのフォークであるApache Pekko上で構築し、永続化にはPostgreSQLまたはCassandraを使います。

  • ZIOとCats Effectによる関数型サービス

    ZIO 2またはCats Effect 3上のHTTPとgRPCのサービスを、http4s、Tapir、ZIO HTTP、PostgreSQL上のDoobieやSkunk、fs2やZIO Streamsで構築し、エフェクト、エラー、リソースを型で追跡します。

  • ScalaによるKafkaストリーミング

    fs2-kafka、zio-kafka、Kafka Streams、Pekko Connectorsによるプロデューサー、コンシューマー、ストリームプロセッサーを、スキーマレジストリのAvroまたはProtobufのコントラクト、冪等な書き込み、リトライ、デッドレタートピックとともに提供します。

  • アドテックの入札・アトリビューションパイプライン

    大量のイベントを受け取るリアルタイム入札、アトリビューション、オーディエンスのパイプラインを、SparkまたはClickHouseでの集計と、入札リクエストが許す時間内に応答するAPIとともに構築します。

  • Play Frameworkアプリケーション

    Pekko上で動くPlay 3のウェブアプリケーションとAPI、およびAkka上のPlay 2アプリケーションのPlay 3への移行を、データアクセスにSlickまたはAnorm、ページにTwirlテンプレートまたは別のフロントエンドを使って提供します。

  • Scala 2からScala 3への移行

    Scala 2.12と2.13のコードを、現行の長期サポートリリースであるScala 3.9へ、コンパイラの移行モードとScalafixによる書き換えを使ってモジュールごとに移行します。Sparkのジョブは、SparkがScala 2.13でビルドされている間は2.13のままにします。

  • Scalaのビルド、テスト、依存関係の更新

    クリーンなチェックアウトから再現できるsbt 2またはMillのビルド、ScalaCheckのプロパティを備えたMUnitまたはScalaTestのスイート、パイプラインでのScalafmtとScalafix、依存関係の更新ごとにプルリクエストを作成するScala Stewardを提供します。

Scala開発者を採用する

  • 専任のScala開発者

    御社のチームにフルタイムで参画し、御社のリポジトリ、トラッカー、会議の中で働き、御社のリードに報告するScala開発者です。面接は御社が行い、ウクライナでの雇用契約、給与支払い、請求書発行、休暇管理は当社が担います。

  • Scalaプロジェクトのデリバリー

    Scalaプロジェクトをスコープ策定からリリースまで担うチームです。見積り、開発、テスト、デプロイを行い、当社側のテクニカルリードが計画と品質に責任を持ちます。

  • Scalaの保守運用と引き継ぎ

    他のチームから既存のScalaシステムを引き継ぐ、あるいは稼働を維持します。まず読み取り専用のレビューを行ってリスクを書面にまとめ、その後、影響の大きい順に修正と新機能を進めます。

スペシャリストが御社のチームに参画する方法は専任チームのページで、プロジェクトのデリバリー、引き継ぎ、料金の考え方はアウトソーシングのページで説明しています。

御社のScalaプロジェクトを担当するメンバー

  • Scala開発者

    Sparkジョブと、Akka、Pekko、ZIO、Cats Effectのサービス

  • データエンジニア

    レイクハウスのテーブル、オーケストレーション、データ品質

  • Javaエンジニア

    Scalaコードと並ぶJVMサービス

  • クラウド・DevOpsエンジニア

    Kubernetes、Sparkクラスター、パイプライン

  • QAエンジニア

    API、データ、負荷テストの自動化

Scala開発の進め方

イミュータブルなデータと網羅的なパターンマッチにより、変更が見落としたケースをコンパイラが指摘します。エラーとエフェクトは、スローされる例外ではなく型で表現します。パイプラインにScalafmtとScalafixを組み込み、ビルドは警告ゼロで終え、依存パッケージは最新に保ち、セキュリティアドバイザリが出たら必ずアップグレードします。

既存のコードベースでは、そのスタイル(Cats EffectやZIOによる関数型Scala、AkkaやPekkoのアクター、Javaに近い書き方のScalaのいずれも)に従い、基準は1つの変更ごとに引き上げます。開発者は御社のリポジトリ、トラッカー、プロセスの中で作業し、書いたものはすべて御社に帰属します。

その他の対応言語

プログラミング言語の概要

Scala開発に関するご質問

どの業界向けにScalaのシステムを開発していますか?

データ・分析プラットフォーム(Sparkパイプライン、レイクハウス、レポート)、フィンテック・銀行・取引(決済、リスク、価格設定のサービス)、Eコマースとマーケットプレイス(レコメンデーション、検索、注文のサービス)、アドテックとマーケティング(入札、アトリビューション、オーディエンスデータ)、エンタープライズソフトウェアとSaaS、センサーやメーターのデータを処理する産業・エネルギー企業です。

AkkaとApache Pekkoのどちらですか?

どちらにも対応します。Apache PekkoはAkka 2.6のApacheライセンスのフォークで、Play 3の基盤です。Akkaは商用ライセンスで継続しています。Akka 2.6からPekkoへの移行は、主にパッケージ名、設定キー、依存関係の変更であり、モジュールごとに行い、1つ終えるたびにテストを実行します。

Scala 2のコードをScala 3へ移行できますか?

はい。ライブラリとサービスをモジュールごとに移行し、機械的な書き換えにはコンパイラの移行モードとScalafixを使い、implicitはgivenインスタンスと拡張メソッドに置き換え、マクロはScala 3のメタプログラミング向けに書き直します。Sparkが実行するコードは、SparkがScala 2.13でビルドされている間は2.13のままにします。

Scala開発者は、どのくらいで開始できますか。

適任のScala開発者がすぐに対応可能な場合、開始までの条件は、御社の面接と、NDAおよび知的財産権の譲渡契約の締結のみです。そうでない場合は人材を探索し、通常は2〜3週間以内に候補者のプロフィールをお出しします。御社が承諾するまで、誰も業務を始めません。

BigTree108を通じてScala開発者を採用するには、どうすればよいですか。

必要な業務内容、シニアリティ、稼働時間をお知らせください。1〜2名の候補者をプロフィールとともにご提案し、御社が自社で採用する場合と同じ形で面接を行います。契約はBIG TREE 108 LLCとの1本、請求書は月1通です。

成果物の権利は、誰に帰属しますか。

御社です。すべてのスペシャリストはBigTree108と署名済みの契約を結び、成果物のすべてを会社に帰属させています。さらに、御社との契約により、その権利は御社に引き継がれます。コード、デザイン、ドキュメントは、当社だけが変更できる場所ではなく、御社のリポジトリとツールに納品します。

Scala開発者をお探しですか?

システム、Scalaのバージョン、使っているライブラリをお知らせください。1営業日以内に、候補者のプロフィールまたは作業の計画をお返しします。