Vai al contenuto
BigTree108

Servizi di sviluppo Scala

Servizi di sviluppo Scala per pipeline di dati Apache Spark, backend fintech e di trading, piattaforme ad tech e di analytics, servizi event-driven su Akka, Apache Pekko, ZIO o Cats Effect, applicazioni Play e migrazioni da Scala 2 a Scala 3, con sviluppatori Scala dedicati per il Suo team o con un progetto Scala realizzato end to end.

Che cosa realizziamo con Scala

  • Job Apache Spark in Scala

    Job batch e di streaming su Spark 4 in Scala 2.13, con Dataset tipizzati e Spark SQL su tabelle Delta Lake o Apache Iceberg su Databricks, Amazon EMR o Kubernetes, partizionati e ottimizzati perché ogni esecuzione rientri nella propria finestra e nel proprio budget.

  • Servizi di trading, pagamenti e rischio

    Servizi di pagamento, ledger, pricing e rischio con modelli di dominio immutabili, sealed type e match esaustivi su ogni stato che una transazione può raggiungere, BigDecimal per il denaro e una traccia di audit per ogni modifica.

  • Sistemi Akka e Apache Pekko

    Servizi basati su attori, cluster, event sourcing e stream con back-pressure su Akka con la sua licenza commerciale, oppure su Apache Pekko, il fork di Akka 2.6 con licenza Apache, con persistenza su PostgreSQL o Cassandra.

  • Servizi funzionali su ZIO e Cats Effect

    Servizi HTTP e gRPC su ZIO 2 o Cats Effect 3 con http4s, Tapir o ZIO HTTP, Doobie o Skunk su PostgreSQL, e fs2 o ZIO Streams, con effetti, errori e risorse tracciati nei tipi.

  • Streaming Kafka in Scala

    Producer, consumer e stream processor su fs2-kafka, zio-kafka, Kafka Streams o Pekko Connectors, con contratti Avro o Protobuf in uno schema registry, scritture idempotenti, retry e dead-letter topic.

  • Pipeline ad tech di bidding e attribuzione

    Pipeline di real-time bidding, attribuzione e audience che ricevono eventi ad alto volume, con aggregazione in Spark o ClickHouse e API che rispondono entro il tempo consentito da una bid request.

  • Applicazioni Play Framework

    Applicazioni web e API su Play 3, che gira su Pekko, e applicazioni Play 2 su Akka migrate a questa versione, con Slick o Anorm per l’accesso ai dati e template Twirl o un frontend separato per le pagine.

  • Migrare da Scala 2 a Scala 3

    Codice Scala 2.12 e 2.13 portato a Scala 3.9, l’attuale release a supporto a lungo termine, modulo per modulo con la modalità di migrazione del compilatore e le riscritture Scalafix, mentre i job Spark restano su Scala 2.13 finché Spark è costruito su di essa.

  • Build, test e aggiornamenti delle dipendenze Scala

    Build sbt 2 o Mill che si riproducono da un checkout pulito, suite MUnit o ScalaTest con proprietà ScalaCheck, Scalafmt e Scalafix nella pipeline e Scala Steward che apre una pull request per ogni aggiornamento delle dipendenze.

Ingaggiare sviluppatori Scala

  • sviluppatori Scala dedicati

    Sviluppatori Scala che entrano a tempo pieno nel Suo team, lavorano nei Suoi repository, nel Suo tracker e nelle Sue riunioni e rispondono al Suo responsabile. Li intervista Lei; noi ci occupiamo del contratto ucraino, delle buste paga, della fatturazione e delle ferie.

  • Realizzazione di progetti Scala

    Un team che porta il progetto Scala dal perimetro al rilascio: stima, sviluppo, test e deployment, con un responsabile tecnico da parte nostra che risponde del piano e della qualità.

  • Supporto e presa in carico di sistemi Scala

    Un sistema Scala esistente rilevato da un altro team o mantenuto in esercizio: prima una revisione in sola lettura e un elenco scritto dei rischi, poi correzioni e nuove funzionalità in ordine di impatto.

