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つの変更ごとに引き上げます。開発者は御社のリポジトリ、トラッカー、プロセスの中で作業し、書いたものはすべて御社に帰属します。
その他の対応言語
Java開発
Java開発サービス:Spring Bootのマイクロサービス、銀行・決済システム、ECとSaaSのバックエンド、Kafka連携、レガシーシステムのモダナイゼーションを、専任のJava開発者またはプロジェクト単位でご提供します。
Node.js開発
Node.js開発サービス:TypeScript API、ECとSaaSのバックエンド、フィンテック連携、リアルタイム・ストリーミング機能、サーバーレス関数を、専任のNode.js開発者またはプロジェクト単位でご提供します。
PHP開発
PHP開発サービス:LaravelとSymfonyのアプリケーション、Magento・Shopware・WooCommerceのEC、API、WordPressとDrupal、PHPのバージョンアップを、専任のPHP開発者またはプロジェクト単位でご提供します。
C/C++開発
CとC++の開発サービス:組み込みファームウェア、Qtのデスクトップソフトウェア、ネットワーク・通信ソフトウェア、低遅延システム、セキュリティソフトウェア、C++のモダナイゼーションを、専任のC++開発者またはプロジェクト単位でご提供します。
Go開発
Go開発サービス:GolangのマイクロサービスとAPI、フィンテックとSaaSのバックエンド、Kubernetesオペレーター、イベントパイプライン、ネットワーク・セキュリティソフトウェアを、専任のGo開発者またはプロジェクト単位でご提供します。
KotlinとAndroid開発
KotlinとJetpack Composeによる、銀行、メディア、ショッピング、ヘルスケア向けAndroidアプリ開発サービス。Kotlin MultiplatformとKtorのバックエンドも、専任のKotlin開発者またはプロジェクト単位でご提供します。
Rust開発
Rust開発サービス:バックエンドサービスとAPI、ブロックチェーンとWeb3、システム・インフラソフトウェア、セキュリティツール、組み込みファームウェア、WebAssemblyを、専任のRust開発者またはプロジェクト単位でご提供します。
SwiftとiOS開発
SwiftとSwiftUIによるiOSアプリ開発サービス:銀行、ショッピング、メディア、ヘルスケアのアプリ、Apple WatchとVision Proのアプリ、Objective-Cの保守、App Storeへのリリースを、専任のiOS開発者またはプロジェクト単位でご提供します。
TypeScript開発
TypeScript開発サービス:Angular・React・Vueのフロントエンド、Node.jsのバックエンド、フルスタックアプリ、モノレポ、JavaScriptからTypeScriptへの移行を、専任のTypeScript開発者またはプロジェクト単位でご提供します。
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営業日以内に、候補者のプロフィールまたは作業の計画をお返しします。