La pagina sul team dedicato spiega come gli specialisti entrano nel Suo team, e la pagina sull’outsourcing tratta la realizzazione di progetti, le prese in carico e il modo in cui fatturiamo.

Chi lavora al Suo progetto Scala

  • sviluppatori Scala

    Job Spark e servizi su Akka, Pekko, ZIO o Cats Effect

  • Data engineer

    Tabelle lakehouse, orchestrazione e qualità dei dati

  • Ingegneri Java

    Servizi JVM accanto al codice Scala

  • Ingegneri cloud e DevOps

    Kubernetes, cluster Spark e pipeline

  • Ingegneri QA

    Automazione di test di API, dati e carico

Come lavoriamo su Scala

Dati immutabili e pattern matching esaustivo, così che il compilatore indichi i casi che una modifica dimentica; errori ed effetti nei tipi anziché in eccezioni sollevate; Scalafmt e Scalafix nella pipeline e una build che si chiude con zero warning; e dipendenze aggiornate, con un avviso di sicurezza trattato come aggiornamento incondizionato.

Su una codebase esistente seguiamo il suo stile, che si tratti di Scala funzionale su Cats Effect o ZIO, di attori su Akka o Pekko o di Scala scritto vicino a Java, e alziamo lo standard una modifica alla volta. Gli sviluppatori lavorano nei Suoi repository, nel Suo tracker e secondo il Suo processo, e tutto ciò che scrivono è ceduto a Lei.

Altri linguaggi in cui lavoriamo

Panoramica: Linguaggi di programmazione

Domande sullo sviluppo con Scala

Per quali settori sviluppate sistemi Scala?

Piattaforme di dati e analytics (pipeline Spark, lakehouse e reportistica), fintech, banche e trading (servizi di pagamento, rischio e pricing), e-commerce e marketplace (raccomandazioni, ricerca e servizi di ordine), ad tech e marketing (bidding, attribuzione e dati sul pubblico), software enterprise e SaaS, e aziende industriali ed energetiche che elaborano dati di sensori e contatori.

Akka o Apache Pekko?

Entrambi. Apache Pekko è il fork di Akka 2.6 con licenza Apache e la base di Play 3; Akka prosegue con la sua licenza commerciale. Il passaggio da Akka 2.6 a Pekko consiste soprattutto in un cambio di nomi dei package, chiavi di configurazione e dipendenze, fatto modulo per modulo con i test eseguiti dopo ciascuno.

Potete portare il nostro codice Scala 2 a Scala 3?

Sì. Librerie e servizi migrano modulo per modulo, con la modalità di migrazione del compilatore e Scalafix che eseguono le riscritture meccaniche, gli implicit trasformati in given instance ed extension method, e le macro riscritte per la metaprogrammazione di Scala 3. Il codice che Spark esegue resta su Scala 2.13 finché Spark è costruito con essa.

Con quale rapidità possono iniziare sviluppatori Scala?

Quando è disponibile il profilo giusto per il ruolo di sviluppatore Scala, l’avvio dipende soltanto dal Suo colloquio e dalla firma dell’NDA e della cessione della proprietà intellettuale. Altrimenti avviamo una ricerca, che di norma produce profili di candidati entro due o tre settimane, e nessuno inizia finché Lei non ha detto di sì.

Come ingaggiare sviluppatori Scala tramite BigTree108?

Ci indichi il lavoro, il livello di seniority e l’impegno orario necessario. Le proponiamo una o due persone con i rispettivi profili, Lei le intervista come farebbe con una Sua assunzione e firma un unico contratto con BIG TREE 108 LLC, ricevendo una sola fattura al mese.

A chi appartiene il lavoro che producono?

A Lei. Ogni specialista ha un contratto firmato con BigTree108 che cede all’azienda tutto il lavoro prodotto, e il nostro accordo con Lei lo cede a sua volta. Codice, design e documenti vengono consegnati nei Suoi repository e strumenti, non conservati dove solo noi possiamo modificarli.

Cerca sviluppatori Scala?

Ci indichi il sistema, la versione di Scala e le librerie su cui gira. Riceve una risposta entro un giorno lavorativo: profili di candidati o un piano per il lavoro.